Invocación del punto final de autorización para OpenID Connect
En OpenID Connect, el punto final de autorización gestiona la autenticación y la autorización de un usuario.
Antes de empezar
Acerca de esta tarea
El punto final de autorización acepta una solicitud de autenticación que incluye parámetros definidos por las especificaciones OAuth 2.0 y OpenID Connect 1.0.
En el flujo de código de autorización, el punto final de autorización se utiliza para la autenticación y la autorización, y devuelve un otorgamiento de autorización al cliente. A continuación, el cliente puede pasar este otorgamiento de autorización en una solicitud al punto final de señal a cambio de una señal de ID, una señal de acceso y una señal de renovación. En el flujo implícito, el punto final de autorización continúa realizando la autenticación y la autorización, pero también devuelve directamente una señal de ID y una señal de acceso al cliente en su respuesta; no se realiza ninguna interacción con el punto final de señal.
Un servidor de Liberty con OpenID Connect habilitado tiene acceso al punto final de autorización de OpenID Connect en el siguiente URL:
https://server.example.com:443/oidc/endpoint/<provider_name>/authorize
Procedimiento
Resultados
El proveedor de OpenID Connect intenta autenticar y autorizar al usuario una vez que recibe una solicitud del cliente.
En el flujo de código de autorización, si la autenticación y la autorización son satisfactorias, el proveedor de OpenID Connect emite un código de autorización y lo incluye como un parámetro en un la autorización de respuesta OAuth 2.0 al cliente. Si la solicitud inicial incluía state, la respuesta de autorización también incluirá el valor state exacto que se ha incluido en la solicitud inicial. Utilizando el formato application/x-www-form-urlencoded, los parámetros code y state se añaden como parámetros de consulta al valor redirect_uri que se ha especificado en la solicitud de autorización.
En el flujo implícito, si la autenticación y la autorización son satisfactorias, se devuelven los parámetros siguientes desde el punto final de autorización.
- access_token: Señal de acceso. Se devuelve a menos que el valor [response_type] en la solicitud inicial sea [id_token].
- token_type: Tipo de señal OAuth 2.0. Para OpenID Connect, este valor es Bearer.
- id_token: Señal de ID.
- state: Necesario si se incluye en la solicitud de autorización.
- expires_in: (Opcional) Hora de caducidad de la señal de acceso en segundos desde que se generó la respuesta.
Estos parámetros se añaden al componente de fragmento del valor redirect_uri que se especifica en la solicitud de autorización, no como parámetros de consulta como en el flujo de código de autorización.
Ejemplo
A continuación, se muestra una solicitud de ejemplo del flujo de código de autorización:
GET /authorize?
response_type=code
&scope=openid profile email
&client_id=client01
&state=af0ifjsldkj
&redirect_uri=https://server.example.com:8020/oidcclient/redirect/client01 HTTP/1.1
A continuación, se muestra una solicitud de ejemplo del flujo implícito:
GET /authorize?
response_type=id_token token
&scope=openid profile
&client_id=client01
&state=af0ifjsldkj
&redirect_uri=https://server.example.com:8020/oidcclient/redirect/client01
&nonce=n-0S6_WzA2Mj HTTP/1.1
A continuación, se muestra una respuesta de ejemplo del punto final de autorización en el flujo de código de autorización:
HTTP/1.1 302 Found
Location: https://server.example.com:8020/oidcclient/redirect/client01
code=SplxlOBeZQQYbYS6WxSbIA
&state=af0ifjsldkj
A continuación, se muestra una respuesta de ejemplo del punto final de autorización en el flujo implícito:
HTTP/1.1 302 Found
Location:
https://server.example.com:8020/oidcclient/redirect/client01
access_token=SlAV32hkKG
&token_type=Bearer
&id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso
&expires_in=3600
&state=af0ifjsldkj