问题标签 [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.
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 的脚本成功运行。
python - 无法使用 python ldap3 模块连接到 ldap
我正在使用在线 LDAP 测试服务器(https://www.forumsys.com/tutorials/integration-how-to/ldap/online-ldap-test-server/)
我正在尝试使用 python ldap3 模块连接到它。
这是我的代码:
当我检查 conn 时,它是False。
有人可以帮助我获得连接提前谢谢
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}
我认为解决方案很简单,但我没有看到它......
python - 使用 ldap3 Python 在 Active Directory 中获取用户状态(禁用或活动)
我正在获取 Active Directory 中所有用户的列表,我需要检查他们的状态——用户是活动的还是禁用的。我希望userAccountControl应该返回用户状态,但除了一个(返回 66048)之外的所有用户我只得到 512,这与用户状态无关(据我所知)。
用户 = ABC:约翰史密斯:512 用户 = DEF:莎拉康纳:514 用户 = GHI:托马斯安德森:66048
这是获取用户状态的正确方法吗?有没有其他方法可以通过一些带有 UI 的应用程序检查 AD 用户状态?
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 进行操作,是否需要使用控件?
python - 如何在 django 2.0 中找回密码?
我在 django 2.0 中使用 ldap 进行用户身份验证,我需要创建一个端点来验证来自另一个应用程序的用户,只需传递用户名然后重定向它们。还没有东西可以检索原始密码吗?
python - 授予 AD 组权限以在 Python 中管理另一个 AD 组
我试图通过 Python 将管理一个 AD 组的权限添加到另一个 AD 组。在 powershell 中,它是由“DSACLS”命令完成的,我试图通过 ldap3 模块在 Python 中找到一种方法,但如果它可能通过任何其他库也请提及。
我试图模拟的 powershell 命令看起来像这样
dsacls \$domainController\$ownerGroupDN /G """$ownerGroupDN"":WPRP;member;"
我试图做同样的事情,但通过 Python 通过 AWS lambda 运行它。
任何帮助将不胜感激。
谢谢
python - Python LDAP3一次在多个search_base中搜索
我有这样的代码:
我可以像这样成功搜索user1
user1@subdomain1.ad.xxx.com
以及user2
user2@subdomain2.ad.xxx.com这样的
如您所见,上面的代码是为每个用户量身定制的,以查看不同的 内容search_base
:subdomain1
因此subdomain2
我厌倦了在更高级别的代码user1
中搜索两者:user2
search_base= 'DC=ad,DC=xxx,DC=com'
但上面的代码没有找到用户,只返回子域列表
所以问题是,如果我在这里没有做错任何事情,是否有一种方法可以在多个域中进行搜索,可能search_base
具有结合多个子域的特殊语法?
我不想进行多次搜索,而且正如我提到的 SUBTREE/更高级别的 serach_base 似乎也不适合我
谢谢
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()
使用更改密码?
python - 如何明确告诉 Python 的 ldap3 模块到 TLS 1.2 版?
我正在尝试使用ldap3 Python 模块对 ldap 进行身份验证,但我想验证我的连接是否使用 TLS 1.2 版。
相关代码片段:
我的 Connection 对象的输出:
我不确定版本属性中的“5”是什么意思,但最终我试图验证我是否使用 TLS 版本 1.2 进行身份验证。