web-dev-qa-db-ja.com

リクエストに基本認証を追加するHTTPプロキシを作成する最も簡単な方法は何ですか?

基本HTTP認証を必要とするサーバーが提供するサービスを使用しようとしていますが、使用しているアプリケーションは認証をサポートしていません。私がやりたいのは、認証なしのアプリケーションがプロキシを介して(認証情報を追加する)認証を必要とするサーバーに接続できるようにするプロキシを作成することです。これは可能だと確信していますが、プロキシの数に圧倒され、これを行う方法の答えを見つけることができませんでした。

基本的に、私がやりたいのは、プロキシにこのURLを提供させることだけのようです。

http://username:password@remoteserver/path

このURLとして:

http://proxyserver/path

Linuxで実行できますが、Windowsでも実行できればプラスです。オープンソースまたは少なくとも無料は必須です。大きなプラスは、セットアップがかなり簡単かどうかです。

4
joshdoe

基本認証は通常、「username:password」のBase64エンコード文字列とHTTPヘッダー「Authorization」です。

以下をApache2vHostに追加することで、問題がないはずです。

<Location /path>
    RequestHeader set Authorization "Basic <base64string>"
</Location>

ProxyPass /path http://backend/path
ProxyPassReverse /path http://backend/path

「username:password」の部分は http://www.motobit.com/util/base64-decoder-encoder.asp (たとえば)でbase64エンコードできます。上記の例では、mod_headersとmod_proxyが必要です(Apache2ではLinuxとWindowsの両方で使用できるはずです)。

3
hexa

Windows上のWinGateなど、他のいくつかのパッケージで要求を変更(ヘッダーを追加/変更)することもできます。

ブラウザのポップアップダイアログが表示された場合、これは通常、プロキシから407応答、またはエンドサーバーから401応答を受け取っていることを意味しますが、これは必ずしもHTTP基本認証の使用を示しているわけではありません。

認証チャレンジフィールドをログに記録するか、wiresharkを使用して何が起こっているかを確認できます。

0
Adrien