3.2 KiB
KEYCLOAK
Ce projet est pour upgrader Keycloak (déployé via Docker) de la version 16 vers la version 26 ou ultérieur
PRE-REQUIS
- Docker + compose
- Base de donnée LDAP (fichier .mdb)
- Export d'un realm (format json)
UTILISATION
- Editer les variables dans le .env
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
docker compose up -d
UPGRADE PROCESS (from v16 to v26)
Pour upgrader keycloak, il faut:
- exporter la base de données utilisateurs (LDAP)
- exporter la bese de données de keycloak
- 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 pg (here ?!)
- 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)
# Se connecter au terminal du conteneur ldap
docker exec -it ancien-ldap bash
# Exporter la base de données
slapcat -n 1 -l /tmp/backup.ldif
# Récupérer le fichier d'export sur la machine hôte
docker cp ancien-ldap:/tmp/backup.ldif .
- exporter les
clientsdurealm
💀 Les secrets ne seront pas récupérés (*******) donc à persister avant ou idéalement recréer
EXPORTER LA BASE DE DONNÉES KEYCLOAK
docker exec <keycloak_db_container> pg_dump -U <db_user> <dn_name> > kc_db_backup.sql
On obtient un fichier que l'on va pouvoir importer dans la nouvelle base de donnée keycloak
EXPORTER LE REALM
Cocher groups et clients
DEMARRER LA NOUVELLE VERSION
docker compose up -d
IMPORTER LE REALM
- Clean
authorizationSettingsblocs in export-realm.json
Utiliser le fichier json de l'export une fois néttoyé pour importer les configs du realm
- Redémarrer keycloak en mode production (Dockerfile.prod dans le
compose.yml)
IMPORTER BASE DE DONNÉES KEYCLOAK
Placer le fichier de backup de la BDD de keycloak dans le dossier persisté ./init-scripts
Vérifier les logs au démarrage pour vérifier que l'import de la base de données à été bien faite.
IMPORTER DATABASE LDAP (USERS)
- importer la base de données de
keycloak-openldap:
# 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
SECURISER LE LDAP
FAIL2BAN JAIL FOR LDAP (TO DO)
- /etc/fail2ban/jail.local
- /etc/fail2ban/...
BUGS
- Users need get verified -> A faire manuellement sur chq user (possibly automated ?)