0

PHPを使用して、Windows ADでldapに正常に接続およびバインドできます。ただし、ldap_search から期待する結果が得られません。テスト ユーザーが Intranet_Group123 にいることはわかっていますが、ldap_search でグループが見つからないか、結果の配列を正しく解析する方法がわかりません。グループの識別名はわかっています: CN=Intranet_Group123,OU=PD,OU=Intranet,OU=Apps,OU=Groups,DC=mydomain,DC=com

これが私が使用しているコードです(ここのブログに基づいています:ブログはこちら)。

    $user = 'testuser';
    $password = 'test';
    $ldap_host = "myServer";

// Active Directory DN (I have also tried having CN=Intranet_Group123 at the beginning of the string)
$ldap_dn = "OU=PD,OU=Intranet,OU=Apps,OU=Groups,DC=mydomain,DC=com";


// Domain, for purposes of constructing $user
$ldap_usr_dom = "@mydomain.com";

// connect to active directory
$ldap = ldap_connect($ldap_host);

// verify user and password
if($bind = @ldap_bind($ldap, $user . $ldap_usr_dom, $password)) {
    var_dump($bind);  // bool•true
    // valid
    // check presence in groups
    $filter = "(sAMAccountName=" . $user . ")";
    $attr = array("memberof");
    $result = ldap_search($ldap, $ldap_dn, $filter, $attr) or exit("Unable to search LDAP server");
    var_dump($result);  //resource(8) of type (ldap result)
    $entries = ldap_get_entries($ldap, $result);
    var_dump($entries);  // array(1) {'count' → int 0}
4

1 に答える 1