Ldap3 庫使用方法(二)
前一篇文章我們講解了Ldap3庫的連線AD伺服器的方法: ofollow,noindex">Ldap3庫使用方法(一)
今天給大家講解如何使用Ldap3 庫如何獲取AD中使用者和部門(OU)
#!/usr/bin/env python # -*- coding: utf-8 -*- import json from ldap3 import ALL_ATTRIBUTES # 注意:ldap3庫如果要使用tls(安全連線),需要ad服務先安裝並配置好證書服務,才能通過tls連線,否則連線測試時會報LDAPSocketOpenError('unable to open socket' # 如果是進行賬號密碼修改及賬戶啟用時,會報錯:“WILL_NOT_PERFORM” from ldap3 import Connection, NTLM, Server from ldap3 import MODIFY_REPLACE server1 = Server("adtest.com", port=636, use_ssl=True, get_info=ALL, connect_timeout=5) LDAP_SERVER_POOL = [server1] SERVER_USER = 'adtest\\administrator' SERVER_PASSWORD = "XXXXXXX" class AD(object): ''' AD使用者操作 ''' def __init__(self): '''初始化''' self.conn = Connection( #配置伺服器連線引數 server=LDAP_SERVER_POOL, auto_bind=True, authentication=NTLM, #連線Windows AD需要配置此項 read_only=False, #禁止修改資料:True user=SERVER_USER,#管理員賬戶 password=SERVER_PASSWORD, ) self.leaved_base_dn = 'ou=Leaved,dc=adtest,dc=intra'#離職賬戶所在OU self.active_base_dn = 'ou=測試部門,dc=adtest,dc=intra'#正式員工賬戶所在OU self.search_filter = '(objectclass=user)'#只獲取【使用者】物件 self.ou_search_filter = '(objectclass=organizationalUnit)'#只獲取【OU】物件 def users_get(self): '''獲取所有的使用者''' self.conn.search(search_base=self.active_base_dn,search_filter=self.search_filter,attributes=ALL_ATTRIBUTES) res = self.conn.response_to_json() res = json.loads(res)['entries'] return res def OU_get(self): '''獲取所有的OU''' self.conn.search(search_base=self.active_base_dn,search_filter=self.ou_search_filter,attributes=ALL_ATTRIBUTES) res = self.conn.response_to_json() res = json.loads(res)['entries'] return res
以上是Ldap3庫對AD的User和OU的獲取方法實現。具體的文件,可以參考官網文件: Ldap3 文件 以上的增刪改查方法,大家主要檢視【LDAP Operations】章節的內容。 下一個文章,給大家呈現一個單獨封裝AD使用者密碼認證的方法。
歡迎大家訪問我的部落格: bigyong.cn
歡迎大家關注我的公眾號:
BigYoung版權所有,轉載請郵件([email protected])獲取授權,並註明轉自:http://www.bigyoung.cn/1037.html