apacheでBASIC認証をかけてもダイアログが表示されない場合の対処方法


本日ApacheにBASIC認証をかける作業を行ったのですが、
ID/パスワード入力のダイアログが表示されずハマったので自分用にメモ。

IT/WEB業界への転職なら求人サイトGreen

BASIC認証のかけかた

/etc/httpd/conf/httpd.conf内、<Directory>の箇所に以下の記述を行います。

<Directory "/home/www/html/">
AuthUserFile /home/www/html/.htpasswd
AuthGroupFile /dev/null
AuthName "Basic Auth"
AuthType Basic
Require valid-user
</Directory>

初期設定の要素を削除

しかし、httpd.confには初期で様々な記述があり、不要な情報を削除する必要があります。
私の場合は以下記述を残していたため、ダイアログが表示されませんでした。

Require all granted

Require all granted を記述すると、全アクセスを許可してしまっている状態となります。
Apache 2.4 の Require ディレクティブは、デフォルトでは複数定義すると or 扱い(暗黙のRequireAny)になるので、「無条件でOK か ベーシック認証できたらOK」という条件になり、常に全アクセスを許可する記述となっています。

ですので、Require all grantedを削除する事で正常に動作が確認できたと言うオチでした。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

follow us in feedly