Mappings LDAP¶
Cette fonctionnalité permet d'attribuer automatiquement des rôles Avalon aux utilisateurs LDAP en fonction de leurs groupes Active Directory ou LDAP. Cela évite de devoir assigner manuellement un rôle à chaque utilisateur LDAP.
Principe¶
Un mapping associe :
- Un tenant Avalon
- Un ou plusieurs groupes LDAP/AD
- Un rôle Avalon
Lorsqu'un utilisateur LDAP se connecte, Avalon récupère ses groupes depuis l'annuaire (attribut memberOf) et les croise avec les mappings configurés. Si un ou plusieurs groupes de l'utilisateur correspondent à un mapping, le rôle associé est automatiquement attribué pour le tenant concerné.
Configuration des mappings¶
Pour chaque mapping, vous définissez :
- Tenant : Le tenant cible.
- LDAP Groups : Un ou plusieurs groupes LDAP (sélection multiple parmi les groupes détectés).
- Role : Le rôle Avalon à attribuer.
Vous pouvez créer autant de mappings que nécessaire pour couvrir tous vos tenants et groupes.
Détection des groupes
La liste des groupes LDAP disponibles est construite automatiquement à partir des groupes de tous les utilisateurs LDAP enregistrés dans Avalon.
Groupes supprimés
Si un groupe LDAP est supprimé côté Active Directory, il s'affiche avec un indicateur visuel orange dans l'interface. Le mapping reste en place mais ne sera plus appliqué pour les utilisateurs qui n'appartiennent plus à ce groupe.
Résolution des rôles au login¶
Voici comment Avalon détermine les rôles d'un utilisateur LDAP :
- Connexion LDAP réussie : l'utilisateur est authentifié auprès du serveur LDAP.
- Récupération des groupes : Avalon interroge l'annuaire pour obtenir la liste des groupes de l'utilisateur (via
memberOf). Ces groupes sont mis en cache en base de données. - Croisement avec les mappings : les groupes de l'utilisateur sont comparés aux mappings configurés.
- Attribution des rôles :
- Si un ou plusieurs mappings correspondent → les rôles associés sont attribués dynamiquement.
- Si aucun mapping ne correspond → Avalon utilise l'assignation manuelle classique (tenant/rôle défini dans la fiche utilisateur) comme fallback.
Résolution dynamique
Les rôles issus des mappings LDAP ne sont pas stockés sur l'utilisateur. Ils sont résolus à la volée à chaque appel. Cela signifie que toute modification d'un mapping prend effet immédiatement, sans que l'utilisateur ait besoin de se reconnecter.
Gestion des conflits¶
Si un utilisateur appartient à plusieurs groupes LDAP qui correspondent à des mappings différents pour le même tenant, Avalon sélectionne automatiquement le rôle le plus permissif.
Le scoring des permissions est calculé dynamiquement :
- Un rôle avec All permissions activé obtient le score maximum.
- Sinon, chaque permission activée contribue au score : Read and write vaut plus que Read-only, qui vaut plus qu'une permission désactivée.
Ce scoring s'adapte automatiquement si les permissions d'un rôle sont modifiées.
Priorité : mapping LDAP vs assignation manuelle¶
| Situation | Comportement |
|---|---|
| L'utilisateur LDAP a des groupes qui matchent des mappings | Les rôles sont déterminés par les mappings LDAP |
| L'utilisateur LDAP a des groupes mais aucun mapping ne correspond | Fallback sur l'assignation manuelle (tenant/rôle défini dans la fiche utilisateur) |
| L'utilisateur LDAP n'a pas de groupes en cache | Fallback sur l'assignation manuelle |
| L'utilisateur est de type Local (non LDAP) | Toujours l'assignation manuelle |
Exemple¶
Un administrateur configure les mappings suivants :
| Tenant | Groupes LDAP | Rôle |
|---|---|---|
| Production | CN=IT-Admins,OU=Groups,DC=example,DC=com |
admin |
| Production | CN=IT-Ops,OU=Groups,DC=example,DC=com |
operateur_reseau |
| Recette | CN=IT-Ops,OU=Groups,DC=example,DC=com |
admin |
Un utilisateur membre du groupe IT-Ops obtiendra :
- Le rôle operateur_reseau sur le tenant Production
- Le rôle admin sur le tenant Recette
Un utilisateur membre des groupes IT-Admins ET IT-Ops obtiendra :
- Le rôle admin sur le tenant Production (le plus permissif entre
adminetoperateur_reseau) - Le rôle admin sur le tenant Recette