
ユーザー名とパスワードを入力するログインフォームを備えた社内システムがあります。
しかし最近、ログインしようとするユーザーに関する詳細情報を取得する必要がありました (たとえば、ログイン試行が失敗した場合など)。
これは内部システムなので、ログインしようとしている AD ユーザーを取得するために Windows 認証を使用することを考えました。しかし、$_SERVER['AUTH_USER']
Windows 認証が有効になっているにもかかわらず、空の文字列が返されました。匿名認証を無効にしたときにのみ、ユーザーが表示されるようになりました (したがって、両方を有効にすると Windows 資格情報が取得されないようです)
引き続き、ユーザーにログイン フォームに資格情報を入力してもらいたいのですが、現在ログインしようとしている実際の Windows (AD) ユーザーも知りたいです。
匿名認証を完全に無効にすると機能するようで、その必要はないようですが、少し混乱しています。ただし、すべてのユーザーが既に Windows マシンで作業しているため、資格情報が渡され、Windows 認証が機能するということです。しかし、匿名認証を完全に無効にすると、特定のケースでエラーが発生する可能性があり、完全に無効にしない方がよいのではないかと思います。または、匿名認証と Windows 認証の両方を有効にして、値$_SERVER['AUTH_USER']
(空白の文字列ではない) を取得する方法があるのでしょうか。
しかし、IISはどのようにしてWebサイトに接続しているWindowsユーザーを確認するのでしょうか?自分のユーザーでWebサイトを表示するだけであれば、パスワードや資格情報を入力しないからです。
Windows 認証を使用しているのに、Windows 認証の目的と矛盾しているように見えるログイン フォームが残っているのは奇妙です。それとも、これは正しくなく、基本的に 2 層の認証があるのでしょうか。コード内にそれを処理するものが何もない場合、Windows 認証がどのように機能するのかわかりません。つまり、ユーザーが Web サイトを表示することを許可されていることをどうやって「知る」のでしょうか。