Lorsqu'on installe un annuaire LDAP, on crée un compte (souvent "cn=Directory Manager" par défaut) qui a tous les privilèges, qui n'est pas soumis aux ACI, bref, un superAdmin avec tous les privilèges.
Il vaut donc mieux éviter d'utiliser ce compte pour des opérations. On peut toujours utiliser des comptes "utilisateurs", mais dans ce cas, le DN du compte change selon le baseDN.
Si on veut industrialiser le monitoring de l'annuaire, par exemple, il est intéressant d'avoir toujours le même compte, quel que soit l'instance et donc le baseDN.
C'est ici qu'interviennent les Root DNs, qui sont stockés dans la configuration (le cn=config).
- Avantage : le DN sera le même sur tous les annuaires
- Inconvénient : le cn=config n'étant pas répliqué, il faut répéter la création sur chaque instance
OpenDJ et Ping Directory sont des annuaires "cousins", bâtis sur les sources de OpenDS après le rachat de Sun Microsystems par Oracle. Les deux produits ont divergé au fil du temps, mais les principes restent similaires. Nous allons voir les commandes à lancer sur les 2 produits.
OpenDJ
Avec OpenDJ, il faut ajouter une entrée dans le cn=config, via un fichier LDIF et un ldapmodify :
cat /tmp/monitor.ldif dn: cn=LDAP Monitoring,cn=Root DNs,cn=config changetype: add objectClass: ds-cfg-root-dn-user objectClass: top objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person sn: Monitoring cn: LDAP Monitoring givenName: LDAP ds-privilege-name: config-read ds-privilege-name: metrics-read ds-privilege-name: unindexed-search ds-cfg-alternate-bind-dn: cn=ldapMonitoring userPassword: Ld@pM0n|T0R1n6
On intègre ensuite les données :
/opt/opendj/bin/ldapmodify -D "cn=Directory Manager" -w secret -f /tmp/monitor.ldif
A ce niveau on peut se connecter avec cn=ldapMonitoring, sans devoir passer le DN complet.
On peut par exemple récupérer les informations du cn=monitor :
ldapsearch -x -h localhost -p 1389 -D cn=ldapMonitoring -w Ld@pM0n|T0R1n6 -b cn=monitor (objectclass=ds-monitor-entry)
Ping Directory
Ping Directory a nettement enrichi l'utilitaire dsconfig, en ajoutant des dizaines d'option par rapport à ses prédécesseurs.
La création d'un compte de type Root DN passe maintenant par l'utilitaire dsconfig, avec l'option create-root-dn-user.
/opt/ping/bin/dsconfig create-root-dn-user --bindDN "cn=Directory Manager" --bindPassword secret --user-name ldapMonitoring \ --set alternate-bind-dn:cn=ldapMonitoring --set first-name:LDAP --set inherit-default-root-privileges:false --set last-name:Monitoring \ --set 'password:Ld@pM0n|T0R1n6' --set privilege:config-read --set privilege:metrics-read --set privilege:unindexed-search --no-prompt
Par rapport à OpenDJ, sur lequel tous les utilisateurs authentifiés peuvent accéder aux données de cn=monitor, Ping Directory ne donne pas d'accès par défaut. Il faut donc ajouter une global ACI sur cette entrée :
/opt/ping/bin/dsconfig set-access-control-handler-prop --bindPassword secret \ --add global-aci:'(target="ldap:///cn=monitor")(targetattr="*")(version 3.0; acl "Allow access to the monitor tree by ldapMonitoring"; allow(all) userdn="ldap:///cn=ldapMonitoring,cn=Root DNS,cn=config";)' --no-prompt