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 create_obj(self,dn,type,attr=None): ''' 新建使用者or 部門,User需要設定密碼,啟用賬戶 :param dn: dn = "ou=人事部3,ou=羅輯實驗室,dc=adtest,dc=intra" # 建立的OU的完整路徑 dn = "cn=張三,ou=人事部3,ou=羅輯實驗室,dc=adtest,dc=intra" # 建立的User的完整路徑 :param type:選項:ou or user :param attr = {#User 屬性表,需要設定什麼屬性,增加對應的鍵值對 "SamAccountName": "zhangsan", # 賬號 "EmployeeID":"1", # 員工編號 "Sn": "張", # 姓 "name": "張三", "telephoneNumber": "12345678933", "mobile": "12345678933", "UserPrincipalName":"[email protected]", "Mail":"[email protected]", "Displayname": "張三", "Manager":"CN=李四,OU=人事部,DC=adtest,DC=com",#需要使用使用者的DN路徑 } attr = {#OU屬性表 'name':'人事部', 'managedBy':"CN=張三,OU=IT組,OU=羅輯實驗室,DC=adtest,DC=intra", #部分負責人 } :return:True and success 是建立成功了 (True, {'result': 0, 'description': 'success', 'dn': '', 'message': '', 'referrals': None, 'type': 'addResponse'}) ''' object_class = {'user':['user', 'posixGroup', 'top'], 'ou':['organizationalUnit', 'posixGroup', 'top'], } res = self.conn.add(dn=dn,object_class=object_class[type],attributes=attr) if type == "user": # 如果是使用者時,我們需要給賬戶設定密碼,並把賬戶啟用 self.conn.extend.microsoft.modify_password(dn, "XXXXXXXXX") #設定使用者密碼 self.conn.modify(dn, {'userAccountControl': [('MODIFY_REPLACE',512)]}) #啟用使用者 return res, self.conn.result
以上是Ldap3庫對AD的User和OU新增的方法。具體的文件,可以參考官網文件: Ldap3 文件
以上的方法,大家主要檢視【LDAP Operations】章節的內容。
歡迎大家訪問我的部落格: bigyong.cn
歡迎大家關注我的公眾號:
BigYoung版權所有,轉載請郵件([email protected])獲取授權,並註明轉自:http://www.bigyoung.cn/1043.html