Keycloak
Inventory › Keycloak gestiona el Keycloak amb què les aplicacions inicien sessió. No es copia res a Horizon: cada pàgina llegeix Keycloak en directe i cada canvi es desa a Keycloak al moment. Els viewer llegeixen, els operator modifiquen.
A Sora, Keycloak el desplega FluxCD dins del clúster, buit. Tot el que hi ha dins (realms, clients, usuaris, ...) es configura des d'aquí.
Connexi ó
A Admin › Infrastructure › Keycloak s'indica la seva adreça, el realm d'administració (normalment master) i l'usuari i la contrasenya d'un administrador. Amb FluxCD, l'administrador inicial és al secret keycloak-initial-admin:
kubectl -n keycloak-system get secret keycloak-initial-admin -o jsonpath='{.data.username}' | base64 -d
kubectl -n keycloak-system get secret keycloak-initial-admin -o jsonpath='{.data.password}' | base64 -d
La contrasenya es fa servir una única vegada: Horizon crea el seu propi client confidencial (horizon-admin) amb el rol admin, en guarda només el secret i a partir d'aleshores hi accedeix únicament amb ell.
- Verify comprova que Keycloak respon, que el client inicia sessió i que pot llistar els realms.
- Renew secret genera un secret nou i el desa en el mateix pas.
- Recreate client torna a crear el client si s'ha esborrat a Keycloak.
- L'administrador per defecte es pot desactivar des d'aquí, un cop el client d'Horizon funciona.
Realms
La llista mostra cada realm amb el seu estat i quants rols, clients, persones i aplicacions conté. New realm en crea un de nou, per defecte amb les polítiques d'autenticació recomanades.
Als ajustos de cada realm:
- Nom visible i estat.
- Els seus endpoints OpenID (configuració, issuer, authorization, token, userinfo, logout), cadascun amb el seu botó de copiar.
- Les polítiques d'autenticació comparades amb el valor recomanat (contrasenya de 30 caràcters amb número i símbol, protecció contra força bruta, OTP, passkeys, ...), aplicables una a una o totes juntes.
- El correu, amb un botó per enviar una prova.
- El tema, entre els instal·lats (com el tema
moonque desplega FluxCD).
Rols, scopes, clients i persones
- Rols i scopes: cada rol amb quantes persones el tenen, i cada scope amb el rol al qual està associat. Un scope nou crea per defecte un rol amb el seu mateix nom.
- Clients: cada client fa servir un de dos fluxos: Authorization Code amb PKCE (una persona des del navegador, client públic) o Client Credentials (un servei, client confidencial). El secret d'un client confidencial es pot copiar sense mostrar-lo o regenerar.
- Persones: cerca, alta (nom, cognoms i email), rols, accions requerides al següent inici de sessió i contrasenyes generades que es mostren una única vegada.
Aplicacions
Una aplicació descriu en un manifest KeycloakApplication tot el que necessita d'un realm: clients, rols, scopes, rols de client i, si cal, les seves pròpies persones (per exemple, la dels tests d'integració). El manifest viu al repositori de l'aplicació.
apiVersion: horizon/v1
kind: KeycloakApplication
name: sachiko
displayName: Sachiko
version: 1.4.0
variables:
- name: host
description: Where Sachiko is served
required: true
roles:
- name: sachiko:viewer
- name: sachiko:admin
scopes:
- name: sachiko:viewer
role: sachiko:viewer
- name: sachiko:admin
role: sachiko:admin
Importar-la (des de Git o pujant el fitxer) són tres passos: el manifest, els valors que demana i una revisió que mostra, abans de canviar res, cada element tal com quedarà i què li passarà (crear, adoptar, canviar, mantenir o eliminar).
- Tornar a importar una versió superior actualitza l'aplicació. Una versió inferior es rebutja.
- Cada aplicació mostra si Keycloak continua tenint el que declara; Apply again restaura el que s'hagi canviat a mà.
- Remove esborra de Keycloak tot el que té l'aplicació. Let go l'oblida a Horizon i ho deixa tot a Keycloak.
El contracte complet és a keycloak-application.md.