Federation d'identites et social login 22 min de lecture

User Federation : LDAP et Active Directory

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

  1. Allez dans User Federation
  2. Selectionnez LDAP
  3. 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