问题标签 [python-ldap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
73571 浏览

python - 在 Python 中使用 LDAP 检测 Active Directory 用户帐户是否被锁定

我正在使用 python 的 ldap 模块验证用户登录。当登录失败时,我得到一个 ldap.INVALID_CREDENTIALS 登录,但这可能是因为密码错误或帐户被锁定。帐户在第三次尝试后被锁定。

我想检测到该帐户已被锁定并将其报告给沮丧的用户,而不是相同的“无效登录”消息。

寻找我发现的解决方案:

  • AD 不使用 userAccountControl LOCKED 标志;
  • 应该使用 lockoutTime 属性

我应该用来查找锁定用户的 LDAP 查询是:

或者对于特定用户:

但这不起作用,查询每次都没有返回结果。

0 投票
1 回答
159 浏览

python-ldap - python-ldap 从服务器 2003 获取数据

当我在 Centos 中测试以下命令时

系统告诉我:</p>

OMG,Help.ps:主机ip为192.168.0.254的系统是Microsoft Server 2003。

0 投票
0 回答
1000 浏览

python - 测试以查看 Python LDAP 连接是否有效

在我们工作的应用程序中,我们有一个用于身份验证的 CAS 后端,然后我们存储我们希望从 LDAP 服务器检索的用户数据。为方便起见,我们有一个自定义backends.py的后端进行身份验证。这个后端扩展了Django-CAS 后端。为了不必每次将 LDAP 连接存储到类变量并查看它是否存在时都重新连接到 LDAP 服务器。如果是这样,那么我们重用那个。

但我们发现,经过一段时间后,LDAP 会认为此连接已失效,并拒绝使用此连接。所以我决定在代码中添加一个 else 语句

那么我的问题是,有没有更好的方法来实现这一点?我知道这是可行的,但这意味着每次我这样做时,我都必须运行两次搜索(或者我想我可以使用从这两种方式返回的数据......)无论如何,我觉得这很骇人听闻,在哪里为了查看连接是否无法正常工作,try如果它没有成功,我会修复它。有没有更好的办法?

0 投票
2 回答
4028 浏览

python - ldapsearch 工作,但 python-ldap 没有

以下工作并返回所有用户的列表

我正在尝试在 Python 中做同样的事情,我得到了Invalid credentials

任何使这项工作的建议都会很棒。我正在努力学习python-ldap谢谢

编辑

这是我得到的完整错误:

LDAP服务器是 Windows Server 2008 R2 上的 Active Directory

0 投票
2 回答
11999 浏览

python-2.7 - 如何使用 python-ldap 读取活动目录的内容?

我的脚本是这样的:

我在 Windows 上使用 Python 2.7。

有什么方法可以读取或获取活动目录的内容吗?

0 投票
2 回答
2510 浏览

ldap - 如何列出 ldap 组的所有组成员?

我有带 LDAP 的 Plone 3,里面有很多组和用户。我想获取特定组的所有组成员。

这里的成员总是返回[],但实际上,我的组中确实有一些用户。

0 投票
2 回答
17132 浏览

python - python-ldap 和 Microsoft Active Directory:连接和删除用户

python-ldap newb 在这里。我正在尝试使用以下示例代码执行此操作:

我收到各种错误:

使用虚拟机的 IP:

使用 localhost 或 127.0.0.1 :

我查看了以下没有解决方案的 SO 帖子:

Python-ldap 身份验证 Python-ldap microsoft

0 投票
1 回答
9706 浏览

python - 尽管 __debug__ 为 True,但条件 __debug__ 语句未执行

简洁版本

我有一段正在调试的代码,它检查它的值__debug__并在它为 True 时执行一些代码。

问题是“东西”永远不会发生,即使__debug__看起来是真的。

长版/详情

为了检查这一点,我正在__debug__使用以下模式在函数执行时将几个变量的值打印到文件中,最值得注意的是。(我正在使用os.open,因为open已在此模块中定义。)

我最困惑的一段代码如下所示:

输出文件如下所示:

前 3 条语句(第 82-84 行)是我能想到的检查是否__debug__“真实”的所有方式,所有 3 条都暗示那__debug__是真实的。同样,转换__debug__为布尔值然后评估if(第 88 行)也可以按预期工作。第 90 行是一个愚蠢的完整性检查。

__debug__在可能导致这种情况的工作方式中,我有什么遗漏吗?

注意:我在处理模块中的_ldap_function_call函数时遇到的错误时发现了这一点。python-ldap我只在使用 IIS 时收到此错误 - 在 Django 的开发服务器上一切正常。

0 投票
1 回答
11034 浏览

python - 如何在不编译的情况下在 Windows 上的 python 2.7 virtualenv 上安装 python-ldap

我使用 Windows 作为我的主要 python 2.7 开发环境,我想在虚拟环境中安装 python-ldap。

python-ldap包需要编译:(当然我不能在我的环境中编译它。所以我尝试找到二进制文件以便通过easy_install将它们安装在我的虚拟环境中(仅供参考,你可以做easy_install package.exe和包将安装)。我在这里找到了分布式二进制文件:https ://pypi.python.org/pypi/python-ldap/

不幸的是,他们只为 python 2.7 提供 .msi 包!!!为什么人们使用 .msi ?无法通过 easy_install 安装 MSI。我讨厌微星 %$#$^#$^#$

是的,我可以通过执行它来安装 .msi 包,但它将安装在全局 python 包中,而不是我的虚拟环境中!

请问,有人能帮帮我吗?我记得在以前的项目中遇到过这个确切的问题,我不得不在虚拟环境之外开发它——但我现在不能这样做:(

更新:我在系统范围内安装了 python-ldap 并将目录 ldap 和 python_ldap-2.4.10-py2.7.egg-info 从 PYTHON_GLOBAL\Lib\site-packages 复制到 VIRTUALENV\Lib\site-packages 并且似乎正在工作现在。但是我真的不喜欢那个解决方案,所以我不会用那个来回答我的问题。此外,亚历山大关于使用 --system-site-packages 重新创建我的 virtualenv 的评论可能会起作用,但这意味着我需要卸载很多我的全局包包,然后再次安装我的虚拟包等,一般来说它不是干燥的 :(

更新 2:在尝试了 cgohlke 的建议后,我看到 MSI 的内容是我上面提到的两个目录以及文件 dsml.py、ldapurl.py 和 ldif.py。所以我也把它复制到了我的 VIRTUALENV\Lib\site-packages。现在我相信安装没问题:)。但我相信cgohlke 是最好的——只需使用msiexec.exe 将msi 的内容直接提取到您的VIRTUALENV。

更新 3:在一个类似的问题(在 Windows 上的 virtualenv 中安装 python-ldap)我发现了一个非常有趣的链接:http ://www.lfd.uci.edu/~gohlke/pythonlibs/#python-ldap 。在那里,您将能够找到 python-ldap 和许多其他人的 .EXE 安装包!!!所以最后通过下载这些你就可以easy_install在你的 virtualenv 中使用它们了!

0 投票
1 回答
2634 浏览

python-ldap - 如何设置 Active Directory 用户的 lockoutTime 和密码

我想更改 AD 用户的 userAccountControl 和密码。用户已在 AD 中创建。用户是使用 AD 中的 python-ldap 模块创建的,处于“禁用”状态且没有密码。

AD 托管在 win2k8R2 上。

当我使用 pythion-ldap 脚本更改 uac 和密码时,它会抛出以下错误: