Операция Python и ldap3 ldapmodify с использованием административного контроля (-k) - PullRequest
0 голосов
/ 13 января 2019

Я использую модуль python ldap3 для подключения к серверу IBM Security Directory Server для изменения пароля пользователя. Эта операция хорошо работает, используя:

s = Server('server')
c = Connection(s, user = 'username', password = 'password')
c.modify('user_dn', {'userPassword':[(MODIFY_REPLACE,['new_password'])]})

Однако, если я сейчас попытаюсь изменить некоторые из операционных атрибутов, таких как pwdReset или pwdChangedTime, из-за некоторых действующих политик паролей:

conn.modify('user_dn', {'pwdReset':[MODIFY_REPLACE, [False]]})

Я получаю conn.result

{'result': 65, 'description': 'objectClassViolation', 'dn': '', 
'message': '', 'referrals': None, 'type': 'modifyResponse'}

Эта ошибка objectClassViolation ожидается, когда вы выполняете операцию idsldapmodify в ldap без использования опции -k для административного контроля.

idsldapmodify -D admin_user -w password 
dn: user_dn
changetype: modify
replace: pwdReset
pwdReset: False

Операция 0, изменяющая запись ldap_modify: нарушение класса объекта

idsldapmodify -D username -w password  -k
dn: user_dn
changetype: modify
replace: pwdReset
pwdReset: False

Операция 0, изменяющая запись Успешное изменение.

Есть идеи, как сказать ldap3 использовать какой-то административный контроль -k для операционных атрибутов? Спасибо.

...