python-ldap修改AD域用戶密碼(CA+SSL)


代碼連接:https://github.com/raykuan/ldap-notes

使用python的ldap模塊連接AD服務器,有兩種方式:

非加密:con = ldap.initialize('ldap://myhost.com:389)

加密(SSL):con = ldap.initialize('ldaps://myhost.com:636)

使用非加密的ldap時,只能對AD域賬號信息查詢。如果要對AD域用戶信息進行修改和新增操作,必須使用(SSL)加密方式連接AD,需滿足如下幾個條件:

① AD上需要安裝證書服務

② 連接AD的主機上使用http://myhost.com/certsrv/打開瀏覽器申請證書

③ 如果連接AD的主機是Linux,需要安裝openssl包,制作CA證書

# 使用openssl命令把申請到的AD主機上的CA證書格式轉換為.pem

openssl x509 -in master.cer -inform der -outform pem -out master.pem

# 使用openssl命令指定CA證書連接到AD主機

openssl s_client -connect myhost:636 -CAfile /path/to/master.pem

# 查看CN subject信息,python中ldap初始化的時間需要保證和CN的域名一致

openssl x509 -noout -text -in imsva_cert.pem | grep Subject

Subject: C=en, ST=xx, O=yy, OU=zz, CN=test.com

con = ldap.initialize('ldaps://myhost.com')

可以在/etc/hosts文件下增加域名解析記錄

④ 在Python的ldap初始化連接AD前,設置CA證書文件加載

import ldap
# point to the cert
cert_file='/path/to/master.pem'
ldap.set_option(ldap.OPT_X_TLS_CACERTFILE, cert_file)
con = ldap.initialize('ldaps://myhost.com')
dn = 'CN=me,DC=myhost,DC=com'
pw = 'password'
con.simple_bind_s(dn, pw)

 注意:此處dn是有管理員權限的AD用戶,通過綁定此用戶才能使用ldaps對域用戶的信息進行增刪改,查詢的時間一般使用非SSL連接,普通用戶即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM