Qu'est-ce que la User Federation ?
La User Federation permet a Keycloak de synchroniser les utilisateurs depuis une source externe comme un annuaire LDAP ou Active Directory. Les utilisateurs peuvent s'authentifier avec leurs identifiants existants.
Configurer LDAP
Via la console
- Allez dans User Federation
- Selectionnez LDAP
- Configurez les parametres de connexion :
# Parametres typiques LDAP
Vendor: Other (ou Active Directory)
Connection URL: ldap://ldap.example.com:389
Bind DN: cn=admin,dc=example,dc=com
Bind Credential: mot-de-passe-admin
Users DN: ou=users,dc=example,dc=com
Username LDAP attr: uid (ou sAMAccountName pour AD)
UUID LDAP attr: entryUUID (ou objectGUID pour AD)
User Object Classes: inetOrgPerson (ou person pour AD)
Modes de synchronisation
- Import Users : Copie les utilisateurs LDAP dans la base Keycloak (par defaut)
- Periodic Sync : Synchronisation automatique a intervalle regulier
- Changed Users Sync : Ne synchronise que les utilisateurs modifies
# Tester avec un LDAP local via Docker
docker run -d --name openldap \
-p 389:389 \
-e LDAP_ADMIN_USERNAME=admin \
-e LDAP_ADMIN_PASSWORD=admin \
-e LDAP_ROOT=dc=example,dc=com \
bitnami/openldap:latest
# Verifier la connexion
ldapsearch -x -H ldap://localhost:389 \
-D "cn=admin,dc=example,dc=com" \
-w admin \
-b "dc=example,dc=com"
Mappers LDAP
Les mappers definissent comment les attributs LDAP sont mappes vers les attributs Keycloak :
- user-attribute-ldap-mapper : Mappe un attribut LDAP vers un attribut utilisateur
- full-name-ldap-mapper : Mappe cn vers firstName + lastName
- group-ldap-mapper : Synchronise les groupes LDAP
- role-ldap-mapper : Synchronise les roles LDAP