Ldap3 库介绍
ldap3是一个纯Python的LDAP管理库。
项目地址:(https://github.com/cannatag/ldap3)
指导文档:[http://ldap3.readthedocs.org](http://ldap3.readthedocs.org/)
使用场景:
一般我们公司会用到账号密码系统,常见的有Windows的AD服务器、Linux系统下的OpenLdap账号系统。
默认状态下,我们都是通过AD或者OpenLDAP管理方式对账号和密码进行维护。但是我们希望通过程序自动化管理账号,对接人事系统,账号能够自动的增减和修改密码。
使用教程:
1. 安装ldap3
前提:
先正确安装python3 和pip3
安装:
pip install ldap3
1
|
pip
install
ldap3
|
检验结果:
python环境下,执行
import ldap3
1
|
import
ldap3
|
能够正常导入,说明安装成功
2. ldap3的基础功能
连接服务器:
from ldap3 import Server, Connection, NTLM def test(): # 加密连接AD服务器 server1 = Server("xxx.xxx.xxx.xxx", port=636, use_ssl=True, get_info=ALL, connect_timeout=5) # 非加密连接AD服务器 server2 = Server("xxx.xxx.xxx.xxx", get_info=ALL, connect_timeout=5) conn = Connection( #配置服务器连接参数 server = server1, # 如果加密连接使用server1,非加密连接使用server2 auto_bind = True, authentication = NTLM, #连接Windows AD需要配置此项,要是连接OpenLDAP不要配置 read_only = False, #对AD只读配置,要修改数据:配置True user = username,# 管理员账户 password = password,# 管理员账户对应的密码 fast_decoder=True, check_names=True, ) return conn.user if __name__ == '__main__': print(test())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
from
ldap3
import
Server
,
Connection
,
NTLM
def
test
(
)
:
# 加密连接AD服务器
server1
=
Server
(
"xxx.xxx.xxx.xxx"
,
port
=
636
,
use_ssl
=
True
,
get_info
=
ALL
,
connect_timeout
=
5
)
# 非加密连接AD服务器
server2
=
Server
(
"xxx.xxx.xxx.xxx"
,
get_info
=
ALL
,
connect_timeout
=
5
)
conn
=
Connection
(
#配置服务器连接参数
server
=
server1
,
# 如果加密连接使用server1,非加密连接使用server2
auto_bind
=
True
,
authentication
=
NTLM
,
#连接Windows AD需要配置此项,要是连接OpenLDAP不要配置
read_only
=
False
,
#对AD只读配置,要修改数据:配置True
user
=
username
,
# 管理员账户
password
=
password
,
# 管理员账户对应的密码
fast_decoder
=
True
,
check_names
=
True
,
)
return
conn
.
user
if
__name__
==
'__main__'
:
print
(
test
(
)
)
|
如果能够这正确输出连接服务器的管理员账户信息,即连接成功