上下文
当将成员从LDAP服务器导入应用程序时,我们将添加组成员筛选。
(以前,我们从给定的ldap“基DN”导入所有成员;现在管理员可以限制某些组,即基本DN中的成员"Sales“和"HR”)。
我们的应用程序支持:
另外,我们计划只支持静态组,而不是动态组。
我们会怎么做
在过去,我们会使用两个查找将成员复制到数据库中,以实现这一新功能。
查找baseDN
成员可以减少查询和逻辑?
在简短的互联网研究中,我发现SunONE和ActiveDirectory有一个属性(isMemberOf/memberOf),它标识“用户所属的组”
理论上,我们可以将上面的逻辑简化为一个LDAP查询:
组的成员。
成员可以减少查询和逻辑?
了解问题:-成员/isMemberOf只支持静态组-它不支持嵌套组
问题
参考
SunOne:http://docs.oracle.com/cd/E19575-01/820-2763/bcajq/index.html
活动目录:http://msdn.microsoft.com/en-us/library/ms677943.aspx
相关问题:How to write LDAP query to test if user is member of a group?
发布于 2012-03-16 04:02:12
使用成员/IsMemberOf的方法会起作用吗?
它将在附加条件下起作用。
有什么要注意的吗?
如果它按照OpenLDAP实现的工作方式工作,则memberOf属性仅适用于启用后生成的条目。它不会“追上”。
,OpenLDAP或其他服务器怎么办?他们都支持这样的属性吗。(我看到OpenLDAP有memberOf的“覆盖”,但是
管理员必须显式启用它)
您可以查询任何LDAP服务器的根DN,以确定它是否支持该特性。关于OpenLDAP对此的支持是正确的。
发布于 2012-03-27 14:02:54
我不能和Sun交谈,但是Active Directory确实支持来自用户的memberOf属性,您可以对它进行查询。属性是一个多值属性,包含用户所属组的distinguishedName。
也就是说,您必须根据组的dn进行查询,并且不能将通配符匹配作为其中的一部分。这本机不支持嵌套组,但如果需要,我只需将objectCategory添加到查询属性中,并检查“如果该成员是另一个组,则重新查找”。
如果你在你的组结构中有一个循环,这一切都会变得很糟糕,但是我很肯定,很多其他的事情也是如此,而AD阻止了你这样做。
https://stackoverflow.com/questions/9722889
复制相似问题