7

ユーザーが php_ldap モジュールを使用してグループに属しているかどうかを確認するにはどうすればよいですか?

私はldapにまったく慣れていないので、少し混乱しています...

グーグルで私はこれまでにこれを思いついた:

$ds=ldap_connect($ldapHost, $ldapPort);
if ($ds) {
    $r=ldap_bind($ds, $ldapRdn, $ldapPassword);
    $filter = "(sAMAccountName=" . $uid . ")";
    $attr = array("memberof");
    $result = ldap_search($ds, $ldapDN, $filter, $attr) or exit("Unable to search LDAP server");

AD に固有の soemthign から取得したため、これが正しいかどうかはわかりません。問題は $ldapDN のようです。これは私が右を検索するものですか?私のグループの「定義」は次のとおりです。

cn=User,ou=Profiles,ou=App_DEV,ou=ApplicationRights,O=MyCompany.COM

どうすればこのチェックを行うことができますか?

編集:

「受け入れられた回答」と試行錯誤の助けを借りて見つけた私の解決策は次のとおりです。答えは、特定のシステムに大きく依存すると思います。

//This is the User group DN
$ldapDN = "cn=User,ou=Profiles,ou=App_DEV,ou=ApplicationRights,O=MyCompany.COM";
$filter = "(uniqueMember=uid=" . $uid . ",ou=Users,O=MYCOMPANY.COM)";
$attr = array('uniqueMember');
$result = ldap_search($ldapConnection, $ldapDN, $filter, $attr):
$entries = ldap_get_entries($ldapConnection, $result);
ldap_unbind($ldapConnection);
return intval($entries["count"]) > 0;
4

1 に答える 1