在循环依赖的情况下使用 1.2.840.113556.1.4.1941 实现是否安全?
Is it safe to use 1.2.840.113556.1.4.1941 implementation in case of cyclic dependencies?
如果 dl 中存在循环依赖(a -> b -> a 情况),使用 1.2.840.113556.1.4.1941 是否正常终止
LDAP_MATCHING_RULE_IN_CHAIN
OID 可以很好地处理循环依赖。它不会窒息。
例如,我建议在判断 a user is a member of a group.
时使用这个
考虑一下您是否有此设置:
Group A
Group B
Group B
User 1
Group A
并且您想知道 User 1
是否是 Group A
的成员。您可以将搜索条件设置为 Group A
,并使用此查询:
(member:1.2.840.113556.1.4.1941:=CN=User 1,OU=Users,DC=example,DC=com)
查询会成功(它不会阻塞循环组)并且您会得到 1 个结果 (Group A
),表明是的,User 1
是 [=12= 的成员]. (如果没有结果,则表示该用户不是该组的成员)
你不应该在不限制搜索基础或使用其他条件(如匹配特定帐户)的情况下使用 LDAP_MATCHING_RULE_IN_CHAIN
条件,否则你最终会得到 very 低效查询将永远花费 运行 因为它必须查看存在的每个对象的整个成员资格链。
如果 dl 中存在循环依赖(a -> b -> a 情况),使用 1.2.840.113556.1.4.1941 是否正常终止
LDAP_MATCHING_RULE_IN_CHAIN
OID 可以很好地处理循环依赖。它不会窒息。
例如,我建议在判断 a user is a member of a group.
时使用这个考虑一下您是否有此设置:
Group A
Group B
Group B
User 1
Group A
并且您想知道 User 1
是否是 Group A
的成员。您可以将搜索条件设置为 Group A
,并使用此查询:
(member:1.2.840.113556.1.4.1941:=CN=User 1,OU=Users,DC=example,DC=com)
查询会成功(它不会阻塞循环组)并且您会得到 1 个结果 (Group A
),表明是的,User 1
是 [=12= 的成员]. (如果没有结果,则表示该用户不是该组的成员)
你不应该在不限制搜索基础或使用其他条件(如匹配特定帐户)的情况下使用 LDAP_MATCHING_RULE_IN_CHAIN
条件,否则你最终会得到 very 低效查询将永远花费 运行 因为它必须查看存在的每个对象的整个成员资格链。