溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中Ldap3庫(kù)的使用方法

發(fā)布時(shí)間:2021-09-14 12:57:49 來(lái)源:億速云 閱讀:298 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容介紹了“python中Ldap3庫(kù)的使用方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

今天給大家講解如何使用Ldap3 庫(kù)刪除AD中用戶和部門(OU),以及封裝一個(gè)賬戶密碼認(rèn)證方法

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import json
from ldap3 import ALL_ATTRIBUTES
# 注意:ldap3庫(kù)如果要使用tls(安全連接),需要ad服務(wù)先安裝并配置好證書服務(wù),
# 才能通過(guò)tls連接,否則連接測(cè)試時(shí)會(huì)報(bào)LDAPSocketOpenError('unable to open socket'

# 如果是進(jìn)行賬號(hào)密碼修改及賬戶激活時(shí),會(huì)報(bào)錯(cuò):“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( #配置服務(wù)器連接參數(shù)            server=LDAP_SERVER_POOL,            auto_bind=True,            authentication=NTLM,  #連接Windows AD需要配置此項(xiàng)            read_only=False,  #禁止修改數(shù)據(jù):True            user=SERVER_USER,#管理員賬戶            password=SERVER_PASSWORD,        )        self.leaved_base_dn = 'ou=Leaved,dc=adtest,dc=intra'#離職賬戶所在OU        self.active_base_dn = 'ou=測(cè)試部門,dc=adtest,dc=intra'#正式員工賬戶所在OU        self.search_filter = '(objectclass=user)'#只獲取【用戶】對(duì)象        self.ou_search_filter = '(objectclass=organizationalUnit)'#只獲取【OU】對(duì)象    def check_credentials(username, password):        """        用戶認(rèn)證接口 #        """        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庫(kù)的使用方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI