apacheで
- Basic認証のディレクティブは合っている
- Basic認証のIDとパスワードは合っている
- Basic認証が画面もでる
という状態なのに認証に失敗するという状況になり、悩みました。
Basic認証のディレクティブ
AuthUserFile /home/admin/.private AuthName "ByPassword" AuthType Basic require hoge
error_logのメッセージ
failed, reason: require directives present and no Authoritative handler.
http://httpd.apache.org/docs/2.2/ja/mod/core.html#require
を見ながら、しばらく悩んだところ、原因はディレクティブの
require hoge
ではなく、
require user hoge
であることに気が付きました。
こうする以前は、
require valid-user
としていたので、ユーザごとに制限する場合はvalid-userのかわりに
ユーザ名を書けばよいかと安直に修正してしまったのがハマった主因でした。