python 访问LDAP服务器「建议收藏」
python,访问,LDAP,服务器,建议,收藏
2025-03-25 08:59:28 时间
大家好,又见面了,我是你们的朋友全栈君。
最近在做confluence数据迁移和升级。由于公司是使用LDAP认证登录的,在安装升级之后发现confluence自动从LDAP把全部用户名自动全部导入到了用户表(cwd_users)。可能是为了细化权限控制。但这样就问题就来了,全部用户名又没有按部门进行区分,在细分权限时也不好控制。
没办法,只好写个简单的python脚本从LDAP 服务器重新取一次,把用户按部门分类,好在后面做细分权限时控制。
需要用到ldap模块,下载地址: http://www.python-ldap.org/
程序如下:
# -*- coding: GBK -*-
'''
Created on 2012-12-7
@author: herong
'''
import ldap
dn = "cn=ldapname,OU=APPuser,dc=xxxx,dc=com,dc=cn"
pw = "ldappw"
department = {"-1":"中心",
"000060100":"开发一部",
"000060200":"开发二部",
"000060300":"开发三部",
"000060400":"开发四部",}
conn = ldap.initialize('ldap://192.168.1.111')
print conn
conn.simple_bind(dn, pw)
base_dn = 'OU=000000001,OU=000000000,dc=xxxx,dc=com,dc=cn'
filter = "(objectClass=user)"
attrs = ['cn']
for depa in department:
base_dn_tmp = base_dn
if depa != "-1":
base_dn_tmp = "OU="+depa+","+base_dn_tmp
print base_dn_tmp
rs = conn.search_s(base_dn_tmp, ldap.SCOPE_ONELEVEL, filter, attrs)
print "部门:%s,人数:%s"%(department[depa],len(rs))
for user in rs:
print user[1]['cn'][0]
print "#"*40
conn.unbind()
if __name__ == '__main__':
pass
说明:
conn.search_s(basedn,scope, filter,attrs) 函数参数说明:
basedn:表示从目录信息树中哪个目录开始查找
scope:表示查找深度
filter:表示必须满足的条目
attrs:表示要返回的属性,* 表示所有属性都返回
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146451.html原文链接:https://javaforall.cn
相关文章
- Python实战 | 送亲戚,送长辈,“ 月饼 ”可视化大屏来帮忙。
- 我用 Python 画了一盘粽子送给大家
- 【python实战】不让我复制?看我自制个带文字识别的截屏工具
- Python概述
- python中astype用法_浅谈python 中的 type(), dtype(), astype()的区别[通俗易懂]
- python button使用方法_python gui界面设计
- python正则循环提取、替换等操作
- Python-基础04-数据类型
- Python基础12-内置函数
- Python 基于 selenium 实现不同商城的商品价格差异分析系统
- dataframe loc iloc_python的isnull函数
- 8000 字 Python 数据可视化实操指南
- Python调用Prometheus监控数据并计算
- Win10配置Airsim环境并设置Python通信
- 第一章:起步(python环境搭建)
- Python-方法反射
- jupyter和python的关系_jupyter notebook和python
- Python计算中位数_用频率直方图求中位数
- .app 域名发布了,我们可以使用 Python 做点什么?
- python中字符转换