Estoy considerando cómo tomar una aplicación en niveles bastante compleja con varias aplicaciones web que se delegan de nuevo en el mismo servidor de aplicaciones, y migrarla para usar la autenticación OIDC con flujo de código de autenticación. Estoy anticipando el uso del servidor de identidad 4.
Mi pregunta es: ¿cuál sería la mejor práctica aceptada en términos de mantener una experiencia de inicio de sesión único entre estas diferentes aplicaciones de cliente web (es decir, el usuario inicia sesión en una, ha iniciado sesión en todas ellas hasta que cierre sesión).
enlace sugiere:
Tenga en cuenta que la audiencia (reclamación de aud) del [token de identificación] está configurada con el identificador del cliente, lo que significa que solo este cliente específico debe consumir este token.
Esto sugiere que debería considerar que mi servidor de aplicaciones backend es mi único "cliente" y que mis aplicaciones web compartan la misma ID de cliente. Puedo imaginarme haciendo esto almacenando el lado del navegador del token de identificación en una cookie segura.
enlace parece validar esta idea:
Poner en una cookie del navegador el token de ID se puede usar para implementar sesiones ligeras sin estado.
Pero me pregunto si es una buena práctica de seguridad mantener un id_token en una cookie.
Me pregunto si hay otros enfoques, como:
- Considerando cada aplicación web como un 'cliente' separado
- Cuando el usuario inicie sesión en una segunda aplicación web, pídale que se dirija directamente al proveedor de OIDC, lo que crearía automáticamente un token de cliente para el nuevo cliente basándose en la idea de que aún están básicamente "conectados" al OP.
Parece que este debe ser un problema resuelto. ¿Cuál es la mejor práctica aceptada aquí?