繁体   English   中英

如何在 Unboundid LDAP SDK for java 中检测和防止循环引用?

[英]How to detect and prevent circular references in Unboundid LDAP SDK for java?

我正在使用 Unboundid LDAP SDK for java 连接到 AD 并在 AD 上执行操作。

我在组下嵌套了组分配。

例如:

Group-1有成员Group-2

Group-2有成员Group-3

现在Group-3可能有成员Group-1 由于循环引用,这将导致无限循环。

另外,对于嵌套成员,我在 AD 中有n级深度,所以我不确定如何在使另一个组的组成员成为组成员时检测循环引用。

我在谷歌上做了一些研究以找到解决方案,并遇到了这个事情:

clientLoop (96) clientLoop 结果代码表明客户端在处理来自服务器的结果时检测到某种循环。 它通常适用于客户端尝试关注推荐(或搜索结果引用)并遇到它已经尝试关注的推荐 URL 时。

Loop_DETECT (54) 如果服务器检测到链接或别名循环,将使用的结果代码 (54)。

参考: https : //docs.ldap.com/ldap-sdk/docs/javadoc/com/unboundid/ldap/sdk/ResultCode.html#LOOP_DETECT

所以这意味着它是可能的,并且在 Unboundid ldap sdk 中有一种方法可以检测循环引用。 但我还无法找到示例代码或解决方案。

在这种情况下,如何使用 Unboundid LDAP SDK for java 检测和防止循环引用?

注意:不是现有相关问题重复,因为我仅在 Unboundid ldap sdk 的上下文中寻求答案/解决方案。 不是在某些 powershell 脚本中。 其他类似问题还没有与Unboundid ldap sdk相关的答案。

您可能想尝试使用 LDAP_MATCHING_RULE_IN_CHAIN 函数的(Active Directory 特定解决方案),如果这符合您的需要,完全避免这种情况,请参阅例如:

在循环依赖的情况下使用 1.2.840.113556.1.4.1941 实现是否安全?

有关完整示例,请参见例如:

https://confluence.atlassian.com/crowdkb/active-directory-user-filter-does-not-search-nested-groups-715130424.html

这也避免了多次调用 Active Directory,这可能会带来性能优势(还要确保使用不是 SSL/TLS 连接的默认设置的缓存连接)。

如果您还需要考虑林中的其他域,您可能需要连接到全局目录(通过端口 3268 或 SSL/TLS 通过 3269 的纯文本)

长幻数是来自 Microsoft 的 OIN(部分: https ://ldapwiki.com/wiki/1.2.840.113556),它是函数名称的可移植数字表示:LDAP_MATCHING_RULE_IN_CHAIN。 您的软件可能不知道此函数名称,但 OIN 才是真正通过网络传输到 LDAP/Active Directory 的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM