web-dev-qa-db-ja.com

Apacheの基本認証には、禁止されていないグループが必要です

ユーザーとグループで基本認証を設定しています

AuthType Basic
AuthName "GSD Dev Area"
AuthUserFile /coding/conf/passwords/gsdesign/htpasswd
AuthGroupFile /coding/conf/passwords/gsdesign/groups    
Require valid-user      

そして今、私はグループのためだけにアクセスでフォルダを保護したい

require group myGroup

それは機能しますが、1つの問題があります。そのフォルダへのアクセスを許可しなかった場合、再びログインウィンドウが表示され、禁止されています。これどうやってするの。

どうもありがとう。

後で編集すでに有効なユーザー名でログインしていますが、自分が所属していないrequireグループがあるエリアにアクセスすると、ログインボックスの代わりに認証が拒否されます。

1
Gabriel Solomon

これを行うことは可能かもしれませんが、Apacheのカスタムハンドラーを作成する必要があります。これは、C、Perl、Python、またはApacheハンドラーAPIの他のバインディングのいずれか)と書くことができます。

HTTP認証の標準的な動作は、認証情報のない両方の要求と誤った詳細に対して401認証が必要な応答を返すことです。ブラウザは、401応答を受け取るたびに、ログインダイアログを表示します。認証情報のないリクエストには、401 Authentation Required応答で応答し、不正な認証には403Forbidden応答で応答する必要があります。これで問題が解決するはずです。

1
David Pashley

質問を理解できませんが、無効なユーザー名とパスワードの組み合わせを指定すると、ブラウザが「アクセスが拒否されました」と表示されるのではなく、ウィンドウを再度ポップアップします。これはブラウザの機能です。資格情報を正しく取得するか、[キャンセル]をクリックするまで(その時点で実際にアクセス拒否ページが表示されます)、資格情報の入力を求められます。私の知る限り、これを変更する唯一の信頼できる方法は、AuthType Basicを使用する代わりに、自分で認証を行うことです。

ちなみに、決して、決して AuthType Basicを使用して、ページがhttps経由で提供されない限り、気になるものをすべて保護します。 AuthType Basicは資格情報をプレーンテキストで送信するため、暗号化するにはSSLレイヤーが必要です。

1
andy