Keycloak sobre docker
En esta oportunidad les traigo un tutorial sobre keycloak una herramienta de código abierto que permite idp (identity provider) que en cagastellano seria algo como inicio de sesión único con Identity Management y Access Management para aplicaciones y servicios.
Necesitamos obviamente tener docker instalado y luego crear el archivo docker-compose con esta configuración:
version: '3'
services:
db:
#image: postgres
image: postgres:14.2
environment:
POSTGRES_DB: keycloakdb
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- '5432:5432'
volumes:
- ./db:/var/lib/postgresql/data
keycloak:
#image: jboss/keycloak
image: jboss/keycloak:16.1.0
environment:
DB_VENDOR: POSTGRES
DB_ADDR: db
DB_DATABASE: keycloakdb
DB_USER: postgres
DB_PASSWORD: postgres
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
#KEYCLOAK_LOGLEVEL: DEBUG
#ROOT_LOGLEVEL: DEBUG
ports:
- '8083:8080'
depends_on:
- db
volumes:
db:
driver: local
Luego ejecutaran:
docker-compose up -d
Y una vez que arme los contenedores con su respectiva persistencia podran ver funcionar a keycloak en su navegador yendo a la dirección localhost:8083

Para ingresar solo vamos a la consola de administración y utilizaremos las variables de entornos que precargamos en el docker-compose.yml o sea admin y password

Que tiene de interesante? es compatible de forma predeterminada con los protocolos de federación de identidad SAML v2 y OpenID Connect (OIDC) / OAuth2.
Delegar la identificación de los usuarios de cualquier aplicación reduce el costo de trabajo respecto al desarrollo en si, ademas de crear un ambiente más homogéneo y centralizado
En resumen con keycloak podemos:
- Inicio de sesión única (basado en SAML2 u OpenId)
- Gestión de identidades
- Gestión de acceso
Verdaderamente podríamos usar keycloak como proveedor de identidades por ejemplo de de WSO2 AM mediante el protocolo Oauth2 a través de una sencilla configuración sin necesidad de desarrollos adicionales.
Espero les haya gustado la entrada sobre keycloak, faltaría crear configuraciones que lo dejamos para otra entrada para no meternos con detalles sobre todo ya que es una presentación de como levantar sobre docker. Creando clientes y con algunas modificaciones simples podríamos contar con un servicio centralizado genial y que nos ahorraría muchos dolores de cabeza.
Filed under: devops,docker,gnulinux,redes - @ 19 octubre, 2022 12:40 am
Etiquetas: autentificacion, docker, identity provider, idp, keycloak, oauth2, openid, saml