apache2.4での.htaccessを使ったBasic認証


非常に簡単な事のはずなのに探してもサクッとコピペ出来るものが見つけられなかったのでメモ

AuthUserFile [htpasswdファイルを置いたフォルダ]/.htpasswd
AuthGroupFile /dev/null
AuthName "Input ID and Password."
AuthType Basic
Require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
        Require all denied
</Files>

後、よくあるのは、.htaccessファイルの読み込みを許可する設定をしてないとかですかね。
httpd.confとか、個別confファイル内のDirectory設定内で
AllowOverrideをnoneとかにしてると読まれないので
AuthConfigにしてあげてくださいね。

上の設定をざっくり説明すると
*AuthUserFile
ID、パスワードの記載されたファイル。作り方はhtpasswdとかで検索すればいくらでも出てくると思います。

*AuthGroupFile
ユーザをグループで区切ってアクセス制限したりに使いますが、使ったことないっす。

*AuthName
Basic認証のダイアログに表示される。。。Chromeされない。。。

*AuthType
認証の方式。Basic認証はなにかとセキリティ的に弱いのでしっかり作りたいのであれば調べてみたらいいと思いますが
そんなのApacheでやるなよっとも思う。

*require
パスワードファイル内でアクセスを許可するユーザの羅列。
ここでは全て許可してます。

*それ以下
パスワードファイルとかアクセス制限の方法とか、見えちゃまずいので全部アクセス拒否してます。
Require all denied
この辺が2.2と2.4で大きく違うので注意が必要です。