繁体   English   中英

Active Directory / LDAP等同于名称空间?

[英]Active Directory/LDAP equivalent of namespaces?

在代码中,我有“雇员”,其角色为Category.Role格式,其中Category是一种角色。 例如, Foo.BarFoo.Foobar都是Foo角色。 Foo实际上不是我项目中的名称空间,但是我以这种方式思考它。

我可以分配和/或读取LDAP查询中的Active Directory中是否有一些等效的容器或层次结构角色/组,以便我可以同时查询具有任何 Foo角色或特定Foo.X角色的每个人?

在Active Directory中,您可以将组分配为另一个组的成员。 因此,如果我理解正确,那么您想要创建一个名为“ Foo”的AD组,然后创建两个名为“ Foo.Bar”和“ Foo.Foobar”的子组。 将这两个子组分配为“ Foo”组的成员。

然后,为用户争取组“ Foo.Bar”。 他将同时担任“ Foo”和“ Foo.Bar”的角色。 这意味着,如果您获得了该用户的WindowsPrincipal,则WindowsPrincipal.IsInRole(“ Foo”)和WindowsPrincipal.IsInRole(“ Foo.Bar”)都将返回true。

如果您不是使用IsInRole()函数来检查成员资格,而是使用纯LDAP查询,那么恐怕我们找不到解决嵌套组关系的简便方法。 如果您确实想研究进行单个LDAP查询调用的方法,请尝试在AD用户对象上查找“ tokenGroups”属性。 它是AD动态计算的计算属性。 它包含所有嵌套的组信息。 唯一的是它正在存储SID。 因此,您需要找出AD组的SID,将其转换为LDAP二进制格式并进行查询。

暂无
暂无

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

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