Active directory 通用组的LDAP查询

Active directory 通用组的LDAP查询,active-directory,ldap,Active Directory,Ldap,我使用以下查询查找每个用户所属的组: (&(objectClass=group)(member=cn=UID,OU=serviceCounts,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au)(member=cn=UID,OU=BTLY,OU=Sites,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au)) 此查询使用以下基本DN工作和运行: OU=MC,DC=ads,DC=myCompany,DC=com,DC=au 我对这个查询没有什

我使用以下查询查找每个用户所属的组:

(&(objectClass=group)(member=cn=UID,OU=serviceCounts,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au)(member=cn=UID,OU=BTLY,OU=Sites,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au))

此查询使用以下基本DN工作和运行:

OU=MC,DC=ads,DC=myCompany,DC=com,DC=au

我对这个查询没有什么问题:

  • 我不喜欢使用OR运算符查找服务帐户用户和BTLY用户
  • 我不想硬编码的BTLY网站,还有其他的
理想情况下,我只希望查询如下:

(&(objectClass=group)(|(member=cn=UID,OU=MC,DC=ads,DC=myCompany,DC=com,DC=au))

这样,我不关心用户帐户是否是服务帐户,也不关心该帐户属于哪个站点。不幸的是,该查询不起作用

有人能帮我概括一下LDAP查询吗?我是个新手,所以我很可能遗漏了一些非常明显的东西

谢谢


谢谢你的回复。你说的很有道理,但不幸的是对我没有帮助。我们正在使用GlassFish(一个Java应用程序服务器),并已将其配置为指向本地广告服务器。通常,一个人可以告诉GlassFish如何检索用户,例如

(&(objectCategory=user)(CN=UID))

GlassFish将拾取所有组(可能通过使用
memberOf
属性)

这次我们使用的是一个不同的广告服务器,它承载着不同的用户目录。GlassFish本身无法检索组。因此,有一个字段,我们可以为GlassFish提供一个自定义查询来查找组。在这个字段中,我将我发布的查询放在了这个字段中,它可以工作,但又难看又冗长

我希望能够做到的是:

(&(objectClass=group)(member=cn=UID))

但这不起作用

有什么办法可以这样做吗

谢谢,
Muel.

我只是想重新表述一下你的问题,但要评论的文字太多了

您正试图从nod
OU=MC,DC=ads,DC=myCompany,DC=com,DC=au开始查找用户
CN=UID
所属的所有组

这可以通过检索用户本身的
memberOf
属性来实现。唯一的问题(可能不是在您的情况下)是主组不在DN列表中,它是使用
primaryGroupId
属性编码的

所以

将进行作业测试:

ldifde -f t.ldf -D "OU=MC,DC=ads,DC=myCompany,DC=com,DC=au" -r "(&(objectCategory=user)(CN=UID))" -l memberof

备注:
samAccountName
userPrincipalName
是Active Directory中条目唯一性所依赖的属性,这不是CN的情况(管理员可以更改它)

我猜使用此技术是不可能的。您需要在此处使用通配符:

(&(objectCategory=group)(member=CN=UID,*))
对于DN属性(如存储在'member'属性中的属性),这是不可接受的:


我的建议是:使用一些工具为您生成“丑陋”查询(使用上面提到的语法)和“提要”你的工具有最终结果。看不到任何选项,抱歉…

有趣的是,我昨天尝试了通配符,但没有成功。我还尝试了使用subselect,这也不起作用。我已经读到LDAP不支持此类查询。感谢MS链接,阅读一些明确的内容很好!我将这个问题留待讨论不再有机会……)
(&(objectCategory=group)(member=CN=UID,*))