# Certificat LDAPs - Server is unwilling to perform

**URL:** <https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671>\
**Category:** Programmation\
**Created:** [Juillet 18, 2019, 10:27 UTC](https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671 "2019-07-18T10:27:39Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![FlorentK](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/53a042/32.png) [@FlorentK](https://www.debian-fr.org/u/FlorentK)\
**Post date:** [Juillet 18, 2019, 10:27 UTC](https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671/1 "2019-07-18T10:27:39Z")

</div>

Bonjour,  
Depuis une page PHP je souhaite modifier un mot de passe utilisateur d’un AD, or j’arrive à changer tous les champs hormis le password.  
J’ai le message d’erreur " **ldap\_modify: Server is unwilling to perform (53)**".

J’ai mon site Web PHP sur une Debian, un AD Windows 2012 sur lequel je veux modifier mon utilisateur et un serveur Windows 2012 en Autorité de Certification (ADCS). Je ne souhaite pas modifier mon organisation déjà en place et je ne peux pas mettre le ADCS sur le serveur AD.

Mon soucis est plutôt au niveau des certificats, puisque tous les certificats générés ne permettent pas de modifier ce mot de passe.

J’ai essayé le CA sur le Debian en tant qu’autorité tiers et intégrer le certificat dans l’AD, mais cela ne fonctionne pas. J’arrive pourtant bien à me connecter en LDAPs sur l’AD (via ldapsearch -x -H ldaps://…), mais je ne peux toujours pas modifier mon password.

Je souhaitais donc utiliser l’autorité de certification à disposition. En revanche, qui doit certifier qui et qui doit avoir quoi ??

Bref, je commence à m’y perdre, car en cherchant sur Internet, je ne trouve que des serveurs AD et ADCS commun, ou alors des serveurs LDAP/PHP commun, et malgré tous mes essais pas d’amélioration.

En PHP, voici ce que j’utilise :

> ```
> $basedn = "ou=Utilisateurs,dc=mon_domaine";
> $ds = ldap_connect("ldaps://xxx") or die("Impossible de se connecter au serveur LDAP $ds");  
> $r=ldap_bind($ds,"mon_admin@mon_domaine","mon_pwd");     
> 
> $info['description'] = "ma_description";
> ldap_add($ldapconn, $dn, $info); => Ca fonctionne
> 
> $info["userPassword"] = "un_pwd";
> ldap_modify($ldapconn, $dn, $info); => Ca fonctionne pas
> 
> $info['unicodepwd'] = "un_pwd";  
> $retourpwd = ldap_mod_replace($ldapconn, $dn, $info); => Ca fonctionne pas non plus
> 
> ```

Du coup, je commence à tourner en rond.

J’oriente donc plutôt mon problème sur le certificat, mais peut être que je fais également fausse route ?

Je suis preneur de toutes vos idées.

Merci  
Florent

---

<div class="post-metadata">

**Author:** ![flavien](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/f475e1/32.png) [@flavien](https://www.debian-fr.org/u/flavien)\
**Post date:** [Juillet 18, 2019, 6:09 UTC](https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671/2 "2019-07-18T18:09:06Z")

</div>

Bonjour Florent,

J’ai fait quelques recherches avec le message d’erreur que tu as, et plusieurs pistes se dessinent :

- pour le changement de mot de passe avec userPassword, le module n’est peut-être pas installé (cf. [https://ldapwiki.com/wiki/Enable%20UserPassword%20in%20Microsoft%20Active%20Directory](https://ldapwiki.com/wiki/Enable%20UserPassword%20in%20Microsoft%20Active%20Directory)).
- avec unicodepwd, le mot de passe que tu soumets n’est pas unicode (cf. [https://www.php.net/manual/fr/function.ldap-mod-replace.php#43081](https://www.php.net/manual/fr/function.ldap-mod-replace.php#43081) : il y a d’ailleurs plusieurs solutions dans les autres commentaires).

Avec unicodepwd, peut-être que la clé du tableau doit être case sensitive et auquel cas écrire plutôt UnicodePwd. De plus, est-ce que l’erreur retournée avec le deuxième test est la même ?

---

<div class="post-metadata">

**Author:** ![FlorentK](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/53a042/32.png) [@FlorentK](https://www.debian-fr.org/u/FlorentK)\
**Post date:** [Juillet 19, 2019, 8:36 UTC](https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671/3 "2019-07-19T08:36:25Z")

</div>

Bonjour Flavien,

Merci pour tes réponses,

Pour la 1ere option, cela concerne une modif dans le schéma AD, et je ne suis pas trop fan de cette option, mais je la garde de côté au cas où.

Pour l’unicodepwd, j’ai essayé avec les différentes case sensitive et j’ai toujours le même message.  
J’ai également essayé avec le code fourni, mais toujours pareil.

J’ai également rajouté pour tous dans l’AD, la possibilité en modif et reset du password, mais pas mieux.

Je vais quand même regarder pour la modif du schéma AD.

Merci et bonne journée.  
Florent

---

<div class="post-metadata">

**Author:** ![FlorentK](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/53a042/32.png) [@FlorentK](https://www.debian-fr.org/u/FlorentK)\
**Post date:** [Août 1, 2019, 3:56 UTC](https://www.debian-fr.org/t/certificat-ldaps-server-is-unwilling-to-perform/79671/4 "2019-08-01T15:56:52Z")

</div>

Alors en fait, j’ai aussi essayé en ligne de commande et j’ai le même message d’erreur:

> #ldapmodify -x -H ldaps://mon\_serveur\_ad -D CN=«&nbsp;mon\_compte\_admin&nbsp;»,OU=mon\_ou -W -f mon\_fichier\_ldif

Avec «&nbsp;_mon\_fichier\_ldif_&nbsp;» :

```
dn: cn=un_user_de_test,OU=mon_ou_de_test
changetype: modify
replace: telephonenumber
telephonenumber: un_nouvau_numero <= OK ça modifie bien le numéro

dn: cn=un_user_de_test,OU=mon_ou_de_test
changetype: modify
replace: unicodepwd
unicodepwd: un_password <= Renvoi l'erreur suivante

```

Pour le mot de passe j’ai l’erreur suivante :

```
ldap_modify: Server is unwilling to perform (53)
    additional info: 0000001F: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0

```

Du coup, je ne comprends pas pourquoi ça passe pas.

Merci de votre aide.  
Florent
