问题标签 [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 投票
0 回答
169 浏览

jython - 无法在 ExecuteScript 处理器中加载 ldap3 python 模块

我正在尝试在 NiFi ExecuteScript 处理器中运行 python 脚本。此脚本使用来自https://pypi.org/project/ldap3/的ldap3库。我知道处理器运行 Jython,并且我无法使用已编译的代码、文件等,但我注意到该库声称是:.so

一个严格符合 RFC 4510 的 LDAP V3 纯 Python 客户端库

我已经在处理器的属性选项卡中定义了包含库的文件夹的路径,使用

... ldap3 库文件夹在哪里:

当我启动处理器时,我收到以下错误消息:

格林威治标准时间 16:17:32 - server.my.domain:9091 - 错误 ExecuteScript [id=xxxx] 由于 org.apache.nifi.processor.exception.ProcessException 无法处理会话:javax.lang.NoClassDefFoundError:org/scijava/ jython/shaded/javax/xml/bind/DatatypeConverter 在第 5 行:javax.script.ScriptException:javax.lang.NoClassDefFoundError:java.lang.NoClassDefFoundError:org/scijava/jython/shaded/javax/xml/bind/DatatypeConverter在第 5 行

果然,scipt 中的第 5 行是:

我有其他使用 ldap3 的脚本成功运行。

0 投票
1 回答
2727 浏览

python - 无法使用 python ldap3 模块连接到 ldap

我正在使用在线 LDAP 测试服务器(https://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/

我正在尝试使用 python ldap3 模块连接到它。

这是我的代码:

当我检查 conn 时,它是False

有人可以帮助我获得连接提前谢谢

0 投票
1 回答
384 浏览

python-3.x - 如何使用 ldap3 修改广义时间属性

如何使用 ldap3 通过 modify_replace 修改广义时间属性?

如果我尝试:

我收到以下 python 错误:TypeError: 'datetime.datetime' object is not iterable

然后我尝试:c.modify(dn, {'myGeneralizedTimeAttribute': [(MODIFY_REPLACE, [(reset_time,)])]})并得到TypeError: 'datetime.datetime' object cannot be interpreted as an integer

之后我将日期时间转换为时间戳并得到 ldap 错误:

{'result': 19, 'dn': '', 'type': 'modifyResponse', 'message': 'NDS error: syntax violation (-613)', 'description': 'constraintViolation', 'referrals': None}

我认为解决方案很简单,但我没有看到它......

0 投票
1 回答
9252 浏览

python - 使用 ldap3 Python 在 Active Directory 中获取用户状态(禁用或活动)

我正在获取 Active Directory 中所有用户的列表,我需要检查他们的状态——用户是活​​动的还是禁用的。我希望userAccountControl应该返回用户状态,但除了一个(返回 66048)之外的所有用户我只得到 512,这与用户状态无关(据我所知)。

用户 = ABC:约翰史密斯:512 用户 = DEF:莎拉康纳:514 用户 = GHI:托马斯安德森:66048

这是获取用户状态的正确方法吗?有没有其他方法可以通过一些带有 UI 的应用程序检查 AD 用户状态?

0 投票
1 回答
359 浏览

python - ldap3 python修改用过滤器替换对象

应用 ldapmodify 时如何过滤?

例如:这就是我的用户对象的样子:

dn: mail=abc@d.com,ou=users,dc=dev,dc=com sn: po givenName: abc pin: 1234 mail: abc@d.com telephoneNumber: 11234567890 enabled: FALSE city: city cn: abc@d.com o: org

如果他的组织是 org,我想修改这个用户的城市。我怎样才能应用这样的过滤器?

我正在使用 ldap3 进行操作,是否需要使用控件?

0 投票
1 回答
280 浏览

python - 如何在 django 2.0 中找回密码?

我在 django 2.0 中使用 ldap 进行用户身份验证,我需要创建一个端点来验证来自另一个应用程序的用户,只需传递用户名然后重定向它们。还没有东西可以检索原始密码吗?

0 投票
0 回答
144 浏览

python - 授予 AD 组权限以在 Python 中管理另一个 AD 组

我试图通过 Python 将管理一个 AD 组的权限添加到另一个 AD 组。在 powershell 中,它是由“DSACLS”命令完成的,我试图通过 ldap3 模块在 Python 中找到一种方法,但如果它可能通过任何其他库也请提及。

我试图模拟的 powershell 命令看起来像这样

dsacls \$domainController\$ownerGroupDN /G """$ownerGroupDN"":WPRP;member;"

我试图做同样的事情,但通过 Python 通过 AWS lambda 运行它。

任何帮助将不胜感激。

谢谢

0 投票
0 回答
2691 浏览

python - Python LDAP3一次在多个search_base中搜索

我有这样的代码:

我可以像这样成功搜索user1 user1@subdomain1.ad.xxx.com

以及user2 user2@subdomain2.ad.xxx.com这样的

如您所见,上面的代码是为每个用户量身定制的,以查看不同的 内容search_basesubdomain1因此subdomain2

我厌倦了在更高级别的代码user1中搜索两者:user2search_base= 'DC=ad,DC=xxx,DC=com'

但上面的代码没有找到用户,只返回子域列表

所以问题是,如果我在这里没有做错任何事情,是否有一种方法可以在多个域中进行搜索,可能search_base具有结合多个子域的特殊语法?

我不想进行多次搜索,而且正如我提到的 SUBTREE/更高级别的 serach_base 似乎也不适合我

谢谢

0 投票
1 回答
1155 浏览

python - 允许 AD 用户使用 Python ldap3 更改自己的密码

我正在使用 Python ldap3[1] 构建一个 API,允许用户使用他们当前的凭据更改他们的 Microsoft Active Directory 密码。这就是我的 API 正在做的事情:

1- 创建 LDAP 连接并绑定到 LDAP 服务器:

tls_config = Tls(validate=ssl.CERT_NONE) server = Server(ldaps_endpoint, port = 636, use_ssl = True, tls = tls_config) connection = Connection(server, user=username, password=password, authentication='NTLM') connection.bind()

2- 使用extend.microsoft.modifyPassword.ad_modify_password()ldap3 函数更改密码:

user_modified = extend.microsoft.modifyPassword.ad_modify_password(connection, user_dn, new_password, current_password)

当未设置下次登录时的用户标志更改密码时,这可以正常工作。设置后,它不起作用,因为连接失败bind()。我尝试使用ANONYMOUS连接而不是NTLM成功绑定。但是,该ad_modify_password()功能失败:

为了执行此操作,必须在连接上完成成功的绑定

应该如何在下一个登录标志上ad_modify_password()使用更改密码?

[1] https://ldap3.readthedocs.io/

0 投票
1 回答
2827 浏览

python - 如何明确告诉 Python 的 ldap3 模块到 TLS 1.2 版?

我正在尝试使用ldap3 Python 模块对 ldap 进行身份验证,但我想验证我的连接是否使用 TLS 1.2 版。

相关代码片段:

我的 Connection 对象的输出:

我不确定版本属性中的“5”是什么意思,但最终我试图验证我是否使用 TLS 版本 1.2 进行身份验证。