13-junio-2023
admin

Utilización de Keycloak para Single Sign-On (SSO)

Single Sign-On se trata de un inicio de sesión unificado. Consiste en un procedimiento de autenticación que habilita a un usuario concreto acceso a distintos sistemas con una sola instancia de identificación.

Una herramienta sencilla que podemos utilizar para configurarnos un SSO que poder utilizar en nuestras aplicaciones se trata de Keycloak.

Ejemplo de uso:
Paso 1 – Ponemos iniciar keycloak mediante su imagen Docker mediante el siguiente comando:

 
 docker run -p 8081:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=password jboss/keycloak
-Dkeycloak.profile.feature.docker=enabled -b 0.0.0.0

Una vez iniciado podemos acceder a la aplicación mediante la url:
http://localhost:8081/auth/admin/master/console/

Paso 2 – Vamos a configurar un usuario y un cliente para poder probar el acceso:

Paso 2.1 – Crear Realm

Creación de un Realm
Crear Realm en keycloak

Pantalla de edición de un Realm
Crear Realm en keycloak

Paso 2.2 – Crear Client (es la aplicación que se va a conectar)

Creación de un cliente
Crear Cliente en keycloak

Crear Cliente en keycloak

Pantalla de edición de un cliente
Crear Cliente en keycloak

Paso 2.3 – Crear User y Rol (Se trata del usuario que se va a conectar y un rol que va a tener asignado)

Creación de un rol
Crear Rol en keycloak

Crear Rol en keycloak

Creación de un usuario
Crear User en keycloak

Crear User en keycloak

Crear User en keycloak

Crear User en keycloak

Pantalla de asignación del rol al usuario creado
Asignar Rol al User en keycloak

Paso 3 – Prueba obtención token.

 
curl --example --request POST 'http://localhost:8081/auth/realms/disastercode/protocol/openid-connect/token' 
--header 'Content-Type: application/x-www-form-urlencoded' 
--data-urlencode 'grant_type=password' 
--data-urlencode 'client_id=appClient' 
--data-urlencode 'client_secret=7YXN4WL8n3d0LUYejWGJWpG3xyJPUaPE' 
--data-urlencode 'username=admin' 
--data-urlencode 'password=admin'

Petición con postman
Prueba Postman

Comentarios cerrados.

Categorias

Linkedin