none
Basic 認証時の挙動について RRS feed

  • 質問

  • クライアントサーバーシステムでクライアント側でInternet Explorer 11 Basic 認証後

    サーバーシステムの認証(セッション有効時間)切れ後に再び、同一ブラウザURLへブラウザリロードした場合に

    サーバーシステム側は、認証切れとなっていますのでクライアント側は、Basic 認証の要求が表示します。

    この時に、『キャンセル』ボタンを押しても認証が通ります。

    (本操作で、ブラウザを閉じたり、キャッシュクリアなどの操作は一切おこないません。)

    サーバーシステム側で内容をトレース(tcpdump)するとBasic 認証『キャンセル』ボタンを押しても

    サーバーシステムへのBasic認証が正しいIDPWDで要求しています。

    ※:ブラウザの設定、キャッシュ制御、OS32bit/64bitについては

        すべてを組み合わせて確認していませんがあまり関係ないように思います。

    ■サーバーシステム側

      apache2,tomcat7を利用しています。

    今回確認したい点

    1.Internet Explorer 11

        1度Basic認証が通った場合、再びBasic認証の要求を行っても無条件で認証する仕様でしょうか?

    2.Internet Explorer 11

        1度Basic認証が通った場合、再びBasic認証をする場合、画面操作通りにする方法はありますでしょうか?

       (『キャンセル』は、認証のキャンセルとしたい。)

    3.項2.の状況でパスワードが空の状況で『OK』を押すと認証が通るケースのあります。

        項2.と同じ事象でしょうか?

    2015年11月13日 9:15

すべての返信

  • IE11 に特有の問題(?)と言うわけではなく、基本認証なので IE10, IE9, IE8 ... とか他のブラウザでも同じ動きになるのではないですか? そのあたりは確認されたでしょうか?

    Fiddler2 などのキャプチャツールで要求 / 応答ヘッダを見るなどやり取りを調べてみると仕組みが分かると思いますのでやってみましょう。

    最初の要求に対してはサーバーから HTTP 401 応答が返ってきて応答ヘッダには WWW-Authenticate: Basic realm="xxx" が含まれます。IIS の場合、xxx にはホスト名が入ります。

    ブラウザはそれを受けてユーザーに[ユーザー名]と[パスワード]の入力を促すダイアログを表示します。

    ユーザーがダイアログに[ユーザー名]と[パスワード]を入力して[OK]ボタンをクリックすると、ブラウザは以下の画像のような要求ヘッダを再度サーバーに送ります。

    赤枠で囲った部分を見てください。サーバーはこれを見て認証します。

    これ以降、ブラウザを閉じない限り、ホスト名 xxx に対しては赤枠で囲った部分が要求ヘッダに含まれて送信されます。

    上記で 1, 2, 3 の確認事項の答えは出るでしょうか?



    • 編集済み SurferOnWww 2015年11月15日 3:11 ユーザー名とパスワード入力のステップ追記
    2015年11月13日 10:16
  • 基本認証 (Basic認証) 自体には「有効期限」という考え方は無いわけですが、「サーバーシステムの認証(セッション有効時間)切れ」というのはどのように実装されているのでしょうか。その作りに依存する動作である可能性も考えられるので、もう少しそこの情報も提供されるとよいかと思います。

    例えばログインのページだけ基本認証を掛けて、そのページでセッション管理の Cookie を発行、サーバー側で Cookie を受け入れる期限を設定して期限切れ後のアクセスはすべて最初と同じログインページにリダイレクトする、というような話なのでしょうか。


    hebikuzure

    2015年11月14日 10:04
    モデレータ