最近整python操作ad域,找到了python中有相應的第三方庫ldap,分為兩種模式:安全連接636端口和非安全連接389端口,非安全連接可以執行添加操作,但是添加的用戶密碼為空,如果需要修改密碼需要在安全連接下,安全連接則需要導入證書。
硬件環境:Windows Server2019+python
1、AD域安裝證書服務
這里需要安裝上最基本的證書頒發機構,證書頒發機構Web注冊也可以勾選,勾選上可以在客戶端使用web注冊申請證書的方式即可完成證書申請,不勾選的話需要在域控上添加證書即可。
編輯證書服務,創建企業CA
中途設置根據自己的需要進行修改
進入證書頒發機構可以查看已辦發的證書。
3.域控上配置證書(注,本步驟和第四步可以達到同樣的目的,即使第三步不做第四步也會在域控上添加上證書)
Win+R輸入mmc,添加/刪除管理單元,選擇 證書,安裝到本地計算機,確定即可
此時會彈出證書界面,在個人證書有一個域控計算機名稱的證書,此時可以嘗試編寫代碼進行安全連接,如果不行,參考微軟連接進行本地證書下載。
web訪問http://<server IP/name>/certsrv 需要使用IE瀏覽器,
如果彈出為了完成證書注冊,必須獎該CA的網站配置為使用HTTPS身份驗證,或者進入之后CSP選項一直顯示正在加載或者顯示為空,需要設置IE的模式
IE設置->Internet選項,找到連接到AD域的相應區域,選擇自定義級別
將幾項設置為啟用,此時window會報有風險,可以在證書申請完畢之后 恢復設置。
如果出現一下提示信息,可以繼續提交申請:
填寫信息如下:
提交申請之后即可安裝證書。
證書模板選擇,可以根據自己的需要進行選擇,不同模板可以在AD域服務器的證書頒發機構--證書模板,查看不同的區別。
注
目前企業CA可以完成安全連接,獨立CA一致提示遠程連接被關閉,暫時還沒有找到解決方案,如有大神可以賜教,萬分感謝。
本文章是在虛擬機上搭建了一個AD服務器,只是個人的看法和見解,如有不足之處,請多多包涵,也希望有大神能夠指導一些原理或者不同的解決方案。
附:測試源代碼

from ldap3 import Server, ALL, NTLM, Connection def adConnection(AD_Server, admin_user, admin_passwd): try: server = Server(host=AD_Server, get_info=ALL) # 默認端口389 conn = Connection(server, user=admin_user, password=admin_passwd, auto_bind=True, authentication=NTLM) if conn.bind(): print(AD_Server, "---AD域登陸成功") print(conn) return conn else: print(AD_Server, "---AD域登陸失敗") print(conn) print(conn.result) except Exception as e: print("連接失敗,連接告警") print(e) def adConnection_ssl(AD_Server, AD_admin_user, AD_admin_passwd): try: server = Server(host=AD_Server, port=636, use_ssl=True, get_info=ALL) # 默認端口389 conn = Connection(server, user=AD_admin_user, password=AD_admin_passwd, auto_bind=True, authentication=NTLM) if conn.bind(): print(AD_Server, "---AD域登陸成功") print(conn) return conn else: print(AD_Server, "---AD域登陸成功") print(conn.result) except Exception as e: print("連接失敗,連接告警") print(e) if __name__ == '__main__': conn = adConnection_ssl(AD_Server, AD_admin_user, AD_admin_passwd) print(conn)
運行結果:
參考連接:
https://blog.csdn.net/qq_33997198/article/details/105297121
https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/windows-security/add-san-to-secure-ldap-certificate
https://www.cnblogs.com/haiya2019/p/10627730.html
https://ldap3.readthedocs.io/en/latest/