keycloak/README.md
2025-08-28 15:44:17 +02:00

95 lines
2.2 KiB
Markdown

# KEYCLOAK
Ce projet est pour upgrader Keycloak (déployé via Docker) de la version 16 vers la version 23 ou ultérieur
## PRE-REQUIS
- [Docker + compose](https://git.legaragenumerique.fr/GARAGENUM/docker-install)
- Base de donnée LDAP (fichier .mdb)
- Export d'un realm (format json)
## UTILISATION
- Editer les variables dans le .env
```bash
nano .env
```
> Modifier les mots de passe pour la base de données et keycloak ainsi que le domaine, l'adresse email, l'administrateur, etc
```bash
docker compose up -d
```
## UPGRADE PROCESS (from v16 to v26)
Pour upgrader keycloak, il faut:
- exporter la base de données utilisateurs (LDAP)
- exporter le realm
- démarrer la nouvelle version de keycloak (créer l'admin définitif et supprimer le temporaire)
- importer le realm de l'export json
- importer la base de données ldap
- Configurer le realm garagenum pour utiliser le ldap
- recréer les secrets des clients
### EXPORT LDAP DATABASE (USERS)
Pour upgrader keycloak, il faut:
- exporter la base de données utilisateurs (LDAP)
```bash
docker exec -it ancien-ldap bash
slapcat -n 1 -l /tmp/backup.ldif
docker cp ancien-ldap:/tmp/backup.ldif .
```
- exporter les `clients` du `realm`
:skull: Les secrets ne seront pas récupérés (*******) donc à persister avant ou idéalement recréer
### EXPORTER LE REALM
![]()
### DEMARRER LA NOUVELLE VERSION
```bash
docker compose up -d
```
### IMPORTER LE REALM
Utiliser le fichier json de l'export pour importer les configs du realm
![]()
### IMPORTER DATABASE LDAP (USERS)
- importer la base de données de `keycloak-openldap`:
```bash
# Copier la backup ldif
docker cp backup.ldif keycloak-openldap:/tmp/backup.ldif
# Se connecter au terminal du conteneur ldap
docker exec -it keycloak-openldap bash
# Arrêter le service slapd
service slapd stop
# Supprimer la DB actuelle
rm -rf /var/lib/ldap/*
# Ajouter le LDIF
slapadd -n 1 -F /etc/ldap/slapd.d -l /tmp/backup.ldif
# Ajuster les permissions
chown -R openldap:openldap /var/lib/ldap
# Redémarrer slapd
service slapd start
```
> c'est là que sont les users !
### CONFIGURER LE REALM POUR UTILISER LDAP
![]()
:danger: Activer featue script pour keycloak
## BUGS
- [ ] Users need get verified -> A faire manuellement sur chq user (possibly automated ?)