问题标签 [ldap3]

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 投票
2 回答
4893 浏览

python-3.x - 使用 Python 和 ldap3 重置 Active Directory 密码

我似乎遇到了在 AD 中重置密码的经典错误,尽管我在网上找到的所有内容都普遍指向我应该是黄金的事实。

先上代码。

这似乎是通过 SSL 实例化与我的 LDAP 服务器的连接的正确方法,此连接打印输出证实了这一点:

但我仍然收到此错误:

根据我的谷歌搜索,这通常意味着密码没有正确编码,或者连接根据 LDAP 服务器不够安全。

我在这一点上迷路了。想法?

@cannatag 如果你在外面……我需要你 :)

我的研究链接:

https://github.com/cannatag/ldap3/issues/130

Python 3.5、ldap3 和 modify_password()

无法通过 ldap3 Python3 更改用户密码

在 Python 3.x 中更改 Active Directory 用户密码

0 投票
1 回答
2811 浏览

python - How do I add a new user to a group with LDAP in Python?

I'm trying to add a user to Active Directory via LDAP using Python 3 with ldap3.

Currently I have this line of code which works and returns true:

All this does is simply create an user with the parameters given - great.

I then wanted to assign the user I'm creating to a group, so I added the following to the attribute list (also tried with member instead of memberOf):

But this returns false and does not create a user at all.

I assumed I had done something wrong so removed memberOf, ran the first lot of code again to recreate the user. I used the Active Directory Users and Computers tool on my Windows Server to manually add the group to the user. I opened IDLE, setup my connection and ran this (output cut for brevity):

Which other than the caplitised CN and DC was exactly what I had. I tried capitalising mine but it wouldn't work then either. This really puzzled me as I thought I was doing everything right. I've been Googling around and scratching my head for the last hour or two.

tl;dr How do you assign and AD group to an AD user upon creation using Connection.add()

0 投票
1 回答
1498 浏览

python - Python-3.4 Django v-1.9:Ldap 问题 - 模块对象没有属性 SCOPE_SUBTREE

我对 LDAP 有以下配置,如果我使用ldap.SCOPE_SUBTREE,它会显示:

如果我使用 ldap3.SUBTREE - 出现的错误:

代码:

0 投票
0 回答
711 浏览

python-3.x - 无法在 python3 中使用 ldap3 运行 bind()

下面是我尝试查询我的 ldap 服务器的代码。但是,由于某种原因,我似乎无法使绑定命令在我的代码中继续工作。我继续收到以下消息,但不确定它的含义或如何修复它。对于错误消息格式,我深表歉意。我尽我所能使它尽可能可读。

任何帮助将不胜感激!

回溯(最近一次通话最后):

文件“”,第 1 行,在

文件“/usr/lib/python3.5/site-packages/ldap3/core/connection.py”,第 427 行,绑定

文件“/usr/lib/python3.5/site-packages/ldap3/strategy/sync.py”,第 122 行,在 post_send_single_response

响应,结果 = self.get_response(message_id)

文件“/usr/lib/python3.5/site-packages/ldap3/strategy/base.py”,第 298 行,在 get_response

响应 = self._get_response(message_id)

_get_response 中的文件“/usr/lib/python3.5/site-packages/ldap3/strategy/sync.py”,第 168 行

dict_response = self.decode_response(ldap_resp)

文件“/usr/lib/python3.5/site-packages/ldap3/strategy/base.py”,第 403 行,在 decode_response

结果 = bind_response_to_dict(组件)

文件“/usr/lib/python3.5/site-packages/ldap3/operation/bind.py”,第 119 行,bind_response_to_dict

'saslCreds': bytes(response['serverSaslCreds']) if response['serverSaslCreds'] is not None else None}

文件“/usr/lib/python3.5/site-packages/pyasn1/type/univ.py”,第 984 行,以字节为单位

返回字节(self._value)

插件中的文件“/usr/lib/python3.5/site-packages/pyasn1/type/base.py”,第 164 行

raise error.PyAsn1Error('未初始化的 ASN.1 值(已查找“%s”属性)'% name)

pyasn1.error.PyAsn1Error: 未初始化的 ASN.1 值(已查找“ len ”属性)

0 投票
1 回答
610 浏览

django - 使用 Django 在视图之间保持登录 ldap

我正在使用该ldap3模块并尝试创建一个简单的 Web 应用程序来搜索 ldap 服务器中的用户。用户(通常是帮助台人员,进行搜索)必须登录并输入搜索的用户。到目前为止的代码创建/绑定到 ldap 服务器,并且在找到搜索到的用户后,将显示一个不同的页面,显示用户的凭据。到目前为止,一切都很好。

