LoginSignup
0
0

IIS 10 の基本認証

Last updated at Posted at 2024-05-20

Windows 10 Pro の IIS 10 で基本認証を行う際のブラウザとサーバーのやり取りを調べましたので以下に書いておきます。検証に用いたサイトは下の画像の通り IIS Manager で基本認証を有効に、他を無効に設定したアプリケーションで、url は http://aspnet4site/BasicAuth/ となっています。

IISManager.jpg

上のサイトに Windows 10 Pro の Edge 125.0.2535.51 でアクセスし、要求と応答を Fiddler でキャプチャしてみました。

(1) 最初の要求に対してはサーバーから応答ヘッダに WWW-Authenticate: Basic realm="aspnet4site" を含む HTTP 401 応答が返ってきます。realm="aspnet4site" の aspnet4site は要求したサイトのホスト名です。

Fiddler1.jpg

(2) ブラウザはそれを受けてユーザーに[ユーザー名]と[パスワード]の入力を促すダイアログを表示します。下の画像は Edge のものです。ブラウザによって若干違います。

BasicAuth1.jpg

(3) ユーザーがダイアログに[ユーザー名]と[パスワード]を入力して[OK]ボタンをクリックすると、ブラウザは (1) で要求したページを再度 GET 要求します。その際、ブラウザは要求ヘッダに Authorization: Basic c3VyZmU6cmt... を含めてサーバーに送信しています (赤枠で囲った部分を見てください)。c3VyZmU6cmt... の部分は[ユーザ名]と[パスワード]をコロン ':' でつなぎ Base64 でエンコードしたものです。

Fiddler2.jpg

サーバーはこのヘッダを見てユーザーを認証し、HTTP 200 ステータスコード(成功)と共に要求されたコンテンツをブラウザに送信します。

(4) これ以降、ホスト名 aspnet4site に対しては Authorization: Basic c3VyZmU6cmt... が要求ヘッダに含まれて送信され、要求のたび自動的に認証が行われるようになります。

Fiddler3.jpg

一旦ユーザーがブラウザをシャットダウンしてから再度ブラウザを立ち上げて要求をかけた場合、要求ヘッダに Authorization: Basic ... は含まれなくなり、再度ログインが必要になる・・・と思っていたのですがそうではなかったです。

自分が試した限りですが、Chrome 125.0.6422.61, Firefox 126.0, Opera 110.0.5130.23 は再度ログインが必要で、Edge 125.0.2535.51 はシャットダウン/再立ち上げ後のログインは不要という結果になりました。

Edge の場合、設定の「閲覧データをクリア」で「パスワード」をクリアしないと、シャットダウン/再立ち上げ後でも要求ヘッダに Authorization: Basic ... が含まれて送信されます。

Edge.jpg

この状態はセキュリティ的に問題で、これが Edge のデフォルトだとすると巷で話題になっていると思ったですが、自分が検索などで調べた限りではそういう話はなさそうです。

ブラウザをシャットダウンすれば認証は継続しないと思っていたのは自分の思い違いなのか、自分の環境固有の問題があるのか、単なる Edge の設定の問題なのか調査中です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0