1

わかりました...ここで例などを掘り下げましたが、まだ問題があります。

<?php
// SHOW ERRORS 0=NO 1=YES
ini_set('display_errors', '1');


//USER
$valid_session_username = $_POST["username"];
$valid_session_password = $_POST["password"];

//MEMBER OF THIS GROUP
$dn = "DC=FLRC,DC=local";
$group = "CN=Internet-Purchasing-Allowed,OU=Security Groups,DC=FLRC,DC=LOCAL";
$filter = "(&(objectClass=user)(memberOf=$group))";


$ad = ldap_connect("srv-flc-dc03") or die("Couldn't connect to AD!");
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ad, LDAP_OPT_REFERRALS,0);
$bd = ldap_bind( $ad, $valid_session_username."@flrc.local", $valid_session_password) or die("Can't bind to server.");
$sr = ldap_search($ad, $dn, $filter);


$found = false;

if ($sr !== false) {
    $count = ldap_count_entries ($ad, $sr);
    if ($count !== false && $count > 0) {
     $found = true;
    }
}

if ($found === true) {
    print $valid_session_username.' does have access to this page';
} else {
    print $valid_session_username.' does NOT have access to this page';
}


?>

何が欠けているのかわかりません。クレデンシャルを送信すると、「SRAYはこのページにアクセスできます」と表示されます。SRAYはそのグループの一部であるため、これが想定されていることです。また、そのセキュリティグループの一部ではない別のユーザー名/パスについてもこれを示しています。

4

2 に答える 2

1

フィルターは、Internet-Purchasing-Allowed グループの直接のメンバーであるユーザーを探しています。フィルターに (sAMAccountName=$valid_session_username) を追加する必要があります。

于 2012-12-06T16:59:55.700 に答える