如何通过primaryGroupToken从Active Directory中使用PHP检索组?(H

2019-10-19 07:44发布

我怎样才能检索到一组由它从Active Directory中使用PHP primaryGroupToken? 显然,这是一个计算的属性,以便检索它不是直线前进,因为在这个答案躲避到: AD:集团没有primaryGroupToken属性

基本上我使用下面的命令:

ldap_search(
    $connection,
    "DC=host,DC=only,DC=network",
    "(&(objectClass=group)(objectCategory=group)(primaryGroupToken=513))",
    array("dn", "primarygrouptoken")
)

这将导致一个错误:

Warning: ldap_search(): Search: Inappropriate matching

不知道如何使用它的使用PHP从Active Directory主组令牌获取一组?

Answer 1:

从链接答案的最简单的方法引用是最后后面的数字,要求集团-的objectSID作为过滤参数。

"(&(objectClass=group)(objectCategory=group)(objectSid=*-513))" 

属性参数也将成为array("dn", "objectSid")

不幸的是,你说你的评论是一个八位位组或字节数组,而不是SDDL字符串,这是不可能的,因为的objectSID。 你可以搜索特定的组通过使用转义(以\和十六进制的前缀)字节的字符串,但是这是个问题问不算什么。

但是二元过滤器不支持通配符。 另一种方法是要求所有基团,然后通过后处理之后的RID解压的objectSID对于每个组,然后组,然而这取决于在域组的数量,这可能是太慢了。

而例如PHP字节串和SDDS之间的转换位于这里 ,与PrimaryGroupId查找用户一起。

另一种方法是使用ADO按这里或在这里 ,但是这需要ADODB 。

也看到这里的第二个参考。 其他参考这里和这里



文章来源: How to retrieve group by primaryGroupToken from Active Directory using PHP?