ユーザーが PHP を使用して企業ネットワークのイントラネットにログインしたときに、ユーザー名、ID 番号、電子メールなどのユーザーの詳細をどこで取得するか、またはどのように取得するかを知りたいです。
これらの詳細を使用して、開発中の Web アプリケーションに対してユーザーを自動的に認証したいと考えています。
AUTH_USER について読みましたが、どこで、またはどのように変数にアクセスできますか?
PHP LDAP関数を使用して、必要なことのほとんどを実行できます。唯一の落とし穴は、ユーザーごとに固有のアイテムを入手する必要があるということです。もう少し調査する必要がありますが、ApacheではなくIISをWebサーバーとして使用する場合、相手のログオン/ユーザー名を取得するための癖やトリックがあると確信しています。次に、を使用して次の方法でLDAPに対してクエリを実行します。
<?php
// $ds is a valid link identifier for a directory server
// $person is all or part of a person's name, eg "Jo"
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." entries returned\n";
?>
ApacheはAUTH_USERを空白として返すだけです。回避策は、ログオンの1回限りの要求を作成し、それをCookieに保存し、同じLDAPクエリを使用してユーザーに関する最新情報を取得することです。