¿Se requieren flujos basados en navegador para la mayoría de los estándares de autenticación basados en IdP?

1

Voy a disculparme por adelantado por la naturaleza ambigua de esta pregunta, he leído mucho sobre SAML y OIDC y otros estándares, solo tratando de entender por qué los navegadores parecen ser tan esenciales para ellos.

He estado leyendo e investigando diferentes flujos de Autorización y Autentificación (SAML y OpenID Connect para ser específicos).

Suponiendo que estoy creando una aplicación basada en web que utiliza algún otro proveedor para realizar la autenticación (Okta, Ping Federate, etc.), tanto el SSO que utiliza SAML como el OIDC parecen tener flujos que implican redirigir al IdP para proporcionar la autenticación real para el usuario.

Posteriormente, parece que SAML usa redireccionamientos de navegador adicionales para realizar la Autorización para mi propio servidor, mientras que OIDC puede usar llamadas de API REST utilizando el token de intercambio o el token de acceso o lo que sea sin necesidad de redireccionar el navegador.

Mi pregunta es: ¿por qué se debe usar el navegador con el IdP cuando se realiza la autenticación real? Entiendo que la única forma de garantizar que las credenciales del usuario no sean robadas en el camino es que el IdP tenga control absoluto sobre él y nunca lo exponga a ninguna otra aplicación involucrada. Pero, ¿existen estándares generalmente aceptables y modernos que impliquen, digamos, solo llamadas a la API REST o alguna forma que no implique redirecciones al navegador? Por ejemplo, escribo mi propia página para capturar el nombre de usuario / contraseña, que luego envié a un IdP.

O es el consenso general de que el Navegador debe redireccionar al menos una vez al IdP para verificar que está autenticado, y luego, si la página solicitante puede usar al usuario autenticado actualmente en el IdP.

TL; DR: ¿Existe algún estándar de autenticación que no requiera una redirección del navegador al IdP, o todos los estándares de autenticación generalmente aceptados lo requieren?

    
pregunta kiplaaang 24.09.2018 - 19:58
fuente

1 respuesta

1

Los protocolos SSO redirigen el navegador al IdP porque el navegador debe recibir la cookie de sesión de WebSSO del servidor web del IdP (mismo origen). De lo contrario, no sería un inicio de sesión único y el usuario tendría que escribir la contraseña para cada inicio de sesión de la aplicación.

Hay dos variantes con respecto a los datos de sesión reales proporcionados al redireccionar el navegador a la aplicación (proveedor de servicios, SP corto):   - en su mayoría, los protocolos más antiguos solo proporcionan una ID de sesión única y el SP lo compara con el IdP, opcionalmente recuperando algunos atributos de usuario más   - los protocolos más nuevos también incluyen atributos de usuario en un mensaje protegido de integridad (por ejemplo, firmado digitalmente) durante la redirección a SP

    
respondido por el Michael Ströder 26.09.2018 - 14:09
fuente

Lea otras preguntas en las etiquetas