【发布时间】:2018-04-28 14:55:55
【问题描述】:
所以我有一个:
- (根)域
lab.local与用户test1@lab.local。 - 子域
inner.lab.local与组testers(CN=testers,OU=Groups,OU=Domain Resources,DC=inner,DC=lab,DC=local)。 - 在该子域中,我创建了一个用户
test2@inner.lab.local。 - 我已将
test1@lab.local和test2@inner.lab.local添加到testers组 - 在子域中,我创建了一个查询
(&(objectCategory=user)(memberOf=CN=testers,OU=Groups,OU=Domain Resources,DC=inner,DC=lab,DC=local))
以上查询仅返回test2@inner.lab.local(不从根域中获取成员:test1@lab.local)。
我知道原因是它不是全局目录(它被标记为universal)因此(...) membership in groups from other domains will not be listed (...)
有什么解决办法吗?有什么办法可以同时得到它们吗?
已编辑(更具体地说):
在根域mylab.local (192.168.1.168) 中,我们可以看到用户John 将userPrincipalname 设置为john@mylab.local:
在这里我们可以看到一个子域inner.mylab.local(192.168.1.169)。在这里,我们在OU 中有一个名为Groups 的组testers。如您所见,在该域中,我们定义了一个用户mike。用户mike(来自inner.mylab.local)和john(来自mylab.local)都是testers组的成员:
我的目标是根据组名获取两个用户。感谢Marcin先生的回答,我知道我必须Query the global catalog in the child domain。但是,当连接到端口3268 上的子域时:
和查询的用户,我只从子域中得到了一个:
当我得到整个组时,像这样:
我可以看到两者。但我需要每个用户userPrincipalName 属性。因此,即使我进行第二次查询以获取来自不同域的每个用户的信息,我也无法获取有关用户的信息:
那么我做错了什么,在子域中查询全局目录时无法获取用户john(来自不同的域)?
编辑:
我正在使用java 和LdapTemplate。
【问题讨论】:
-
两件事:1.你确定你的第四张截图真的查询了全局目录吗?那应该行得通。
-
2.最好阅读组的
member属性,而不是尝试查询用户的memberOf。如果您告诉我们您使用的是哪种编程语言,我们可以提供更好的帮助。 -
"你确定你的第四张截图确实查询了全局目录吗?"第三张截图。我正在端口
3268上连接到服务器(通过LDAPAdmin),所以它应该是GC,对吗? (或者不,也许我错了,这就是我在这里的原因:)) -
我看到了,但我想知道它是否确实使用 GC 端口进行该查询。它应该可以工作。
-
“2. 阅读会员属性总是更好”。是的,我确实改变了这一点,但我无法从
SID获取account name。这是你刚才回答的我的第二个问题。我鞠躬,谢谢。
标签: active-directory ldap ldap-query