Proporciono un servicio en el que los usuarios pueden almacenar datos, archivos, etc. en forma cifrada. El servicio que he creado tiene dos aplicaciones para la contraseña del usuario con la que inician sesión en mi servicio: 1) autenticación y 2) la contraseña se utiliza como base para la clave de cifrado secreta para los datos que almacenan con mi servicio.
Me estoy integrando con otro servicio cuyos usuarios necesitan poder acceder a mi servicio a través de SSO, OAuth2, SAML o algún otro estándar. El problema obvio es que la contraseña del usuario se elimina y, por lo tanto, no se puede utilizar como una clave secreta.
Algunas preguntas:
¿Se puede pasar la contraseña del usuario del servicio principal a mi aplicación permitiendo que se use como la clave secreta para el cifrado?
Si se genera aleatoriamente un secreto cuando el usuario se registra para mi servicio a través de SSO, ¿se puede almacenar de forma segura en cualquier lugar?
Actualmente mi servicio emplea cifrado simétrico AES-256. ¿Hay un mejor esquema de encriptación para mi caso de uso?
¿Alguna idea para una cadena que no sea la contraseña del usuario que pueda usarse como clave secreta?