1
PHPのLDAPログインに少し問題があります。最初のバインドは成功しましたが、資格情報が正しい場合でも2番目のバインドはありません。最初のバインドで使用した資格情報を使用して試してみましたが、最初のバインドでバインドできます。なぜ私は2回目を縛ることができないのですか?PHP LDAPログインの問題
<?php
// Define $myusername and $mypassword
$username=$_POST['username'];
$password=$_POST['password'];
// using ldap bind
$ldaprdn = 'uid=MYUID,ou=special,ou=people,o=myo.com,dc=mydc,dc=com'; // ldap rdn or dn
$ldappass = 'PASSWORD'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldaps://MYLDAPSERVER", ###)
or die("Could not connect to LDAP server.");
if ($ldapconn)
{
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind)
{
$result = ldap_search($ldapconn, "ou=people,o=myo.com,dc=mydc,dc=com", "uid=$username");
$info = ldap_get_entries($ldapconn, $result);
$userdn = $info[0]["dn"];
$count = $info["count"];
ldap_unbind($ldapconn);
if ($count == 1)
{
$ldapbinduser = ldap_bind($ldapconn, $userdn, $password);
if ($ldapbinduser)
{
echo "Sucess you made it all the way<br />";
}
else
{
echo "Invalid Login Details, please try again(1001)";
}
}
else
{
echo "Invalid Login Details, please try again(1002)";
}
}
else
{
echo "LDAP bind failed(1000)";
}
}
私は2番目のバインドを開始する前に最初のバインドを終了する必要があると思いましたが、明らかにこれは当てはまりません。自動的に検索後にバインドを終了しますか? – JosephD
実際には、フォローアップ 'ldap_bind()' -callを使って再バインドするまで、または 'ldap_unbind()'で接続を終了するまで、ユーザとバインドされています。 LDAPにはユーザーをログアウトするという概念はありません。 –