Given:
A WebService which stores user Data and a server with a database.
A Administrator which can acces the sever wit hthe webservice and the server with the database.
Foreach user is a dedicated database.
Aim:
Store the data in a way so that even not the administrator can access it with the secret of the user.
Thoughts:
To make sure that the Administrator can't access the data stored by many users the data can be encrypted with a user secret. and / or the database can be created with a derivation of the user secret as password.
The data can then be decrypted on the client side.
Question:
This works with common user logins so I could use the user password or a hash of it as database password / Encryption. But Is there a practice what to do if the user authenticates with a external oAuth Login (Google,Facebook,Github...)? In this case i don't have any secrets / password of the user.
For me it would feel a little awkward to ask him for a "MasterKey". Are there any experiences on this scenario or real world examples?