maj readme

This commit is contained in:
Grégory Lebreton 2025-09-12 14:55:44 +02:00
parent 438459eddf
commit 6a7ba1743c
7 changed files with 52 additions and 24 deletions

View File

@ -1,7 +1,10 @@
# KEYCLOAK
# KEYCLOAK (upgrade from 16.x to 26)
Ce projet est pour upgrader Keycloak (déployé via Docker) de la version 16 vers la version 26 ou ultérieur
Les versions antérieures à keycloak utilisaient `Wildfly`, J2EE lourd.
depuis la 17.x Keycloak utilise `Quarkus` un framework adapté au applis conteneurisée et plus léger.
## PRE-REQUIS
- [Docker + compose](https://git.legaragenumerique.fr/GARAGENUM/docker-install)
@ -24,15 +27,16 @@ 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
1. exporter la base de données utilisateurs (LDAP)
2. exporter la base de données de keycloak
3. exporter le realm garagenum en json
4. démarrer la nouvelle version de keycloak (créer l'admin définitif et supprimer le temporaire)
5. importer le realm de l'export json
6. importer la base de données ldap
7. importer la base de données pg
8. Configurer le realm garagenum pour utiliser le ldap
9. synchroniser LDAP avec keycloak
10. recréer les secrets des clients (et les mettres à jour côté clients)
### EXPORT LDAP DATABASE (USERS)
@ -60,9 +64,9 @@ docker exec <keycloak_db_container> pg_dump -U <db_user> <dn_name> > kc_db_backu
### EXPORTER LE REALM
![]()
![export-realm](docs/export-realm.png)
> Cocher groups et clients
> Cocher groups / roles et clients
### DEMARRER LA NOUVELLE VERSION
@ -76,7 +80,7 @@ docker compose up -d
Utiliser le fichier json de l'export une fois néttoyé pour importer les configs du realm
![]()
![import-realm](docs/create-realm.png)
- Redémarrer keycloak en mode production (Dockerfile.prod dans le `compose.yml`)
@ -110,22 +114,46 @@ service slapd start
### CONFIGURER LE REALM POUR UTILISER LDAP
![]()
- Dans le menu de gauche, cliquer sur `Regroupement Utilisateur`, puis sur `ldap`
- Configurer l'accès au service LDAP (voir captures d'écran)
## SECURISER LE LDAP
<details>
<summary>Captures d'écran</summary>
![ldap-1](docs/ldap-1.png)
![ldap-2](docs/ldap-2.png)
![ldap-3](docs/ldap-3.png)
![ldap-4](docs/ldap-4.png)
</details>
- Tester la connexion pour s'assurer que keycloak arrive à se connecter au service LDAP
## SECURISER LE LDAP (si besoin de l'exposer sur l'extérieur)
### FAIL2BAN JAIL FOR LDAP (TO DO)
- /etc/fail2ban/filter.d/slapd.conf
```conf
[Definition]
failregex = .*slapd.*do_bind: invalid credentials.*
ignoreregex =
```
- /etc/fail2ban/jail.local
```conf
[slapd]
enabled = true
filter = slapd
backend = systemd
logpath = /var/log/syslog
maxretry = 5
bantime = 3600
findtime = 600
port = ldap,ldaps
```
- /etc/fail2ban/...
```conf
```
## BUGS
- [ ] Users need get verified -> A faire manuellement sur chq user (possibly automated ?)
> Si seul le service keycloak utilise le service LDAP, commenter l'exposition des `ports` du service LDAP dans le `compose.yml`

BIN
docs/create-realm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
docs/export-realm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
docs/ldap-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
docs/ldap-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
docs/ldap-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

BIN
docs/ldap-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB