0
AD 서버에 바인딩 할 수 있지만 특정 그룹의 멤버 자격을 검증하는 방법을 이해하는 데 어려움이 있습니다. 내가하고 싶은 일은 사용자가 그룹 "DOMAIN \ IT"의 일부인지 확인하고, 그렇다면 나중에 사용할 수있는 세션 변수를 할당하는 것입니다.PHP 및 LDAP로 AD 그룹 멤버쉽을 확인하십시오.
if (isset($_POST["submit"])){
$ldaprdn = "DOMAIN\\" . $_POST["username"]; // ldap rdn or dn
$ldappass = $_POST["password"]; // associated password
} else {
$ldaprdn = "noUserName"; // ldap rdn or dn
$ldappass = "noPassWord"; // associated password
}
//check login form post submission and blank values
if (isset($_POST["submit"])){
if ($_SESSION["blanklogin"] !== "1"){
// connect to ldap server
$ldapconn = ldap_connect("DC01.ROOT.DOMAIN.ORG")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
$_SESSION["login"] = "1";
TODO: CHECK GROUP MEMBERSHIP - IF IN GROUP DOMAIN\IT then set session variable.
session_regenerate_id(true);
echo "LDAP Bind For "; echo $ldaprdn; echo " successful...";
echo "Login Successful";
header("Location: index.php");
} else {
echo "LDAP bind for "; echo $ldaprdn; echo " Failed...<br />";
$_SESSION["login"] = "0";
}
$_SESSION["blanklogin"] = "0";
ldap_unbind($ldapconn);
}
} else {
echo "Username & Password Required<br />";
}
}
Wonderful, 대단히 감사합니다. @Ashigore! –