您好,登錄后才能下訂單哦!
本篇內容介紹了“python中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 check_credentials(username, password):
""" 用戶認證接口 #
"""
ldap_user = '\\{}@adtest.intra'.format(username)
server = Server('adtest.intra', use_ssl=True)
connection = Connection(server, user=ldap_user, password=password, authentication=NTLM) try:
logger.info("username:%s ;res: %s" %(username,connection.bind())) return connection.bind() except:
logger.warning("username:%s ;res: %s" % (username, connection.bind())) return False
finally:
connection.closed
def del_obj(self,DN):
''' 刪除用戶 or 部門
:param DN:
:return:True
'''
res = self.conn.delete(dn=DN) return res
“python中Ldap3庫的使用方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。