OpenID Connect
OpenID Connect es un protocolo de identidad simple y de estándar abierto basado en el protocolo OAuth 2.0 que permite a las aplicaciones cliente confiar en la autenticación realizada por un proveedor de OpenID Connect para verificar la identidad de un usuario.
OpenID Connect utiliza OAuth 2.0 para la autenticación y la autorización y, a continuación, crea las identidades que identifican a los usuarios de forma exclusiva. Las aplicaciones cliente también pueden obtener información básica de perfil acerca de un usuario de modo interoperativo de tipo REST de los proveedores de OpenID Connect.
Liberty da soporte a OpenID Connect 1.0 y desempeña un rol como cliente, o parte dependiente, y como proveedor en el inicio de sesión único web. Está soportada la siguiente especificación de OpenID Connect:
Para aquellos que utilizan un servidor Liberty como parte dependiente basada en web, la publicación OpenID Connect Basic Client Implementer's Guide 1.0 es un subconjunto de la especificación OpenID Connect Core que es más fácil de leer y proporciona detalles para las partes dependientes basadas en web que utilizan el flujo de código de autorización.
- Señal de acceso
- Credencial que se utiliza para acceder a recursos protegidos. Una señal de acceso es una serie que representa una autorización que se envía al cliente.
- Punto final de autorización
- Un recurso de un proveedor de OpenID que acepta una solicitud de autorización de un cliente para realizar la autenticación y la autorización de un usuario. El punto final de autorización devuelve un otorgamiento de autorización, o código, al cliente en el Flujo de código de autorización. En el Flujo implícito, el punto final de autorización devuelve una señal de ID y una señal de acceso al cliente.
- Otorgamiento de autorización
- Una credencial que representa la autorización de un usuario para acceder a los recursos, y que un cliente utiliza para obtener una señal de acceso.
- Reclamación
- Información confirmada sobre una entidad. Ejemplos de una declaración son un número de teléfono, un nombre de pila, un apellido, etc.
- Señal de ID
- JWT (JSON Web Token) que contiene declaraciones sobre el usuario autenticado.
- Punto final de introspección
- Un recurso de un proveedor de OpenID que permite a un cliente poseedor de una señal de acceso recuperar la información que se ha utilizado para crear la señal de acceso, como el nombre de usuario, ámbitos otorgados, ID de cliente u otra información.
- Proveedor de OpenID Connect (OP)
- Servidor de autorizaciones OAuth 2.0 que es capaz de suministrar declaraciones a un cliente, o parte dependiente (RP).
- Señal para renovación
- El OP la envía al cliente y se utiliza para obtener una nueva señal de acceso cuando caduca la señal de acceso actual, o para obtener más señales de acceso.
- Relying Party (RP)
- Un servidor de Liberty configurado como un cliente de OpenID Connect o una aplicación cliente que requiere reclamaciones de un proveedor de OpenID (OP).
- Ámbito
- Privilegio o permiso que está autorizado a acceder a los recursos de un tercero.
- Punto final de señal
- Un recurso de un OP que acepta un otorgamiento de autorización, o código, de un cliente, a cambio de una señal de acceso, señal de ID y señal de renovación.
El servidor de Liberty como un cliente de OpenID Connect
Puede configurar Liberty para que funcione como un cliente de OpenID Connect. Esta configuración permite que el servidor de Liberty se base en otro servidor de Liberty que actúa como OP para la autenticación y autorización de usuarios.
Un servidor de Liberty que está configurado para actuar como cliente de OpenID Connect da soporte al flujo de código de autorización del estándar OpenID Connect 1.0 .
En el flujo de código de autorización, todos los intercambios de señales se manejan mediante el punto final de señal del proveedor de OpenID Connect. En primer lugar, el cliente envía una solicitud de autorización al punto final de autorización del OP. Tras la autenticación y autorización satisfactorias del OP, el cliente recibe un otorgamiento de autorización, o código, del OP. Este código de autorización puede entonces enviarse en una solicitud al punto final de señal del OP. El cliente recibe una señal de ID, una señal de acceso y una señal de renovación en la respuesta del punto final de señal. A continuación, el cliente valida la señal de ID y recupera el identificador de sujeto del usuario. Este flujo de perfil está destinado a los clientes que pueden mantener de forma segura un secreto de cliente entre ellos y el OP. Este flujo también permite a los clientes obtener una señal de renovación.
Para configurar un servidor de Liberty como un cliente de OpenID Connect, consulte Configuración de un cliente de OpenID Connect en Liberty
El servidor de Liberty como proveedor de OpenID Connect
Puede configurar Liberty para que funcione como un proveedor de OpenID Connect. Esta configuración permite que el servidor de Liberty actúe como un servidor de autorización que pueden utilizar los clientes de OpenID Connect.
Un servidor de Liberty configurado para actuar como proveedor de OpenID Connect da soporte al flujo de código de autorización y al flujo implícito del estándar OpenID Connect 1.0 . Cada flujo determina cómo se devuelven al cliente la señal de ID, la señal de acceso y la señal de renovación.
El flujo de código de autorización maneja todos los intercambios de señal utilizando el punto final de señal del proveedor de OpenID Connect. Un proveedor de OpenID Connect acepta una solicitud de autorización de un cliente en el punto final de autorización del OP. Si la autenticación es necesaria, el proveedor de OpenID Connect realiza la autenticación adecuada. El proveedor de OpenID Connect también obtiene el consentimiento o autorización necesarios del usuario, por ejemplo solicitando al usuario en un navegador el permiso para otorgar acceso a determinados ámbitos. Si la operación es satisfactoria o si no se necesita autenticación, el proveedor de OpenID devuelve un otorgamiento de autorización, o código, al cliente. A continuación, el proveedor de OpenID Connect acepta una solicitud que el cliente envía a su punto final de señal y que incluye el código de autorización. La solicitud que incluye el código de autorización es validada por el proveedor de OpenID. Tras la validación satisfactoria, el proveedor de OpenID Connect devuelve una respuesta al cliente que incluye una señal de ID y una señal de acceso.
En el flujo implícito, a diferencia del flujo de código de autorización, todas las señales se devuelven desde el punto final de autorización; el punto final de señal de OP no se utiliza. En primer lugar, un cliente prepara y envía una solicitud de autenticación al punto final de autorización del OP. A continuación, el proveedor de OpenID Connect realiza la autenticación necesaria y también obtiene el consentimiento o autorización necesarios del usuario. Por ejemplo, el proveedor de OpenID Connect solicita al usuario en un navegador el permiso para otorgar acceso a determinados ámbitos. Tras la autenticación y la autorización satisfactorias, el proveedor de OpenID Connect devuelve una señal de ID y una señal de acceso al cliente. A continuación, el cliente valida la señal de ID y recupera el identificador de sujeto del usuario. Este flujo de perfil está destinado a los clientes que pueden mantener de forma segura un secreto de cliente entre ellos y el OP, como por ejemplo aplicaciones nativas.
Para configurar un servidor de Liberty como proveedor de OpenID Connect, consulte Configuración de un proveedor de OpenID Connect en Liberty.
Flujo de código de autorización
Un flujo de código de autorización típico de OpenID Connect se describe del siguiente modo:
- Un usuario accede a una aplicación de la RP.
- La RP prepara una solicitud de autenticación y redirige al usuario al OP.
- El OP autentica al usuario, por ejemplo solicitándole las credenciales. El usuario autoriza a la RP a acceder a la información necesaria para la aplicación. El OP genera un código de autorización de un solo uso para la RP.
- El OP redirige al usuario a la RP con el código de autorización.
- La RP llama al punto final de señal del OP para intercambiar el código de autorización por una señal de acceso, señal de ID y una señal de renovación.
- La RP utiliza la señal de ID para autorizar al usuario.
Flujo implícito
El flujo implícito sólo está soportado por los servidores de Liberty que actúan como proveedor de OpenID Connect. Un flujo implícito típico de OpenID Connect se describe del siguiente modo:
- Un usuario accede a una aplicación de la RP.
- La RP prepara una solicitud de autenticación y redirige al usuario al OP.
- El OP autentica al usuario, por ejemplo solicitándole las credenciales. El usuario autoriza a la RP a acceder a la información necesaria para la aplicación.
- El OP redirige al usuario a la RP con una señal de ID y una señal de acceso.
- La RP utiliza la señal de ID para autorizar al usuario.