Esta pregunta es algo acedémica por naturaleza. Al informarme sobre el tema de Seguridad a través de los tokens de portador para un servicio de fondo en el que estoy trabajando, y específicamente sobre oAuth2, surgieron algunas preguntas en mi mente:
- Si tuviera que externalizar el proveedor de identidad / servicio de autorización, creará una dependencia en ese proveedor de servicio. ¿Qué tan difícil sería mudarse a un nuevo proveedor de servicios oAuth2?
- ¿Qué sucede si el proveedor de servicios "falla" (desaparece de Internet o tiene sus sistemas comprometidos o cambia sus políticas de una manera que es incompatible con sus requisitos, etc.)?
Como una forma de reducir la dependencia, se me ocurrió que podría ser capaz de configurar el servidor de recursos para verificar que cada solicitud tenga dos tokens, de dos proveedores de servicios diferentes, por ejemplo, SP-A y SP-B.
Para hacer que los usuarios de sus [clientes] tengan que "registrarse" tanto en SP-A como en SP-B. Eso implicaría que durante el proceso de registro, los detalles de los usuarios se enviarían y los registros se crearían tanto en SP-A como en SP-B.
Los desarrolladores clientes se verán afectados porque deben desarrollar sus aplicaciones para registrar usuarios con dos proveedores de OAuth y deben obtener códigos de autorización de dos proveedores. Para los usuarios finales, el impacto puede minimizarse, pero si un cliente quisiera usar los IdP de OpenID existentes de los usuarios para efectuar el registro inicial y la autenticación de inicio de sesión, el usuario tendría que autorizar DOS accesos a sus datos.
El único beneficio inmediato sería que luego podría establecer una marca global en el back-end para cada SP-A y SP-B, para ignorar / omitir a ese proveedor, en caso de que lo necesite.
También puede usar políticas diferentes, por ejemplo, requiere un token válido de todos los proveedores de oAuth, o de al menos un proveedor de oAuth, etc., según sus requisitos.
Por supuesto, uno siempre tendría que revisar las credenciales de un Proveedor de Autorización, realizar un seguimiento de su historial, etc. e intentar evaluar los riesgos.