Recientemente descubrí que las aplicaciones en nuestro sistema usaban Oauth2 simple en lugar de OpenID Connect para autenticar a los usuarios. El caso de uso original fue utilizar OAuth para permitir que nuestros usuarios se autentiquen en las aplicaciones que utilizan la cuenta principal de la aplicación, todas las cuales están bajo nuestro control.
Hay muchas publicaciones sobre el hecho de que OAuth es un protocolo de autorización y, como tal, no se debe usar para la autenticación . Si bien comprendo la diferencia entre las dos nociones, tengo problemas para encontrar información sobre cuál es realmente el riesgo de hacerlo, y qué tipo de ataques se pueden realizar en el sistema y provocar la suplantación de un usuario.
Todo lo que pude encontrar fueron ataques que no fueron específicos del caso de uso de autenticación (CSRF durante el procedimiento de autorización, por ejemplo) o una aplicación de cliente malintencionada que reutiliza la autorización del usuario. Pero estas amenazas solo parecían pertinentes cuando se utilizan servicios públicos como Google o Facebook como proveedores de identidad. En mi caso de uso, tanto el proveedor de identidad como los clientes están bajo control, negando efectivamente la amenaza de un cliente de terceros malintencionado.
Como tales, ¿cuáles son los riesgos asociados con el uso de OAuth para autenticar a los usuarios cuando todos los clientes están bajo control?