python 3.7+ldap3 访问AD域

一、环境准备:

系统:windows server 2012 r2标准版,添加Active Directionry域服务,DNS服务器,Active Directionary证书服务(证书颁发机构和证书颁发机构web注册,注意安装后需要配置,如下图),更改用户密码需要建立安全连接(ssl)需要Active Directionary证书服务

python 3.7+ldap3 访问AD域_第1张图片

python版本:3.7,安装ldap3(pip install ldap3)

二、连接服务器

from ldap3 import Server, Connection, ALL
# host为域控服务器ip
server = Server(host, use_ssl=True, get_info=ALL)
# user(如domain\Administrator)和passwod为登录域控服务器的账户密码
conn = Connection(server, 'user', 'password', auto_bind=True)

 三、查找对象

res = conn.search('dc=dctest,dc=com', '(objectclass=user)', attributes=['objectclass'])
print(res) # search是否成功(True,False)
print(conn.result) # 查询失败的原因
print(conn.entries) #查询到的数据

 

 四、添加对象

# 添加一个组织
res = conn.add('OU=domainusers,dc=dctest,dc=com', object_class='OrganizationalUnit')
print(res)
print(conn.result)
# 向组织domainusers中添加一个用户
res = conn.add('CN=domainuser1,OU=domainusers,dc=dctest,dc=com', object_class='user',
      attributes={'displayName':'domainuser1',...})
#attributes支持的字段可以通过server.schema.object_classes['user']获取
print(res)
print(conn.result)

 五、修改用户密码

res=conn.extend.microsoft.modify_password('CN=domainuser1,OU=domainusers,dc=dctest,dc=com','123456@dd', '')

 修改用户密码需要在创建server对象是,use_ssl为True,且需要域服务器安装了Active Directionary证书服务

你可能感兴趣的:(python 3.7+ldap3 访问AD域)