0

私は大学のプロジェクトに取り組んでいます。大学では、使用するすべてのログイン/情報を LDAP に保存し、PHP 経由で取得する必要があります。通常は、ユーザーが入力した資格情報 (つまり、個々のユーザーのユーザー名とパスワード) を使用して LDAP 接続をバインドするだけですが、LDAP でユーザー名/パスワードを認証し、「承認されたアカウント」で接続を再バインドする必要があります。 " 部門から提供されたユーザー名とパスワードを入力し、認証されたアカウントから LDAP 検索を実行します。

基本的に、ユーザーが LDAP に存在することを確認するためだけに、ユーザーのログイン/パスワードを使用する必要があります。そうである場合は、別のアカウントのユーザー名/パスワードに切り替えて、ユーザーの情報から LDAP 検索を実行する必要があります。

どうすればいいですか?この方法で再バインドする方法はわかりませんが、ユーザーに対して適切な検索を実行します。

編集: LDAP アカウントの再バインドは、最初のバインド ステートメントの後に 2 番目のバインド ステートメントを含めるのと同じくらい簡単ですか? 元;

if (!($bind=@ldap_bind($connect, "uid=".$username.",ou=*****,dc=***,dc=edu", "$password")))
{
    ldap_close($connect);
    echo "there was an error binding your LDAP account.";
}
else // else we have binded to the ldap connection as the user, we must re-bind as the authorized account
{
    if (!($bind=@ldap_bind($connect, "uid=".$authUN.",ou=******,dc=***,dc=edu", "$authPW")))
    {
            ldap_close($connect);
            echo "There was a problem binding to the authorized account.";
    }
    else // now we have binded with the authenticated account
    {
        echo "success!";
    }
}    

..そして、通常どおり検索を実行しldap_search()ますか?

4

3 に答える 3

2
  • 「再バインド」などはありません。BINDしかない
  • 接続は匿名認証状態で開始されます
  • 各 BIND 要求は、接続状態を匿名状態にリセットします
  • BIND が成功するたびに、接続状態が認証 ID に関連付けられた許可状態に設定されます。
  • BIND 要求が失敗すると、接続は匿名状態を保持します

BIND のセマンティクスは、RFC4513で完全に説明されています。

于 2012-08-23T20:06:47.907 に答える
0

許可されたアカウントでユーザー情報を検索し、存在する場合はそれを返し、存在しない場合は無視してみませんか?

于 2012-08-23T18:17:33.513 に答える