Configuración de un proveedor de OpenID Connect para habilitar solicitudes OAuth de dos segmentos
El flujo de OAuth típico consta de tres "segmentos" o etapas de interacción entre un cliente y un servidor de autorización. En los escenarios de OAuth de dos segmentos, el cliente utiliza ámbitos autorizados previamente para que no sea necesaria ninguna interacción con el usuario, lo que elimina la necesidad de ejecutar uno de los segmentos en el flujo normal. En concreto, no es necesario que el usuario se autentique en el servidor de autorización ni que dé el consentimiento para compartir la información especificada por los ámbitos solicitados. En su lugar, todos los parámetros de ámbito se consideran autorizados previamente y se añaden automáticamente a la señal de solicitud, que se envía al servidor de autorización.
Antes de empezar
Acerca de esta tarea
En los escenarios con dos segmentos o etapas, un cliente de OpenID Connect puede enviar una solicitud HTTP de 2 segmentos con un grant type igual a client_credential o resource owner password. Estas solicitudes no pasan por el punto final de autorización, por lo que no hay ningún formulario de consentimiento de ámbito para que los usuarios puedan confirmar y aprobar los ámbitos solicitados; no obstante, el proveedor de OpenID Connect aún debe gestionar los ámbitos autorizados en su contenido de access_token.
Los servidores de Liberty que se configuran como proveedores de OpenID Connect y están equipados para manejar solicitudes de OAuth de dos segmentos aprueban los ámbitos autorizados previamente utilizando los siguientes criterios:
- Si el valor de parámetro grant_type de una solicitud es client_credential o resource owner password y la solicitud es una solicitud de OAuth 2.0, todos los ámbitos definidos en la solicitud se aprueban y se copian en el contenido de la señal de acceso. Este es el comportamiento existente de la característica OAuth 2.0.
- Si la solicitud es una solicitud de OpenID Connect o una solicitud OAuth de señal
JWT, se utilizan los siguientes criterios:
- Si no hay ningún parámetro de ámbito especificado en la solicitud, el proveedor de OpenID Connect no aceptará la solicitud.
- Los ámbitos solicitados deben estar presentes en la lista de ámbitos definidos por el atributo scope de la configuración del cliente y también deben especificarse en la lista preAuthorizedScope de la configuración del cliente.
Esta tarea muestra cómo configurar un servidor de Liberty que actúa como un proveedor de OpenID Connect para habilitar las solicitudes OAuth de dos segmentos.
Procedimiento
<oauthProvider id="OAuthConfigSample" ...>
....
<localStore>
<client name="client01" secret="{xor}..."
displayname="client01"
scope="profile email phone"
preAuthorizedScope="profile email"
enabled="true" />
....
</localStore>
</oauthProvider>