ldap3 라이브러리를 통해 다른 사람의 암호를 변경하려고 할 때마다 다음 오류가 발생합니다.
{'type': 'modifyResponse', 'result': 53, 'message': '0000001F: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0\n\x00', 'referrals': None, 'description': 'unwillingToPerform', 'dn': ''}
이 오류는 일반적으로 두 가지 조건으로 인해 발생합니다. 사용자가 암호화되지 않은 연결을 통해 암호를 수정하려고하거나 암호가 잘못된 인코딩으로 전송되고 있습니다. 내 SSL 연결이 괜찮습니다 (적어도 괜찮은 것 같습니다) :
print(connection)
>>> ldaps://DC1.DOMAIN.LOCAL:636 - ssl - user: DOMAIN\admin - not lazy - bound - open - <local: 172.16.10.2:49230 - remote: 172.16.10.254:636> - tls not started - listening - SyncStrategy - internal decoder
LDAP 서버로 보내려는 문자열을 인코딩하려고 시도했지만 .encode ( 'utf-16le')가 트릭을 수행하지 않았습니다. 다른 해결 방법이 있습니까?
Windows Server 2012 R2를 도메인 컨트롤러로 사용하는 테스트 도메인 환경이 있으며 암호를 변경하려는 코드가 아래에 있습니다.
import ssl
from ldap3 import *
tls_configuration = Tls(validate=ssl.CERT_REQUIRED, version=ssl.PROTOCOL_TLSv1_2)
s = Server('DC1.domain.local', get_info=ALL, use_ssl=True, tls=tls_configuration)
password = 'mypasswordhere'
c = Connection(s, user="DOMAIN\\admin", password=password)
c.open()
c.bind()
user = "CN=Dummy Dumass,OU=Automatically Generated,OU=Staff,OU=RU,DC=DOMAIN,DC=LOCAL"
c.modify(user, {
'unicodePwd': [(MODIFY_REPLACE, ['New12345'])]
})
print(c.result)
c.unbind()
ldap3에는 AD 암호를 변경하는 특정 방법이 포함되어 있습니다. 대신 다음 코드를 사용하십시오 c.modify()
.
c.extend.microsoft.modify_password(user, new_password)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다