前提・実現したいこと
現在、Apacheサーバー上に、限定的にサイトを共有するために認証をかけようとしています。
構成は
example.com
-index.html
|- projectA
|- projectB
|- projectC
...
のように、それぞれのプロジェクトが公開ディレクトリルートの直下に置いてあります。
管理者である私はexample.com以下全てのファイルにアクセスするために、/etc/httpd/conf.d/以下でauth.confと.htdigestを設置してdigest認証をするように設定しました。(マスターキーとします)
また、それぞれのプロジェクトのルートディレクトリには、共有相手がアクセスするために.htaccessと.htdigestを設置し、digest認証を設定しました。(サブキーとします)
こうしてみると、認証範囲がネストされているせいか、以下のような不具合が起きました。
発生している問題・エラーメッセージ
project直下で設定したサブキーのみでしか、そのプロジェクトにアクセス出来なくなった。
example.comにアクセスすると、出てきた認証ダイアログにマスターキーを使ってログインしてindex.htmlが表示されるのはいいのですが、example.com/projectAにアクセスすると、そのサブキーでの認証を要求され、マスターキーでは認証されません。
設定ファイル
/etc/httpd/conf.d以下でのマスターキー設定
authconf
1<Directory "/var/www/html/example.com"> 2 AuthType Digest 3 AuthName "Private Auth" 4 AuthUserFile /etc/httpd/conf.d/.htdigest 5 Require valid-user 6</Directory>
text
1htdigest -c .htdigest "Private Auth" master 2# この後インタラクティブにパスワード設定し、.htdigestを生成
example.com/projectA以下でサブキー設定
htaccess
1AuthType Digest 2AuthName "Private Auth" 3AuthUserFile /var/www/html/example.com/projectA/.htdigest 4Require valid-user
text
1htdigest -c .htdigest "Private Auth" sub 2# この後インタラクティブにパスワード設定し、.htdigestを生成
試したこと
- basic認証でやってみる
- マスターとサブで、レルム("Private Auth")を変える(逆効果だと思うけど)
apacheの.confでのマスターキー設定をやめ、全てのプロジェクト直下で認証の設定をするときに、マスターキーとなる組み合わせも毎回設定する(ようなスクリプトを書く)といった妥協案がありますが、それを使わずなんとかうまく出来る方法はないのでしょうか。
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。