如何使用PHP从AD(LDAP)获取所有专有名称(DN)的列表?

时间:2012-06-06 19:24:05

标签: php active-directory ldap distinguishedname

我想获得Active Directory中所有DN的列表,同时只有基本DN。

还是所有组和组成员的列表。

使用的语言是PHP。

如果PHP是这项任务的错误选择,你会推荐哪种语言?

干杯,

2 个答案:

答案 0 :(得分:1)

PHP有一个LDAP extension。只要您的PHP安装启用了该扩展,您就可以毫不费力地连接到AD服务器并执行查询。

之后,只需performing basic function callsldap_connect()ldap_bind()ldap_search()ldap_get_entries(),然后迭代结果集。

请记住,如果您希望对AD执行更改(此处似乎不是这种情况),则必须通过SSL进行连接,might have a few gotchas涉及让PHP查看AD的SSL证书为可信任。

答案 1 :(得分:1)

使用:

  • 使用空字符串或基础DN作为基础对象
  • (objectClass=*)过滤器
  • 搜索范围
  • wholeSubtree2sub
  • 1.1用于请求的属性列表。

1.1是一个不匹配任何属性类型的OID,服务器应该只返回可分辨名称(无属性)。 (objectClass=*)现在过滤器 - 所有LDAP条目至少具有objectClass属性。

这将返回所有可分辨名称的列表 - 假设目录服务器管理员允许LDAP客户端搜索目录服务器数据库(某些管理员不允许这样做)。

也将返回组专有名称。哪些条目是组的成员将取决于用于命名成员的属性。