当前位置:   article > 正文

使用python ldap3对接微软AD

python ldap3


网上很多文档都是割裂的,此次使用python操作微软ad踩了不少坑,借助ChatGPT也没有用,记录一下正确信息。
环境信息: Windows Server 2019
Active Directory Domain Services
DNS Server
以上环境需要提前安装完成,具体信息可以参考对应服务部署教程

部署Active Direct Certificate Services

为了避免重复造轮子,这一部分内容可以直接参考以下链接
http://cn-sec.com/archives/482172.html
部署完成后,使用连接中的ldp.exe尝试使用ssl去链接ad,如果成功则可以继续往下,不成功就先排查证书服务的问题。

客户端的配置方式

鉴于目前我的程序是跑在Windows 11的环境里面,这部分先讲Windows的部分,后期放到Linux里面跑服务的时候,再更新对应的方式。

Windows 证书配置

  1. win+R在运行的窗口输入mmc并回车打开一个console根控制台
  2. 打开如图所示添加管理单元
    3.在弹出的窗口选择证书
    在这里插入图片描述
    4.选择管理哪个账号证书的窗口,需要选择服务账户,如图
    在这里插入图片描述
    5.在服务账户选择窗口请选择AD账户在这里插入图片描述
    完成之后在控制台会出现一个域控制器的证书管理列表,选择在搭建ADCS时的证书,如图所示

在这里插入图片描述
右击导出证书,导出证书时一定要分两次,一次导出的时候需要带私钥,第二次导出的时候不需要带私钥。
他们分别为带私钥的pfx格式和不带私钥的cer格式
6.把两个证书复制到已经加入到域的Windows客户端中
7.cer文件安装到本地计算机中,存储位置选择本地计算机,证书存储在个人区域,如图
在这里插入图片描述

8.pfx文件也需要安装到本地计算机中,存储区域选择为受信任的根证书颁发机构
9.两个证书安装成功后,点击cer证书应该是不会报错的,如下在这里插入图片描述

如果证书不是这个状态,则证书有问题,就不能使用ldaps方式操作AD会出现证书相关的错误。

python使用ldap3操作AD示例

import ssl
from ldap3 import Server, Connection,SASL, ALL,NTLM,MODIFY_REPLACE,HASHED_SALTED_SHA,HASHED_SALTED_SHA256,Tls
from ldap3.utils.hashed import hashed

SERVER = xxx.xxx.cn
USER = 'xxx.xxx.cn\\user'
PASSWORD = 'password'
BASE_DC = 'dc=xxx.xxx.cn,dc=cn'
def connection():
    # ldaps connection settings(This link methmod allows for  password modification) 
    server = Server(SERVER,port=636,use_ssl=True,get_info=ALL,tls=Tls(validate=ssl.CERT_REQUIRED, version=ssl.PROTOCOL_TLSv1,ciphers=ALL))
    # ldap connection settings
    # server = Server(SERVER,get_info=ALL)
    conn = Connection(server,user=USER,authentication=NTLM, password=PASSWORD)
    conn.bind()
    # Check if ldpas or ldap is connected to the server
    print(conn.server)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  1. 代码中不需要使用ldap3官方教程的start_tls()方法,在此处踩很久的坑,证书配置正确就ok切记。
  2. 全局变量的值需要替换成自己的具体信息,其中server部分其实就是证书Issued by的名字,上述代码成功运行后会打印出以下信息
ldaps://lsym-ad-dc01.lsym.cn:636 - ssl
  • 1

则正常连接到AD了,可以进行修改密码等操作

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/410281
推荐阅读
相关标签
  

闽ICP备14008679号