11.8.4. Utiliser LDAP pour vous authentifier auprès des interfaces de gestion

Pour utiliser un serveur de répertoire LDAP comme source d'authentification pour la console de gestion, l'interface CLI ou l'API de gestion, vous devez effectuer les procédures suivantes :
  1. Créer une connexion sortante au serveur LDAP.
  2. Créer un domaine de sécurité activé-LDAP.
  3. Référencer le nouveau domaine de sécurité dans l'interface de gestion.
Créer une connexion sortante au serveur LDAP

La connexion sortante LDAP autorise les attributs suivants :

Tableau 11.4. Attributs d'une connexion sortante LDAP

Attribut Requis Description
url oui
L'adresse URL du serveur de répertoire.
search-dn non
Le nom distinctif (DN) de l'utilisateur autorisé à effectuer des recherches.
search-credentials non
Le mot de passe de l'utilisateur autorisé à effectuer des recherches.
initial-context-factory non
L'usine de contexte initiale à utiliser quand on établit une connexion. Valeur par défaut com.sun.jndi.ldap.LdapCtxFactory.
security-realm non
Domaine de sécurité à référencer pour obtenir un SSLContext configuré pour établir la connexion.

Exemple 11.7. Ajouter une connexion sortante LDAP

Cet exemple ajoute une connexion sortante par le jeu de propriétés suivant :
  • Recherche DN : cn=search,dc=acme,dc=com
  • Recherche indentifiants : myPass
  • URL : ldap://127.0.0.1:389
La première commande ajoute le domaine de sécurité.
/host=master/core-service=management/security-realm=ldap_security_realm:add
La seconde commande ajoute la connexion LDAP.
/host=master/core-service=management/ldap-connection=ldap_connection/:add(search-credential=myPass,url=ldap://127.0.0.1:389,search-dn="cn=search,dc=acme,dc=com")
Créer un domaine de sécurité activé-LDAP

Les interfaces de gestion peuvent s'authentifier sur le serveur LDAP au lieu des domaines de sécurité basés fichiers de propriétés et configurés par défaut. L'authentificateur LDAP fonctionne en établissant tout d'abord une connexion vers le serveur de répertoires distant. Il effectue ensuite une recherche en utilisant le nom d'utilisateur que l'utilisateur a transmis au système d'authentification, afin de trouver le nom distinctif complet (DN) du dossier LDAP. Une nouvelle connexion est alors établie, utilisant le DN de l'utilisateur comme information d'identification et mot de passe fournis par l'utilisateur. Si cette authentification au serveur LDAP réussit, le DN est considéré comme valide.

Le domaine de sécurité LDAP utilise les attributs de configuration suivants :
connection
Le nom de la connexion défini dans outbound-connections à utiliser pour se connecter au répertoire LDAP.
advanced-filter
Le filtre complet utilisé pour rechercher un utilisateur basé sur l'ID d'utilisateur fourni. Le filtre doit contenir une variable suivant le format suivant : {0}. Sera plus tard remplacé par le nom d'utilisateur fourni par l'utilisateur.
base-dn
Le nom distinctif (DN) du contexte pour commencer à chercher l'utilisateur.
recursive
Indique si la recherche doit être récursive dans toute l'arborescence de répertoires LDAP, ou si l'on doit rechercher uniquement le contexte spécifié. La valeur par défaut est false.
user-dn
Attribut de l'utilisateur qui contient le nom distinctif (DN). Utilisé par la suite pour tester l'authentification. Valeur par défaut dn.
username-attribute
Le nom de l'attribut à rechercher pour l'utilisateur. Ce filtre effectue une recherche simple où le nom d'utilisateur entré par l'utilisateur correspond à l'attribut spécifié.
allow-empty-passwords
Cet attribut détermine si un mot de passe vide est accepté. La valeur par défaut pour cet attribut est false.
Soit username-filter ou advanced-filter, devra être spécifié.
L'attribut advanced-filter contient une recherche par filtre dans la syntaxe standard LDP, par exemple :
(&(sAMAccountName={0})(memberOf=cn=admin,cn=users,dc=acme,dc=com))

Exemple 11.8. XML représentant un domaine de sécurité activé-LDAP

Cet exemple utilise les paramètres suivants :
  • connection - ldap_connection
  • base-dn - cn=users,dc=acme,dc=com.
  • username-filter - attribute="sambaAccountName"
<security-realm name="ldap_security_realm">
   <authentication>
      <ldap connection="ldap_connection" base-dn="cn=users,dc=acme,dc=com">
         <username-filter attribute="sambaAccountName" />
      </ldap>
  </authentication>
</security-realm>

Avertissement

Il est important de veiller à ne pas autoriser les mots de passe LDAP. À moins que vous désiriez les avoir dans votre environnement, ils représentent un problème de sécurité sérieux.
EAP 6.1 inclut un correctif pour CVE-2012-5629, qui définit l'option allowEmptyPasswords des modules de connexion LDAP à false si l'option n'est pas déjà configurée. Pour les versions plus anciennes, cette option devra être configurée manuellement.

Exemple 11.9. Ajout d'un domaine de sécurité LDAP

La commande ci-dessous ajoute une authentification LDAP au domaine de sécurité et définit ses attributs pour un master nommé par l'hôte dans le domaine.
/host=master/core-service=management/security-realm=ldap_security_realm/authentication=ldap:add(base-dn="DC=mycompany,DC=org", recursive=true, username-attribute="MyAccountName", connection="ldap_connection")
Appliquer le nouveau domaine de sécurité à l'interface de gestion

Après avoir créé un domaine de sécurité, vous devez le référencer dans la configuration de votre interface de gestion. L'interface de gestion utilisera le domaine de sécurité pour l'authentification HTTP digest.

Exemple 11.10. Ajouter le domaine de sécurité à l'interface HTTP

Une fois que la configuration est en place, et que vous aurez démarré à nouveau le contrôleur hôte, la console de gestion basée-web utilisera LDAP pour authentifier ses utilisateurs.
/host=master/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value=ldap_security_realm)

Exemple 11.11. Ajouter le domaine de sécurité à l'interface native

Utiliser la commande suivante pour appliquer les mêmes paramètres à l'interface native :
/host=master/core-service=management/management-interface=native-interface/:write-attribute(name=security-realm,value=ldap_security_realm)