Création de comptes Administrateurs dans OpenDJ / Ping Directory

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

 

Catégorie