PHP ActiveDirectory到LDAP - 如何查找用户主要组的名称?

时间:2016-08-27 14:15:30

标签: php ldap

所以我想检索用户主要组的组名。

我已经知道如何检索primaryGroupID但是我没有在组类中找到一个包含这样一个id的字段。

这就是我如何检索primaryGroupID:

drawRect

提前致谢!

1 个答案:

答案 0 :(得分:0)

primaryGroupID实际上是您需要获取的组的RID。基本上,您需要做的是确定实际组,如下所示:

  1. 从用户处获取objectSidprimaryGroupID属性。
  2. 将用户的objectSid转换为字符串形式。
  3. 将字符串SID中的最后一组数字替换为primaryGroupID
  4. 搜索objectSid等于上一步SID的组。
  5. 对于几乎从不改变的事情来说,这是一项非常乏味的任务。但这是我目前如何解码LDAP中的objectSid

    https://github.com/ldaptools/ldaptools/blob/master/src/LdapTools/AttributeConverter/ConvertWindowsSid.php

    只需将值传递给fromLdap($value)函数即可。然后使用SID的字符串版本获取组的SID,如下所示:

    $groupSid = preg_replace('/\d+$/', $primaryGroupId, $userSid);
    

    现在使用上述$groupSid,您可以搜索objectSid等于该组的组。