diff --git a/README.md b/README.md index ac6a944..d5b42f6 100644 --- a/README.md +++ b/README.md @@ -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 pg_dump -U > 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 +
+ Captures d'écran + +![ldap-1](docs/ldap-1.png) + +![ldap-2](docs/ldap-2.png) + +![ldap-3](docs/ldap-3.png) + +![ldap-4](docs/ldap-4.png) + +
+ +- 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` diff --git a/docs/create-realm.png b/docs/create-realm.png new file mode 100644 index 0000000..a0116f6 Binary files /dev/null and b/docs/create-realm.png differ diff --git a/docs/export-realm.png b/docs/export-realm.png new file mode 100644 index 0000000..fcd26ab Binary files /dev/null and b/docs/export-realm.png differ diff --git a/docs/ldap-1.png b/docs/ldap-1.png new file mode 100644 index 0000000..517a004 Binary files /dev/null and b/docs/ldap-1.png differ diff --git a/docs/ldap-2.png b/docs/ldap-2.png new file mode 100644 index 0000000..2444d7c Binary files /dev/null and b/docs/ldap-2.png differ diff --git a/docs/ldap-3.png b/docs/ldap-3.png new file mode 100644 index 0000000..d157a62 Binary files /dev/null and b/docs/ldap-3.png differ diff --git a/docs/ldap-4.png b/docs/ldap-4.png new file mode 100644 index 0000000..b67d4c1 Binary files /dev/null and b/docs/ldap-4.png differ