Aller au contenu

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.

Configuration des mappings LDAP
Interface de configuration des mappings groupes LDAP → rôles Avalon.

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 :

  1. Connexion LDAP réussie : l'utilisateur est authentifié auprès du serveur LDAP.
  2. 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.
  3. Croisement avec les mappings : les groupes de l'utilisateur sont comparés aux mappings configurés.
  4. 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 admin et operateur_reseau)
  • Le rôle admin sur le tenant Recette