标签: python-ldap

如何在python LDAP中组合搜索过滤器?

在访问LDAP数据时,我不断收到Size Limit Exceeded错误.

谷歌提出的一个解决方案要求更严格的搜索过滤器.

如何在python LDAP中组合两个或多个搜索过滤器?使用建议(|(filter1)(filter2))产生错误.

这是查询:

baseDn = "ou=active, ou=employees, ou=people, o=xxxxx.com";
searchScope = ldap.SCOPE_SUBTREE
#retrieve Certain attributes
retrieveAttributes = ["manageruid","manager","cn"]
search_query = raw_input("Enter the query :")
#This searchFilter needs to be more specific
searchFilter = "city=" + "Bangalore"

try :
   ldap_result_id = l.search(baseDn, searchScope, searchFilter,   retrieveAttributes)
   result_set = []
   while 1:
       result_type, result_data = l.result(ldap_result_id, 0)
       if(result_data == []):
           break
       else:
           if result_type == ldap.RES_SEARCH_ENTRY:
               result_set.append(result_data)
       #print result_set
       print len(result_set)   

except ldap.LDAPError, e:
    print …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-ldap

2
推荐指数
1
解决办法
1478
查看次数

ldap3操作:SEARCH似乎失败了(search_filter语法与RFC4515)

编辑:tl; dr - search_filterSEARCH中使用的参数可能不符合RFC4515.

我在Ubuntu 14.04上运行了一个运行1.8.4版本的Django服务器.我正在使用Python 3.4,为此我正在尝试使用ldap3配置LDAP身份验证.

这是分别从1.6.2,12.04和2.7.3升级到上述版本的一部分.一切都正常,所以我认为问题出在我的最后,而不是身份验证服务器.

它的工作方式是我有一个名为authenticate_user.py的文件,它接收通过HTML表单传递的用户名和密码,如下所示.

def authenticateStudent(request):
    username = request.POST.get('username','')
    logger.info("User " + username + " has logged in.")
    password = request.POST.get('password','')
    x = Auth(username, password)
    retVal = x.AuthenticatePy()
    logger.info('retVale is '+str(retVal)) #this returns False
    #more code and more logging
Run Code Online (Sandbox Code Playgroud)

该方法从Auth类(如下所示)实例化一个对象,在其中存储用户名和密码,然后调用该类中的AuthenticatePy()方法.

import logging
import sys
import os.path,subprocess
import ldap3 as ldap
from ldap3 import Connection, Server, SIMPLE, SYNC, SUBTREE, ALL


logger = logging.getLogger('Submission')

class Auth():

    studentName = ""
    studentEmail = "" …
Run Code Online (Sandbox Code Playgroud)

python-ldap python-3.4 django-1.8

2
推荐指数
1
解决办法
6131
查看次数

python-ldap 的构建轮子失败(Windows)*第一次 stackoverflow 询问*

我已经在我的flask包的virtualenv中安装了flask、flask_login和ldap(以使用我公司其他用户的用户名和密码对ldap用户进行身份验证)。

当我运行我的 Flask 应用程序时,我收到“AttributeError:‘模块’对象没有属性‘初始化’”

我尝试过“pip install python-ldap”,但收到一个红色错误(夹在其他白色文本之间),上面写着:“为 python-ldap 构建轮子失败”

我已经彻底检查了这些: How to install python-ldap on a python 2.7 virtualenv on windows without compiling

在 Windows 上的 virtualenv 中安装 python-ldap

https://www.python-ldap.org/docs.html

https://www.linuxjournal.com/article/6988?page=0,1

无济于事。我已经有这个错误好几天了...

(还:

pip 安装 openldap

给出:

正在收集 openldap 无法找到满足 openldap 要求的版本(来自版本:) 找不到 openldap 的匹配发行版

...(在我的 venv 内外)如果该信息有帮助)

我上周遇到了这个错误,在切换工作计算机后,我重新创建了 virtualenv 并成功安装了所有其他软件包和依赖项。

我的requirements.txt 文件在一行 git 内容之后包含以下行:

点击==6.7

烧瓶==0.12.2

Flask-登录==0.4.0

危险==0.24

Jinja2==2.9.6

LDAP==1.0.2

ldap3==2.2.4

标记安全==1.0

pyasn1==0.2.3

武器==0.12.2

有没有人成功地将 python-ldap 安装到 Windows 的 Flask virtualenv 中?如果是这样……怎么办?!

ldap openldap python-2.7 python-ldap flask-login

2
推荐指数
1
解决办法
2万
查看次数

如何使用 Python 将用户添加到 LDAP 组?

我正在使用Python-LDAP与 Active Directory 进行交互,并且正在努力寻找将用户添加到安全组需要编写的代码。

我已经编写了代码来搜索用户和组的 DN,我只是不确定我需要使用什么函数来添加用户。我遇到了这个:

LDAPObject.add_s(dn, modlist)

所以我已经有了 DN,但是当我搜索 modlist 时,我得到了这个:

ldap.modlist.addModlist(entry[, ignore_attr_types=[]])

