Hola a todos!
He encontrado este foro hace poco por Mastodon y me gustaría presentarme hablando de mi nuevísima obsesión en el mundillo auto alojado: mi keycloak. Llevo un tiempo querie
Dejadme empezar de nuevo. Hola, soy Dentrit y soy adicto a keycloak.
Primeros pasos
Todo empezó en el curro, cuando de golpe nos entró un proyecto en el que debía configurar la autenticación de un servidor de git contra un proveedor de autenticaciones, algo que no había tenido que hacer nunca. Recuerdo que enganché el proyecto con ganas, porque era algo distinto y refrescante a tanta IA y modelos con los que había tenido que trabajar rencientemente.
A partir de eso, empezó a picarme la curiosidad. Empecé arrancando un Keycloak en mi NAS, donde tengo la mayoría de los contenedores con los servicios y con eso estuve indagando unos días. Por si os sirve, este es mi docker-compose.yaml
services:
lldap:
image: lldap/lldap:stable
ports:
- 17170:17170 # web
- 3890:3890 # ldap
volumes:
- ./data:/data
environment:
- UID=1000
- GID=1000
- TZ=Europe/Madrid
- LLDAP_VERBOSE=false
- LLDAP_JWT_SECRET=xxx
- LLDAP_KEY_SEED=xxx
- LLDAP_LDAP_BASE_DN=dc=home,dc=lan
- LLDAP_LDAP_USER_PASS=xxx
keycloak:
image: quay.io/keycloak/keycloak
ports:
- 8082:8080
environment:
KC_HTTP_ENABLED: true
KC_HOSTNAME: https://auth.home.lan
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://10.2.0.1:15432/keycloak
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: xxx
KC_PROXY_HEADERS: xforwarded
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: admin
command:
- start
- --features=quick-theme
Ahora, tengo que reconocer que el tema de las autenticaciones y autorizaciones siempre me ha dado un poco de miedo, hasta hace poco no conocía muy bien la diferencia entre SAML/Oauth/OpenID connect (y tampoco es que sea un experto ahora) por lo que todo esto me venía un poco grande y me daba algo de apuro configurarlo, ¿y si la liaba y perdía el acceso a algo? Empecé con algo que no pudiera romper.
Mi primer OIDC
Aproveché que estaba probando una aplicación nueva, immich, que casualmente tenia integración con keycloak para probar todo un poco y me dejó sorprendido. Fue tan... sencillo? Crear el cliente por aqui, poner una url y una password por allá y configurado!
Luego, hablándolo con algunos compañeros me hicieron ver que de fácil nada, que como mi LDAP tiene solo un usuario (yo) y todo dios es administrador (básicamente yo) se simplifica mucho la cosa 😃
El primer problema
Con immich configurado y viendo lo facil que era me envalentoné y intenté configurarlo en mi Grafana. No es una aplicación muy importante porque no guarda datos sensibles que digamos. Y con este si que era un problema, me encallé!
La parte de configurar IODC bien, igual que el resto una url por aqui, una password por allá y configurado. Pero el problema vino cuando quise configurar que ciertos roles (admin) del keycloak se mapearan con roles (Admin, con mayúscula) del grafana. No hubo manera, entre intentos y horas probando no conseguí hacer nada.
Vamos, que ahora tengo solo permisos de lectura en mi propio grafana, de lo que se aprende...
En conclusión, soy adicto y orgulloso de ello. Si una aplicación me deja le configuro LDAP o OIDC, sin dudarlo! Esto ya me ha traído algún problema que otro pero eso es lo que tienen las adicciones, no ves lo que te está comportando hasta que deja de funcionar 😃
Gracias por leer! Espero veros por aquí