...
Esto nos permitirá poder delegar la autenticación en el IdP teniendo a Keycloak como intermediario, para así poder seguir utilizando Oauth2 como estándar de autenticación/autorización en plataforma y aplicaciones que trabajen con la ésta.
Nota
Aunque se seguirá pudiendo utilizar Oauth y los tokens generados por dicho mecanismo, para la obtención del token solo se podrá usar el flujo de código de autorización. Esto es debido a que, como bien es sabido, SAML2 es un protocolo síncrono que requiere de la participación del navegador en una serie de redirecciones. Una vez obtenido el token, se podrá utilizar en las cabeceras HTTP de Authorization.
Configuración en Keycloak
El primer paso será configurar el identity brokering en Keycloak.
Identity Provider
Lo primero será dar de alta el servidor IdP SAML2. Para ello tendremos que logarnos en la consola de administración de Keycloak. (p.e. https://development.onesaitplatform.com/auth/ )
...
Repetimos el proceso para email y name, quedándonos 3 mappers definidos:
...
Authentication Flow
Ahora tenemos que crear el flujo para la importación del usuario en el primer log in.
...
Por último, volvemos a “Identity providers” a través del menú, y seleccionamos el IdP de SAML que creamos en el paso anterior. Buscamos el parámetro de configuración “First Login Flow” y seleccionamos el Flujo que acabamos de crear:
...
Guardamos los cambios.
Configuración en Service Provider (SP) o aplicativos
Una vez configurado Keycloak, ya solo queda configurar el cliente Oauth que vaya a hacer uso de esta autenticación.
...
Token obtenido tras el login:
...
:
...
Configuración extra nginx
Code Block |
---|
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host; |
Keycloak ENV VAR:
...