Autenticación OAuth2/Open ID

La autenticación OAuth2 con la GI (Gestión de Identidad, Identity Management) avanzada se realiza de la misma manera que con la GI base.

 

Configuración bien conocida

Cuando se usa esta GI, hay un endpoint que proporciona toda la configuración que necesitan tus aplicaciones para implementar el proceso de autenticación.

Este endpoint es accesible a través de la URL:

https://{DNS}/auth/realms/{realm}/.well-known/openid-configuration

Por ejemplo:

https://development.onesaitplatform.com/auth/realms/onesaitplatform/.well-known/openid-configuration

La información se mostrará en formato de datos JSON.

Endpoints

Concesión de tipo implícito (contraseña)

Este es el flujo de OAuth2 más utilizado.

Hay que hacer una petición POST al token_endpoint con los siguientes parámetros:

HTTP Headers (Cabeceras HTTP)

Authorization Basic (Autorización (Básica)): utilizando clientId y clientSecret. Por defecto ambos valores son "onesaitplatform", pero si estás usando Realms, pueden cambiar.

HTTP Body (Cuerpo HTTP) (x-www-form-urlencoded)

grant_type (tipo de concesión): password

scope (alcance): openid

username (nombre de usuario): {username}

password (contraseña): {password}

Si tiene éxito, se devuelve un token de acceso. Este token contiene las afirmaciones del usuario registrado. Puedes decodificarlo en base64 o hacer otra petición al userinfo_endpoint (ver más adelante).

Flujo de código de autorización

Este flujo OAuth2 se utiliza en los casos en los que la GI utiliza la intermediación de identidades con otros proveedores de identidad, como SAML2.

Se utilizará el authorization_endpoint. Tras el proceso de inicio de sesión, y el intercambio de código para el token, recibirás la misma carga útil (payload) que en el flujo de concesión implícita.

Información del usuario

Este punto final se utiliza para comprobar la validez del token y recuperar las afirmaciones de los usuarios.

Se debe realizar una solicitud HTTP GET con el token de portador como cabecera de la Autorización.

 



(c) 2020 Indra Soluciones Tecnologías de la Información, S.L.U.