首页> DevOps> python-ldap AD用户加群组

[文章]python-ldap AD用户加群组

收藏
0 1639 0

【摘要】

在某蓝鲸项目中,客户新增了AD用户加群组的需求;由于群组名称为中文,而蓝鲸平台执行脚本不支持中文,要实现这一需求只能绕过蓝鲸平台,通过其他方式实现。经查找资料,发现python ldap能实现以上需求。

Python - ldap提供了一个面向对象的API,可以从Python程序访问LDAP目录服务器。通过python-ldap可以很方便进行用户身份验证、密码修改、以及AD对象的增删改查等一系列操作。本文主要介绍通过使用ldap模块实现用户加组功能。

【正文】

一、       根据信息,验证登陆AD服务器

1)      定义初始信息,ADIP,域名,账号和密码

config={'ldaps_host':'ldaps://192.168.81.136:636',

'domain':'etaiping.com',

'account':'administrator',

'password':'Abc12345'}

2)      连接服务器,设置相关信息,如协议版本等

ldap_cons=ldap.initialize(config['ldaps_host'])

ldap_cons.set_option(ldap.OPT_PROTOCOL_VERSION, 3)

ldap_cons.set_option(ldap.OPT_REFERRALS, 0)

3)      绑定操作用户

operate_account=config['account']+'@'+config['domain']

ldap_cons.simple_bind_s(operate_account, config["password"])

4)      为方便调用可简单写成一个连接方法,测试如下:

1、连接AD服务器

二、       根据用户登录名获取DN

1)      初始化查询目录范围以及查询条件

searchscope=ldap.SCOPE_SUBTREE

searchfilter ='sAMAccountName='+sAMAccountName  # sAMAccountName登陆名

baseDN='DC=etaiping,DC=com'

2)      查询用户DN

result=ldap_cons.search(baseDN,searchscope,searchfilter,None)

result_data = ldap_cons.result(result, 0)

duser_dn=result_data[0][0]


2、用户DN值获取

3)      写成可调用函数


3、查询用户DN函数

三、       执行AD用户加组操作

1)       定义加组AD用户列表,以及组

member_list=[str(userdn)]   #列表形式,可多个用户

groupDN=’ CN=加组测试,OU=test,DC=etaiping,DC=com’

2)      确定执行的操作(加群组或推出群组)

add_list=[(ldap.MOD_ADD,'member',member_list)]  #退出群组用ldap.MOD_DELETE

3)      执行加组

res=ldap_cons.modify_s(str(groupdn),add_list)

   

4、执行加组

4)      简单可调用函数


5、加组函数

四、       验证

1)      登陆域控服务器查询 ,加群组成功


图6、验证

2)      通过以上实验可以展望,通过使用ldap模块可以很方便地实现查询信息,对用户或者OU进行批量增、删、改等操作。

DevOps
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}