Repositorio de Liberty[8.5.5.4 o posterior]

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

Cuando se inicia el punto final de autorización desde una aplicación cliente en un navegador o una aplicación cliente implementada en un lenguaje de script como, por ejemplo, Javascript, no se necesita ninguna configuración de un servidor de perfiles Liberty como un cliente de OpenID Connect.

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 perfiles 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
Nota: En este ejemplo, el puerto SSL del OP se espera que sea 443.

Procedimiento

  1. Prepare una solicitud HTTP GET o POST que incluya los siguientes parámetros necesarios y recomendados.
    • scope: (Necesario) Las solicitudes de OpenID Connect deben contener el valor de ámbito openid. También puede haber otros ámbitos.
    • response_type: (Necesario) Determina el flujo de proceso de autorización que debe utilizarse. Cuando se utiliza el flujo de código de autorización, este valor es code. Cuando se utiliza el flujo implícito, este valor es id_token token o id_token. No se devuelve ninguna señal de acceso cuando el valor es id_token.
    • client_id: (Necesario) Identificador de cliente que es válido en el proveedor de OpenID Connect.
    • redirect_uri: (Necesario) URI de redirección al que se enviará la respuesta. Este valor debe coincidir exactamente con uno de los valores de URI de redirección para el cliente registrado en el OP.
    • state: (Recomendado) Valor opaco utilizado para mantener el estado entre la solicitud y la devolución de llamada.
    • nonce: (Necesario para el flujo implícito) Valor de serie que se utiliza para asociar una sesión de cliente con una señal de ID y para mitigar los ataques de reproducción.

    Puede incluir más parámetros en la solicitud. Para obtener una descripción de otros parámetros soportados, consulte la especificación OpenID Connect Core 1.0.

    No damos soporte sólo a un response_type id_token. Si se utiliza el flujo implícito, se debe utilizar siempre id_token token y se devolverá una señal de acceso.

  2. Envíe la solicitud GET o POST al URL de punto final de autorización.

Resultados

Después de completar estos pasos, tiene una solicitud HTTP válida que se envía al punto final de autorización. El punto final de autorización devuelve una respuesta de la manera que se describe en la sección Ejemplos.

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

Los ejemplos siguientes muestran formas de flujo de código implícito y de autorización.

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:443/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:443/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:443/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:443/oidcclient/redirect/client01
     access_token=SlAV32hkKG
     &token_type=Bearer 		
     &id_token=eyJ0 ... NiJ9.eyJ1c ... I6IjIifX0.DeWt4Qu ... ZXso 		
     &expires_in=3600 		
     &state=af0ifjsldkj

Icono que indica el tipo de tema Tema de tarea

Términos y condiciones para centros de información | Comentarios


Icono de indicación de fecha y hora Última actualización: 15 de junio de 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_oidc_auth_endpoint
Nombre de archivo:twlp_oidc_auth_endpoint.html