SAML2 vs. OAuth - ¿Cuáles son algunas relaciones razonables?

12

Tengo un servicio que permite SSO a través de SAML2. Cuando se utiliza SAML2, delegamos todo el proceso de autenticación al proveedor de identidad.

Estamos considerando agregar OAuth para admitir algunas aplicaciones móviles. (No queremos que el usuario tenga que iniciar sesión constantemente).

Es bastante obvio cómo funcionará todo junto cuando usemos nuestra propia autenticación de nombre de usuario / contraseña, ya que tenemos el control de toda la pila.

¿Cómo interactuará OAuth con SAML2 SSO? Por ejemplo, ¿qué se debe hacer para invalidar las concesiones de OAuth si el proveedor de identidad elimina un usuario? ¿Qué otras trampas (y, con suerte, soluciones estándar) hay?

    
pregunta brendanjerwin 06.04.2013 - 17:43
fuente

3 respuestas

2

La única implementación de esta combinación que conozco es Salesforce. Lo que está buscando hacer es una configuración compleja: ambos protocolos no son simples y existen problemas en su interacción, como el que mencionó.

Eche un vistazo a este documento (cómo se ve la implementación de SF desde afuera) - enlace

y verifique este borrador (yo personalmente no lo había investigado, pero está abordando específicamente su caso enlace

    
respondido por el Vitaly Osipov 08.04.2013 - 09:10
fuente
5

Unir los marcos SAML y OAuth 2.0 es un problema bien entendido. La siguiente pila de especificaciones de IETF proporciona una solución estándar:

Este mecanismo estándar para convertir una aserción SAML en un token de acceso OAuth 2.0 es esencialmente todo lo que se necesita para unir los dos marcos.

Para garantizar que la eliminación de usuarios se refleje correctamente en los sistemas de autorización, existen dos enfoques que se pueden combinar:

  • Haz que los tokens de acceso OAuth 2.0 sean de corta duración. Esto obligará al cliente a repetir el proceso de autorización cuando el token caduque, y si el usuario ya no existe, la autenticación fallará y no se emitirá ninguna concesión (aserción SAML).
  • Proporcione una API para revocar tokens de acceso OAuth 2.0 emitidos, consulte RFC 7009 para obtener más detalles.
respondido por el Vladimir Dzhuvinov 15.05.2014 - 09:52
fuente
3

OAuth es un trabajo de marco autorización . desde RFC6749

  

El marco de autorización OAuth 2.0 permite a un tercero      Aplicación para obtener acceso limitado a un servicio HTTP

Y SAML es un marco de autenticación . Las aserciones de SAML contienen información de autenticación. Comúnmente, SAML se usa para SSO, pero el estándar SAML también contiene una %código%. Que se puede utilizar para llevar alguna información de autorización.

Puede obtener más información en la documentación de SAML aquí .

La pregunta no proporciona detalles sobre la implementación de su sistema, pero sugeriría usar las capacidades de autorización de SAML 2.0 en lugar de tratar de fusionar dos estándares completamente diferentes que sirven para diferentes propósitos

    
respondido por el Shurmajee 06.04.2013 - 20:57
fuente

Lea otras preguntas en las etiquetas