This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/roles/serveur_keycloak/README.md
Daniel Allaire ca0f95da28 Mettre les noms de roles et playbooks au singulier
serveurs_* -> serveur_, clients_ -> client_, suffixes pluriels au
singulier (serveur_web_dorsal/frontal, client_metrique, client_journal).

Renommage par tokens exacts : repertoires de roles, playbooks de groupes,
group_vars, variables internes des roles (serveur_nginx_*, conformite
ansible-lint), groupes du plan, constantes de code, docs. Faux-amis
preserves (serveurs_bd, scripts/serveurs.py, fonctions Python). Groupes
d'etat gardes au pluriel (hotes_actifs/planifies, modeles_vm).

Valide : ansible-lint 0 echec (0 var-naming), diff vide de la generation,
node --check, tous les registres. Ajout de .ansible-lint excluant docs/
(registres de donnees, pas du contenu Ansible).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 23:18:52 -04:00

42 lines
2.3 KiB
Markdown

# serveur_keycloak
SSO / IAM **Keycloak** (distribution Quarkus) — hub d'authentification centralisée
(OIDC/SAML) pour les services Chezlepro.
## Rôle
- Installe un JRE, télécharge et extrait la distribution Keycloak dans `/opt/keycloak`.
- Configure la **base PostgreSQL via le registre** `docs/bases-donnees.yml` (entrée `keycloak`).
- Publie derrière `serveur_nginx` (TLS à l'edge) : `hostname`, `proxy-headers=xforwarded`, `http-enabled=true`.
- Secrets (mot de passe BD + admin bootstrap) dans `/etc/keycloak/keycloak.env` (`0640`, `no_log`).
- `kc.sh build --db=postgres` (une fois par version) puis service systemd `start --optimized`.
## Premier consommateur du registre de BD
L'entrée `keycloak` de `docs/bases-donnees.yml` fait que :
1. `serveur_postgresql` crée la base `keycloak` + le compte propriétaire `keycloak`.
2. Ce rôle lit **la même entrée** pour bâtir sa connexion (`db-url-database`, `db-username`, mot de passe = `vault_bd_keycloak`).
Mot de passe partagé, source unique. Dépendance `serveur_keycloak requiert serveur_postgresql actif` déjà dans `docs/dependances-groupes.yml`.
## Secrets requis (Vault)
```yaml
serveur_keycloak_admin_password: "{{ vault_keycloak_admin }}" # admin bootstrap
vault_bd_keycloak: "..." # mot de passe BD (partage avec postgres)
```
## Variables principales
| Variable | Défaut | Rôle |
| --- | --- | --- |
| `serveur_keycloak_version` | `26.0.7` | Version (à vérifier/bumper sur keycloak.org/downloads) |
| `serveur_keycloak_hostname` | `keycloak.chezlepro.internal` | Hostname public (via nginx) |
| `serveur_keycloak_db_host` | `10.1.13.11` | IP de data-01 (serveur_postgresql) |
| `serveur_keycloak_admin_user` | `admin` | Admin bootstrap |
## Notes / limites
- **Version** : à confirmer/bumper ; l'URL suit le motif officiel des releases GitHub.
- L'unité systemd est dérivée des conventions Keycloak (la doc officielle ne fournit pas d'unité) — sandboxing volontairement modéré pour ne pas casser le démarrage.
- Le **site nginx** publiant Keycloak se déclare côté `serveur_nginx` (`serveur_nginx_sites`), pas ici.
- Certificats : TLS terminé à l'edge ; aucun certificat sur Keycloak.
## Prérequis
- Réseau sortant pour télécharger la distribution.
- Base PostgreSQL atteignable (dépendance `serveur_postgresql`).