python访问AD域ldap安全连接
最近整python操作ad域,找到了python中有相应的第三方库ldap,分为两种模式:安全连接636端口和非安全连接389端口,非安全连接可以执行添加操作,但是添加的用户密码为空,如果需要修改密码需要在安全连接下,安全连接则需要导入证书。
硬件环境:Windows Server2019+python
1、AD域安装证书服务
这里需要安装上最基本的证书颁发机构,证书颁发机构Web注册也可以勾选,勾选上可以在客户端使用web注册申请证书的方式即可完成证书申请,不勾选的话需要在域控上添加证书即可。
编辑证书服务,创建企业CA
中途设置根据自己的需要进行修改
进入证书颁发机构可以查看已办发的证书。
3.域控上配置证书(注,本步骤和第四步可以达到同样的目的,即使第三步不做第四步也会在域控上添加上证书)
Win+R输入mmc,添加/删除管理单元,选择 证书,安装到本地计算机,确定即可
此时会弹出证书界面,在个人证书有一个域控计算机名称的证书,此时可以尝试编写代码进行安全连接,如果不行,参考微软连接进行本地证书下载。
web访问http://<server IP/name>/certsrv 需要使用IE浏览器,
如果弹出为了完成证书注册,必须奖该CA的网站配置为使用HTTPS身份验证,或者进入之后CSP选项一直显示正在加载或者显示为空,需要设置IE的模式
IE设置->Internet选项,找到连接到AD域的相应区域,选择自定义级别
将几项设置为启用,此时window会报有风险,可以在证书申请完毕之后 恢复设置。
如果出现一下提示信息,可以继续提交申请:
填写信息如下:
提交申请之后即可安装证书。
证书模板选择,可以根据自己的需要进行选择,不同模板可以在AD域服务器的证书颁发机构--证书模板,查看不同的区别。
注
目前企业CA可以完成安全连接,独立CA一致提示远程连接被关闭,暂时还没有找到解决方案,如有大神可以赐教,万分感谢。
本文章是在虚拟机上搭建了一个AD服务器,只是个人的看法和见解,如有不足之处,请多多包涵,也希望有大神能够指导一些原理或者不同的解决方案。
附:测试源代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from ldap3 import Server, ALL, NTLM, Connection def adConnection(AD_Server, admin_user, admin_passwd): try: server = Server(host=AD_Server, get_info=ALL) # 默认端口389 conn = Connection(server, user=admin_user, password=admin_passwd, auto_bind=True, authentication=NTLM) if conn.bind(): print(AD_Server, "---AD域登陆成功") print(conn) return conn else: print(AD_Server, "---AD域登陆失败") print(conn) print(conn.result) except Exception as e: print("连接失败,连接告警") print(e) def adConnection_ssl(AD_Server, AD_admin_user, AD_admin_passwd): try: server = Server(host=AD_Server, port=636, use_ssl=True, get_info=ALL) # 默认端口389 conn = Connection(server, user=AD_admin_user, password=AD_admin_passwd, auto_bind=True, authentication=NTLM) if conn.bind(): print(AD_Server, "---AD域登陆成功") print(conn) return conn else: print(AD_Server, "---AD域登陆成功") print(conn.result) except Exception as e: print("连接失败,连接告警") print(e) if __name__ == '__main__': conn = adConnection_ssl(AD_Server, AD_admin_user, AD_admin_passwd) print(conn)
运行结果:
参考连接:
https://blog.csdn.net/qq_33997198/article/details/105297121
https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/windows-security/add-san-to-secure-ldap-certificate
https://www.cnblogs.com/haiya2019/p/10627730.html
https://ldap3.readthedocs.io/en/latest/