python 访问LDAP服务器「建议收藏」

python 访问LDAP服务器「建议收藏」最近在做confluence数据迁移和升级。由于公司是使用LDAP认证登录的,在安装升级之后发现confluence自动从LDAP把全部用户名自动全部导入到了用户表(cwd_users)。可能是为了细化权限控制。但这样就问题就来了,全部用户名又没有按部门进行区分,在细分权限时也不好控制。没办法,只好写个简单的python脚本从LDAP服务器重新取一次,把用户按部门分类,好在后面做细分权限时控

大家好,又见面了,我是你们的朋友全栈君。

最近在做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:表示要返回的属性,* 表示所有属性都返回

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146451.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?

    fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY / INDEX有什么区别?MySQL文档提供了这种格式来创建FULLTEXT索引:|{FULLTEXT|SPATIAL}[INDEX|KEY][index_name](index_col_name,…)[index_option]要使用MySQL实现全文搜索,您可以通过编写来创建索引:CREATETABLEposts(idint(4)NOTNULLAUTO_INCREMENT,titlevarcha…

    2022年10月29日
  • pytorch MSELoss参数详解「建议收藏」

    pytorch MSELoss参数详解「建议收藏」pytorchMSELoss参数详解importtorchimportnumpyasnploss_fn=torch.nn.MSELoss(reduce=False,size_average=False)a=np.array([[1,2],[3,8]])b=np.array([[5,4],[6,2]])input=torch.autograd.Variable(to…

  • js中ajax写法_ajax原生写法

    js中ajax写法_ajax原生写法//JavaScriptDocumentvarXHR;//定义一个全局对象functioncreateXHR(){//首先我们得创建一个XMLHttpRequest对象if(window.ActiveXObject){//IE的低版本系类XHR=newActiveXObject(‘Microsoft.XMLHTTP’);//之前IE垄断了整个浏览器市场,没遵循W3C标准…

  • python利用cookie登录(python爬虫教程pdf)

    http://blog.csdn.net/pipisorry/article/details/47948065实战1:使用cookie登录哈工大ACM网站获取网站登录地址http://acm.hit.edu.cn/hoj/system/login查看要传送的post数据user和passwordCode:#!/usr/bin/envpython#-*-

  • 全面认识基站_移动基站设备认识

    全面认识基站_移动基站设备认识文章目录一、全面认识基站1.1基站的定义1.2基站的分类1.3基站的组成一、全面认识基站1.1基站的定义基站(BaseStation),即公用移动通信基站,实现了有线通信网络与无线终端之间的无线信号传输,是无线终端(如手机)接入互联网的接口设备。1.2基站的分类基站按照站型大小和功率可以大致分为:宏基站、微基站、皮基站、飞基站。宏基站主要用于室外覆盖,体型大、覆盖面积广。微基站通常指在楼宇中或人口密集区安装的小型基站。这种基站的体积小、覆盖面积小,承载的用户量比较低。皮基

    2022年10月26日
  • butterknife Annotation processors must be explicitly declared now…

    butterknife Annotation processors must be explicitly declared now…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号