おはようございます、
LDAP 認証 (以下のコード) を提供する php スクリプトがありますが、複数のコンテキストに対して認証する必要があります。
私はこれについて最善の方法がわからなかったので、誰かが何か指針/アドバイスを持っているのではないかと思いました.
敬具、ベン
$username = $_POST["username"];
$password = $_POST["password"];
//$ipaddressreceived = $_POST["ipaddress"];
$ldapcontext = "ou=Staff, ou=Users,o=ABC";
$ldapconn = ldap_connect("IPADDRESS"); // must be a valid LDAP server!
$ldaprdn = "cn=$username,$ldapcontext";
function authenticate($username, $password) {
global $ldapconn;
global $username;
global $password;
global $ldaprdn;
// Prevent null binding
if ($username === NULL || $password === NULL) { return false; }
if (empty($username) || empty($password)) { return false; }
// Bind as the user
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $password);;
if ($ldapbind) { $ret = true;
} else {
$ret = false;
}
return $ret;
}
$authUser=authenticate($username, $password);
if ($authUser == true) {
session_start();
$_SESSION["username"]=$username;
$ldapfields = array("cn", "givenname", "sn", "mail");
$ldapsearch=ldap_search($ldapconn, "$ldapcontext", "cn=$username", "$ldapfields");
$info = ldap_get_entries($ldapconn, $ldapsearch);
$givenname = $info["sn"][0];
$_SESSION["givenname"]=$givenname;
$login_message = "LOGIN SUCCESSFUL";
header("Location: index.php");
exit;
} else
{
$login_message = "Login Failed";
}