基本的に私のシナリオでは、アクセスするためにハードコードされた単一のユーザー名とパスワードが必要な内部Webサイトがあります。オフにされ、変更のみ)。私はさまざまな理由(ポートの隠蔽、URLの単純化、NATの単純化など)のために、このWebサイトをリバースプロキシを通して公開しています。Apache2リバースプロキシは、BasicAuthが必要ですが、ユーザーからこれを隠す必要があります
しかし、私がやりたいものをというように、認証を処理するようにApacheを使用することができます:
- 私が持っていないすべての人へ
単一パスワードを与えること -
私は内部ユーザーの場合は、ApacheのにBasicAuth -
を使用して、複数のユーザ名とパスワードを持つことができ、私は
EDIT:豊かな認証についての第二の部分は、ここでnew question
に移動されたのです多かれ少なかれ私が今持っているもの:
<VirtualHost *:80>
ServerName sub.domain.com
ProxyPass /http://192.168.1.253:8080/endpoint
ProxyPassReverse/http://192.168.1.253:8080/endpoint
# The endpoint has a mandatory password that I want to avoid requiring users to type
# I.e. something like this would be nice (but does not work)
# ProxyPass /http://username:[email protected]:8080/endpoint
# ProxyPassReverse/http://username:[email protected]:8080/endpoint
# Also need to be able to require a password to access proxy for people outside local subnet
# However these passwords will be controlled by Apache using BasicAuth, not the ProxyPass endpoint
# Ideas?
</VirtualHost>
これは有望ですが、ローカル以外のリクエストの場合はMASTERパスワードを求めたくありません。私は基本的なAuth passwdリストを維持し、エンドポイントがいくつかの異なるパスワード見たことがない。これはアフリカの権利をしませんか? –
最初の(無条件、つまりSetEnvIfと 'localrequest'なしの)バリアント、つまり 'RequestHeader set Authorization' Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ == "'を使用してください。リバースプロキシは常にマスターパスワードで認証され、ユーザーは常に他のパスワードを使用してRPに接続します。 – vladr
私はSetEnvIfを使ってオリジナルの提案を試み、BasicAuthを動作させようとしましたが、いずれの方法も成功しませんでした。私は正常にプロキシを介してパスワードを無効にすることができますが、条件の種類に基づいて要求の種類に基づいています。 –