本記事では、Basic認証の設定時や、実際に運用していく上でよくあるトラブルの解決方法について解説していきます。
Q. Basic認証を設定したが、Basic認証のダイアログが表示されない
A1. 既にBasic認証の認証が通過している
既にBasic認証で認証が通過している状態になっている可能性があります。
その場合は、ブラウザをシークレットモード(プライベートウィンドウ)で立ち上げ、再度動作確認をしてみましょう。
各ブラウザごとのシークレットモード(プライベートウィンドウ)の立ち上げ方は下記となります。
Chromeの場合は、ファイル > シークレットウィンドウ でシークレットモードを使用できます。
Safariの場合は、ファイル > プライベートウィンドウ でプライベートブラウズを使用できます。
Firefoxの場合は、ファイル > プライベートウィンドウ でプライベートウィンドウを使用できます。
A2. .htaccessが削除されている
Basic認証の設定がされている.htaccessのファイル自体が削除されている可能性があります。
.htaccssが設置されているかどうか確認しましょう。
このような.htaccssファイルが削除されるケースとしては、ディレクトリに.htaccssが含まれているにも関わらず、コンテンツの更新のために、ディレクトリそのものを置き換えしてしまうことなどが原因としてあげられます。
Q. Basic認証で正しいIDとパスワードを入力したが、認証を通過できず先に進めない
A1. AuthUserFileの指定の誤り
AuthUserFile で指定した.htpasswdが設置されているパスがあっているかどうか確認しましょう。.htpasswdが設置されているパスがあっていない場合、正しいIDとパスワードを入力してもBasic認証の認証を通過することができません。
AuthUserFile /var/www/html/xxx/htdocs/.htpasswd # このパスの指定にご注意を。 AuthGroupfile /dev/null AuthName "Please enter your ID and password" Require valid-user
A2. Requireの指定の誤り
Require valid-userではなく、Require userになっており、個別にBasic認証の対象のユーザーが指定されている可能性がありますので、Basic認証の設定を確認しましょう。
AuthUserFile /var/www/html/xxx/htdocs/.htpasswd AuthGroupfile /dev/null AuthName "Please enter your ID and password" Require valid-user # AuthUserFile で指定されているユーザーであればBasic認証を認証し通過できる # Require user aaa bbb ccc # aaa、bbb、cccのユーザーのみBasic認証を認証し通過できない
Require valid-userであれば、AuthUserFileに指定されているユーザーであれば、誰でもBasic認証を認証し通過することができます。
しかしながら、AuthUserFileで指定されているユーザーの内、Require userに指定されているユーザーのみ、Basic認証を認証し通過できないません。
A3. httpからhttpsのリダイレクトの影響
もし、Basic認証が設定されているWebサイトで、そのWebサイトがhttp://とhttps://の両方でアクセス可能で、リダイレクト設定などされている場合は、Basic認証を2回認証する必要があります。
つまり、http://www.example.jpとhttps://www.example.jpでそれぞれBasic認証を通過する必要があります。
例えば次のようなパターンが起こりえます。
- http:://www.example.jpにアクセス
- Basic認証のダイアログが表示される
- Basic認証通過後、http:://www.example.jpからhttps:://www.example.jpへリダイレクト
- Basic認証のダイアログが表示される
- https:://www.example.jpを閲覧可能
Q. パスワードの9文字目以降に何を入力しても、Basic認証を通過できてしまう
Basic認証のパスワードを生成するためのアルゴリズムには複数の種類があります。
その中でcryptというアルゴリズムを使用した場合、パスワードの先頭8文字までしか使用されず、9文字目以降は無視されます。
9文字を超えるパスワードでBasic認証を運用する場合はcryptアルゴリズム以外のアルゴリズム(md5)などを使用しましょう。
Q. Webサイトリリース時にBasic認証を外すのを忘れる
開発時にBasic認証を設定しており、Webサイトリリースのタイミングで、Basic認証を外すのを忘れることは意外と多いです。
これは、Basic認証を通過した状態で作業をしているため、Basic認証を設定していることを忘れてしまっているからです。
そのため、Webサイトのリリース時には、必ずブラウザをシークレットモード(プライベートウィンドウ)で立ち上げて動作確認をしましょう。