问题标签 [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.
openssl - 使用 .start_tls_s() 时如何强制 Python LDAP 验证/验证 SSL 证书
我一直在尝试在 MacOS X 10.9.5 和 Python 2.7.9 下使用Python-LDAP (版本 2.4.19)
我想在调用后验证我与给定 LDAP 服务器的连接.start_tls_s()
(或者如果无法验证证书,则让方法引发和异常)。(我也想检查 CRL,但那是另一回事)。
这是我的代码:
如评论中所述,我从https://stackoverflow.com/a/7810308/149076和http://python-ldap.cvs.sourceforge.net/viewvc/python-ldap/python-ldap复制了大部分内容/Demo/initialize.py?revision=1.14&view=markup ...尽管我已经尝试了许多变体和序列。
如图所示,我有两个文件代表一个错误的证书,一个应该可以工作(它实际上取自我们的一个系统,该系统配置为运行sssd(系统安全服务守护程序),假定它正在正确检查这一点。
在“坏”副本中,我只是简单地将每个密钥行的第一个字符替换为字母“x”,假设这会损坏 CA 密钥并导致任何尝试验证签名链的代码失败。
但是,Python LDAP 代码似乎忽略了这一点;即使我将其设置为/dev/null
或完全伪造的路径,我的代码仍然运行,仍然绑定到 LDAP 服务器并且仍然完成我的搜索请求。
所以问题是,我如何让它按预期“失败”(或者,更广泛地说,我如何防止我的代码容易受到 MITM (Mallory) 攻击?
如果在这个讨论中有任何后果,这里是我的 OpenSSL 版本:
LDAP 服务器正在运行 OpenLDAP,但我不知道有关其版本或配置的任何详细信息。
这是我的代码的示例输出:
python - Python LDAP - 将用户移动到不同的 OU
背景:
我一直在我的 Linux 机器上使用 python-ldap 模块来管理远程 Windows Server 2008 上的用户帐户。我已经能够搜索、创建和修改用户,除了更改用户的 'ou' .
我曾尝试使用“modify_s”和“modrdn_s”,但由于 modrdn 只允许您更改 dn 的第一部分,所以我没有运气修改“ou”或将用户移动到新的“ou”。
暂时我正在创建一个新用户并复制我能够从旧用户那里获得的所有属性,然后删除旧用户。但这不允许我保留用户创建日期和其他不可编辑的信息。
我已经彻底搜索了互联网并找到了一些解决方案,但是:
在其他操作系统上:如何使用 Python
和其他编程语言将用户移动到不同的 OU:Active Directory LDAP 将用户移动到不同的 OU - Ruby
这可能在Linux 上的 python-ldap 或有任何解决方法吗?
谢谢!
python-2.7 - LDAP 和 AD - 我们总是允许搜索吗?
我正在为客户端开发一个 django 应用程序作为第三方,我需要使用 LDAP 进行身份验证 - 我一直假设行业 LDAP 服务器不会让任何客户端在树中搜索 DN,所以我认为我需要自己构建 DN 或以某种方式验证搜索,我无法在线找到任何地方的文档。
客户端对我的应用程序有两种不同类型的消费者 - 它们位于单独的 OU 中。
我的问题是:我是不是傻?我需要担心对搜索进行身份验证吗?从用户登录时提供的用户名获取用户 DN 的标准方法是什么?
谢谢!
python - python-ldap login to Active Directory 总是说 Invalid Credentials
最后一行总是引发烦人的InvalidCredentials
异常。我确定密码是正确的。我什至尝试了其他用户名、密码组合(我的朋友的)。
adLDAP
另请注意,使用PHP插件的朋友没有问题。我花了几个小时试图找出这个愚蠢的问题。有任何想法吗?
python-2.7 - 以官方 python docker 镜像为基础运行 python-ldap
我正在使用适用于 python 2.7 的官方 python docker 映像。我正在使用的应用程序需要 pyhon-ldap。
我的 dockerfile 看起来像这样:
python-ldap 在 requirements.txt 中的位置
我自然会遇到这个:
我知道这是因为没有安装 libldap2-dev 和其他一些软件包。所以我做了一些研究,发现官方的 python 镜像是基于 debian jessy 构建的。我更像是一个红帽人,但我知道 apt-get 所以我将我的 docker 文件修改为以下内容:
并且错误如下所示
好的,我认为 repos 丢失了,我做了更多的研究,然后回到 python 基础图像中,我旋转了一个容器并四处乱转。我可以证明安装了 repos(尽管老实说我不知道这些是否有效)
我似乎无法完全确定发生了什么,但看起来 apt 实际上并没有对 repos 的外部访问,而 apt-cache search 只返回已经安装的包。我如何才能在容器内安装东西和/或重新配置它以实际执行任何操作?
有没有更好的方法来获取我需要使用官方 python 映像编译 python-ldap 的包?
python-2.7 - 使用 python ldap 从域用户中获取所有用户
我正在尝试使用 python ldap 检索域用户组中的所有用户,但它只返回一个空列表。
这是我的示例代码:
其他每一段代码似乎都运行良好,就像获取组和从其他组获取成员一样。只有域用户组不给出任何结果。
任何帮助将非常感激。
python - 对应“dsquery 分区”的 ldap 查询
有没有办法可以使用 LDAP 查询找到所有分区?我的 Active Directory 中有一个父域和多个子域。全局编录设置在子域上,我想从这里搜索 Active Directory 中所有父域和子域上的所有分区。
在子域上运行“dsquery partition”会给我列表,但我正在编写一个 Python 程序来获取它。目前我正在使用以下 python-ldap 方法,它只给我当前子域的分区。
我应该将哪些参数传递给此方法以便我可以看到所有分区?
python-3.4 - ldap3 操作:搜索似乎失败(search_filter 语法与 RFC4515)
编辑:tl;dr - search_filter
SEARCH 中使用的参数可能不符合 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 表单传递的用户名和密码,如下所示。
该方法从 Auth 类实例化一个对象(如下所示),在其中存储用户名和密码,然后调用该类中的 AuthenticatePy() 方法。
我看到的最后一条日志消息是“连接绑定完成!” 而且我不确定发生了什么。知道我做错了什么吗?
编辑:我已经对此进行了一段时间的故障排除,并且我开始认为问题可能出在search_filter
我正在传递搜索功能的参数中。SEARCH 操作的ldap3文档指出过滤器字符串应符合 RFC4515,我不确定是否提供。
python - Python迭代数据结构代码解释
我正在使用 ldapsearch 在 python 中编写代码,并在rosettacode.org中遇到了这个链接
我在这里无法理解这段代码results = [entry for dn, entry in result if isinstance(entry, dict)]
- 我在上面的代码中没有看到
dn
定义,那么它来自哪里? - 做什么
isinstance(entry, dict)
?
当我尝试执行它时,我可以看到它返回了所有 ldap 条目的列表,以及与之关联的相应属性。首字母result
也返回一个列表。有人可以解释一下results
代码的作用吗?
python-2.7 - virtualenv python-ldap安装错误
请不要将此称为重复项。
到目前为止,所有答案都只是通过全局安装ldap和其他开发包来“解决”问题,这并不能解决无法在虚拟环境中安装python-ldap包的问题。
示例包括: 如何在 Ubuntu 上的 virtualenv 中安装 python-ldap?
我在我的虚拟环境中使用 ubuntu 14.04、python 2.7 和烧瓶。
当我运行时pip install python-ldap
,我收到以下错误。
如果我尝试 pip 安装任何建议的开发库,以便它们在我的虚拟环境中,我会收到以下错误。
我可以在全局范围内安装所有这些东西,但这完全违背了使用 virtualenv 的目的。
我真的很想找到一个有意义的 virtualenv 解决方案,因为我所能找到的只是针对 virtualenv 问题的非 virtualenv 解决方案。
谢谢。