J'obtiens une OBJECT_CLASS_VIOLATION lorsque j'essaie d'ajouter un attribut. La modification d'un attribut existant fonctionne très bien (même ce même attribut, si je l'ajoute d'abord en AD, puis le modifie).python-ldap add_s ne parvient pas à ajouter un attribut pour l'utilisateur AD avec OBJECT_CLASS_VIOLATION
D'abord, je Kinit en tant qu'administrateur de domaine, puis:
import ldap, ldap.sasl
l = ldap.initialize('ldap://TEST.DOM.DE')
auth_tokens = ldap.sasl.gssapi('')
l.sasl_interactive_bind_s('', auth_tokens)
l.add_s('CN=dmulder,CN=Users,DC=test,DC=dom,DC=de', [('gecos', ['something'])])
qui renvoie cette erreur:
ldap.OBJECT_CLASS_VIOLATION: {'info': '0000207B: UpdErr: DSID-0305124B, problem 6002 (OBJ_CLASS_VIOLATION), data 0\n', 'desc': 'Object class violation'}
Cette commande réussit bien, si je crée l'attribut à l'avance dans les ADUC:
l.modify_s('CN=dmulder,CN=Users,DC=test,DC=dom,DC=de', [(1, 'gecos', None), (0, 'gecos', ['something'])])
Et la commande add fonctionne avec ldapmodify:
> ldapmodify -x -h TEST.DOM.DE -D [email protected]
dn:CN=dmulder,CN=Users,DC=test,DC=dom,DC=de
changetype: modify
add: gecos
gecos: something
modifying entry "CN=dmulder,CN=Users,DC=test,DC=dom,DC=de"
Une idée de ce que je fais mal ici?
Le schéma autorise les attributs rfc2307. Evidemment, puisque ldapmodify * est * capable d'effectuer un ajout, seul le module python ne fait pas la même chose – David
mon exception est'ldap.OBJECT_CLASS_VIOLATION: {'info': 'aucun attribut objectClass', 'desc': 'Classe d'objet violation '} ', et peut corriger en ajoutant objectClass.i suis sur ubuntu16, tous les paquets sont installés par apt. – obgnaw
@obgnaw pourriez-vous expliquer ce que vous voulez dire? Y compris l'attribut objectClass dans l'opération add_s() ne fait rien pour moi. Si vous avez trouvé une solution, affichez les détails dans une réponse. – David