我不确定我是否需要 modifyModlist 或 addModlist,并且不确定我需要发送给它的值。

我以为我只能将用户和组 DN 发送到一个函数,它会将用户添加到组中……猜猜这不是那么简单吗?

python ldap python-ldap

2
推荐指数
1
解决办法
5034
查看次数

Python-LDAP 库。导入 LDIF

是否可以像这样导入 LDIF

dn: cn=vpupkin,cn=people,ou=company,dc=domain,dc=com
c: UA
cn: vpupkin
employeetype: Indoor Front-end developer
gidnumber: 500
givenname: Vasya
homedirectory: /home/vpupkin
host: example.com
l: Kyiv
loginshell: /bin/bash
mail: vpupkin@domain.com
o: Microsoft
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
objectclass: shadowAccount
objectclass: ldapPublicKey
objectclass: extensibleObject
labeleduri: skype://test
sn: Pupkin
sshpublickey: ssh-rsa key
st: Trudova, 15
telephonenumber: 7777777777
uid: vpupkin
uidnumber: 1000
userpassword: {SHA}fEqNCco3Yq9h5ZUglD3CZJT4lBs=
Run Code Online (Sandbox Code Playgroud)

使用 python-ldap 库(http://www.python-ldap.org/)?

是的,我可以以这种方式向 LDAP 添加新记录http://www.grotan.com/ldap/python-ldap-samples.html#add但我不确定这样的文本 ldif 文件。

附注。完整答案在这里http://pastebin.com/eQU7xBfj

python openldap python-ldap

1
推荐指数
1
解决办法
4818
查看次数

使用Python脚本管理远程LDAP服务器

背景:我正在开发一个API来集中用户创建和管理多个资源(例如Google Apps,Dropbox等).在Linux VM上,我开发了一个API和Web界面,允许我(和我的共同管理员)对这些服务的用户帐户进行身份验证和管理.我需要集成的下一件事是我们的Active Directory,它托管在远程Windows Server 2008上.

我一直在尝试使用python-ldap来连接和检索/修改信息,但是遇到了DIR_ERROR操作错误(当试图查询用户时)和NAMING_VIOLATION错误(尝试添加用户时)的问题.

*基于http://www.grotan.com/ldap/python-ldap-samples.html,stackoverflow问题和python-ldap文档的代码我相信的绑定代码:

import ldap
try:
    l = ldap.open("serverip")
    l.protocol_version = ldap.VERSION3  

    username = "myUserName@adtest.local"
    password  = "secret"

    result = l.simple_bind(username, password)
    print result

except ldap.LDAPError, e:
    print e
Run Code Online (Sandbox Code Playgroud)

打印:(97,[],1,[])

查询用户脚本:(根据文章的建议尝试不绑定,但收到"为了执行此操作,必须在连接上完成成功绑定.")

import ldap

try:
    l = ldap.open("serverIp", port=389)
    l.protocol_version = ldap.VERSION3  
    username = "myUserName@adtest.local"
    password  = "secret"

    result = l.simple_bind(username, password)
    print result
except ldap.LDAPError, e:
    print e
    # handle error however you like

baseDN = "ou=Users, o=adtest.local"
searchScope = ldap.SCOPE_SUBTREE
retrieveAttributes = …
Run Code Online (Sandbox Code Playgroud)

python active-directory python-ldap

1
推荐指数
1
解决办法
3217
查看次数

Python LDAP-将用户移动到其他OU

背景:
我一直在Linux计算机上使用python-ldap模块来管理远程Windows Server 2008上的用户帐户。除了更改用户的“ ou”外,我已经能够搜索,创建和修改用户。 。

我曾尝试使用'modify_s'和'modrdn_s',但是由于modrdn仅允许您更改dn的第一部分,因此我没有运气来修改'ou'或将用户移至新的'ou'。

临时地,我正在创建一个新用户,并从旧用户复制所有能够复制的属性,然后删除旧用户。但这不允许我保留用户创建日期和其他不可编辑的信息。

我已经在互联网上进行了彻底的搜索,找到了一些解决方案,但是:
在其他操作系统上:如何使用Python
和其他编程语言将用户移至其他OUActive Directory LDAP将用户移至其他OU-Ruby
在在Linux上使用python-ldap还是有任何解决方法?
谢谢!

python linux ldap active-directory python-ldap

1
推荐指数
1
解决办法
2406
查看次数

python-ldap 登录到 Active Directory 总是说 Invalid Credentials

>>> import ldap
>>> conn = ldap.initialize('ldap://zion.karunya.edu')
>>> conn.protocol_version = 3
>>> conn.set_option(ldap.OPT_REFERRALS, 0)
>>> conn.simple_bind_s('username', 'password')
Run Code Online (Sandbox Code Playgroud)

最后一行总是引发恼人的InvalidCredentials异常。我确定密码是正确的。我什至尝试了其他用户名、密码组合(我朋友的)。

另请注意,使用PHPadLDAP插件的朋友没有问题。我花了几个小时试图找出这个愚蠢的问题。有任何想法吗?

python ldap active-directory python-ldap

1
推荐指数
1
解决办法
2671
查看次数