在显示凭据的页面上,有一个搜索框,以便用户可以再次搜索另一个用户。我现在遇到的问题是如何通过 ldap 保持登录状态,以便用户只需要输入搜索到的用户(而不是再次输入他的用户名和密码)。我在想我需要解析conn返回中的对象,但这似乎有点笨拙。这是我的代码:

视图.py

search_page.html

登录.html

我认为问题在于以某种方式将search_ldap_usermyviews.py中的函数与search_page.html通过 conn 对象联系起来,但似乎不清楚我该如何做到这一点。有没有人使用 ldap 进行身份验证的类似经验?

更新

所以我切换到django_python3_ldap图书馆,有以下内容:

设置.py

视图.py

正如您从注释掉的行中看到的那样,我在 settings.py 中尝试了各种配置排列,但仍有一些我不清楚的问题:

  1. 这在 settings.py: 中是强制性的LDAP_AUTH_OBJECT_CLASS吗?
  2. 哪个是正确LDAP_AUTH_USER_LOOKUP_FIELDS使用?
  3. 与 2 相同,但对于LDAP_AUTH_CONNECTION_USERNAME(这是否应该包括域)?

使用命令时抛出以下错误消息

错误:

当我不使用ldap_sync_users命令而只是运行服务器时,似乎没有连接,因为userprint 语句中的返回为None. 我知道连接有效的凭据,因为我之前使用该ldap3库的代码有效。我唯一能想到的是LDAP_AUTH_SEARCH_BASE两个库之间的不一样。

0 投票
1 回答
719 浏览

python - 用于大规模 ldap 搜索的 python ldap3 函数

我是 ldap3 库的新手,我正在尝试构建一个需要在 ldap 中搜索 55.000 个 uid 并检索其邮件属性的函数。

这是它的样子:

但我无法让它工作......知道吗?

提前谢谢你的帮助,尼古拉斯

0 投票
1 回答
563 浏览

python-3.x - Flask LDAP3 Auth Blueprint 因未初始化 ASN.1 值而失败

我正在尝试为 LDAP3 身份验证组合一个烧瓶蓝图。如果我使用与标准烧瓶应用程序相同的代码,一切都按预期工作,绑定成功并且用户身份验证也成功:

但是一旦我把它变成蓝图:

我的init .py 如下

和 app/ldauth/views.py:

点冻结:

我显然在这里遗漏了一些东西,有什么想法吗?

0 投票
1 回答
4795 浏览

python - 通过 AD/LDAP 进行身份验证

我对 AD 和 LDAP 了解不多,但是尝试用 Python 实现最简单的 LDAP/AD 登录功能。到目前为止,虽然我测试了几个不同的模块,但运气不错。最有希望的可能是ldap3

如果这在正确的道路上,你能给我一些指示吗?

该设置似乎足以满足基础知识,因为我能够从中提取某种类型的元数据:

我也尝试过flask-ldap3-login,但开始怀疑我们的 AD 没有按照标准配置,因为我得到了:

请不要犹豫,询问更多信息,我会尽力弄清楚。例如,我自己的用户位于:

一些值是:

此外,CN=Schema,CN=Configuration,DC=mydomain,DC=com只有一个子模式,CN=Aggregate,CN=Schema,CN=Configuration,DC=mydomain,DC=com它看起来是空的。出于某种原因,我相信这是 flask-ldap3-login 尝试使用的。

0 投票
2 回答
1102 浏览

python - 如何防止 ldap3 for python3 中的 LDAP 注入

我正在使用 ldap3 库编写一些 python3 代码,并且试图防止 LDAP 注入。OWASP 注入预防备忘单建议使用安全/参数化 API(除其他外)。但是,我在 ldap3 文档中找不到用于编写搜索查询的安全 API 或安全方法。文档中的大多数搜索查询都使用硬编码字符串,如下所示:

我试图避免以类似的方式编写查询:

此外,文档中似乎没有提及“注入”或“转义”或类似概念。有谁知道这个库中是否完全缺少这个,或者是否有一个类似的 Python 库提供安全/参数化 API?或者有没有人遇到过并解决过这个问题?

最后一点:我已经看到其他 StackOverflow 问题指出如何使用白名单验证或转义作为防止 LDAP 注入的一种方式,我计划实施它们。但如果可能的话,我更愿意使用所有三种方法。

0 投票
1 回答
6614 浏览

python - 如何在 ldap3 中读取给定 DN 的属性(如果没有过滤器,如何使用 ldap3 进行搜索)

如果我已经有一个 LDAP DN,我如何获取该 DN 的属性ldap3.Connection.search()?没有其他搜索条件,我已经有了 DN...

我尝试搜索 dn 属性,但没有返回任何对象。我也尝试过强制search_filter,或者它们都返回了格式错误的过滤器字符串。'''()'None

我也找不到使用抽象阅读器执行此操作的方法...

如果ldapsearch您正在执行 baseDN 查找,则无需指定搜索过滤器...