L'opération étendue Testmodify

Description

Cette opération permet de tester si un utilisateur a le droit d'écriture sur un attribut d'une entrée, sans effectuer l'opération d'écriture réellement. Cela peut s'avérer très utilise dans une interface Web pour proposer dynamiquement des champs de formulaires inscriptibles à l'utilisateur (c'est ce qui est fait dans le module InterLDAP WUI).

Si l'opération s'est bien déroulée, un code retour 0 est renvoyé. Cela ne signifie pas pour autant que le droit d'écriture est validé : il faut analyser le booléen fourni en réponse de l'opération étendue pour le savoir : s'il est à 0, le droit d'écriture est accordé, sinon il ne l'est pas.

L'OID définissant cette opération étendue est 1.3.6.1.4.1.10943.10.1.6.1.

Trois paramètres sont obligatoire :

  • Le DN de l'utilisateur (authorDN)
  • Le DN de l'entrée cible (targetDN)
  • L'attribut concerné
Cette opération ne peut pas être faite avec un compte anonyme, il faut être au minimum utilisateur de l'annuaire (ce qui est totalement indépendant des DN passés en argument).

Le client ldaptestmodify

Le client compatible avec cette opération étendue s'appelle ldaptestmodify (situé dans le sous-répertoire bin/). Il s'utilise ainsi :

$ ldaptestmodify -H ldap://IPMANDATAIRE:PORTMANDATAIRE -D USERDN -w USERPW -a AUTHORDN -t TARGETDN ATTRIBUTE

Par exemple :

$ ldaptestmodify -H ldap://localhost:1389 -D "uid=1,ou=people,dc=interldap,dc=org" -w aa1 -a "uid=2,ou=people,dc=interldap,dc=org" -t "uid=3,ou=people,dc=interldap,dc=org" cn

Si le droit d'écriture est accordé, le message suivant s'affiche :

Result: Ok - write allowed
Result: Success (0)

Sinon :

Result: Not Ok - write not allowed
Result: Success (0)

La délégation d'authentification

Depuis la version 2.3.24, il est possible de déclencher des opérations "en tant que" de la façon suivante :

$ ldapsearch -H ldap://IPMANDATAIRE:PORTMANDATAIRE -D USERDN -w USERPW -U AUTHORDN -b <BASEDN> "FILTER" ATTRS

C'est de cette façon que le code de la WUI fonctionne.