LDAP認証で奇妙な動作が発生しています.AD資格情報でユーザーを認証するためにこれが必要です.これは私が持っているものです:
session_start();
$adServer = "MY IP";
$ldapconn = ldap_connect($adServer) or $this->msg = "Could not connect to LDAP server.";
$ldaprdn = "DOMAIN\\" . $_POST["username"];
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $_POST["password"]);
if ($ldapbind) {
//$msg = "Successfully Authenticated";
$_SESSION['loggedin'] = 1;
$_SESSION['username'] = $username;
header("Location: ../main.php");
} else {
header("Location: ../index.php?login_failed=1");
}
これは私が得るさまざまな動作です:
- ユーザー名なし/パスワードなし = 認証済み (BAD)
- ユーザー名 / パスワードなし = 認証済み (BAD)
- ユーザー名/パスワードが正しくない (両方のフィールドが指定されている) = 認証されていない
- 正しいユーザー名/パスワード (両方のフィールドが指定されている) = 認証済み
パスワードフィールドが使用されていない場合、すべてのユーザーが検証されています。しかし、パスワードフィールドを使用すると、正しい資格情報を持つユーザーのみが認証されます..
ここで何か間違ったことをしているのですか、それとも IT 担当者にしつこく言い始めるべきですか?