我正在努力让 LDAP 查询正常工作,以便为我提供安全组的成员。
我们的活动目录结构是通过
设置的DC=domain,DC=co,dc=uk
然后,我们有一个名为“公司用户”的 OU,其中有一个用于 IT 和标准的 OU。
在这些中我们创建了用户
所以我被设置为
CN=my name,OU=IT,OU=company users,DC=domain,DC=co,dc=uk
安全组是
CN=Test,OU=Security Group,DC=domain,DC=co,dc=uk
我是其中的成员。
我有一个运行 LDAP 查询的 PHP 页面,该查询设置为 DN 为
OU=Company users,DC=domain,DC=co,dc=uk
,过滤器为 (&(objectClass=user)(objectCategory=person))
,这会返回所有用户并且工作正常。
但是,我无法让它只返回我的测试组的成员,即使我似乎已经尝试了 Google 给我的每个查询。
我认为这是由于我们的结构设置方式所致。
任何人都可以帮忙吗?
你可以这样做:
(&(objectClass=user)(objectCategory=person)(memberof=CN=Test,OU=Security Group,DC=domain,DC=co,dc=uk))
在您的过滤器中,这将带出正确的用户。如果这是不正确的,您可能需要检查域控制器上的 ADSI 编辑程序,这将为您提供正确的 DN。
我希望这有帮助,祝你好运
这是我所做的:
$dn = "CN=Users,DC=domain,DC=co,dc=uk";
$result = @ldap_search($ldap, $dn, "memberof=CN=MySecGroup,{$dn}", ["description", "displayname"]);
并且成功了..