FiddlerでBasic認証のプロキシ環境を構築する

FiddlerでBasic認証のプロキシ環境を構築する

FiddlerでBasic認証のプロキシ環境を構築する

FiddlerはHTTP/HTTPS通信をキャプチャーするツールとして有名ですが、端末のプロキシサーバーとして使用することができ、疑似的なBasic認証の環境を構築できます。FiddlerをBasic認証サーバーとして環境構築する手順をまとめてみました。

設定方法

前提:

手順:

  1. まずBasic認証で使用するためのユーザークレデンシャル(ユーザー名とパスワード)を設定します。ユーザークレデンシャルはbase64エンコードする必要があるので、FiddlerのTextWizardを [Tools] ->
[TextWizard] から開きます。

  1. TextWizardの上段にユーザークレデンシャルを以下の書式で入力します。
<ユーザー名>:<パスワード>

この例では以下で設定してます:

  • ユーザー名: testUser
  • パスワード: testPass
  1. base64エンコードされた文字列がTextWizardの下段に自動入力されるので、その文字列をコピーします。
  1. Fiddlerの [QuickExec] に以下を入力し、エンターを押下します。
prefs set fiddler.proxy.creds <手順3にてbase64エンコードした文字列>

分かりずらいかもしれませんが、QuickExecは画面左下のこちらです。

  1. [Rules] -> [Require Proxy Authentication] を選択し、プロキシ認証を有効化します。

これで準備完了です!

あとは、[File] -> [Capture Traffic] を選択して、通信キャプチャーを有効化した状態で、ブラウザからサイトにアクセスしてみましょう。ブラウザ上でプロキシ認証を通すよう促されます。

手順2で設定したユーザークレデンシャルを入力すると、認証を通しページが見れるようになります!

使用用途

で、ここまで設定手順を書いといてアレですが、いったい何に使うの?という話をします。正直、この機能の使用用途はものすごく限られていると思いますが、私はデスクトップアプリがプロキシのBasic認証に対応しているかの確認に使用しました。

ブラウザに関しては特に気にする必要もないと思いますが、ことデスクトップアプリに関しては、ものによってはプロキシのBasic認証に対応しておらず、プロキシを通した通信が行えないという場合があります(以下は、とあるBasic認証に未対応なアプリで通信した際のアプリログ)。

---> (内部例外 #0) System.Net.Http.HttpRequestException: この要求の送信中にエラーが発生しました。 ---> System.Net.WebException: リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です
   場所 System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
   場所 System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
   --- 内部例外スタック トレースの終わり ---<---

デスクトップアプリがBasic認証に対応しているか検証するうえで、手っ取り早く環境構築ができる機能になると思いました。