SAML および SharePoint と共に Fiddler を使用する場合に認証の 3 回の試行に対処する方法

原文の記事の投稿日: 2012 年 12 月 3 日 (月曜日)

Eric Lawrence が Fiddler に関するブログ投稿の 1 つでこのトピックに触れていますが、自分が探しているものがわかっていないと見つけ出すのは難しいため、ここで SharePoint に関する工夫を付け加えます。Web サイトに関する問題がある場合は、Fiddler を使用して状況を把握するようによくお勧めしています。特に SAML 認証では、このツールは認証に関する問題を把握するうえで役立ちます。ただし、2010 年ごろに認証バインドの処理方法について行った変更により、このタスクがそのままでは不可能ともいえる状態になってしまいました。そのため、Fiddler の実行中に SharePoint サイトに対して SAML で認証しようとすると、資格情報を入力するように 3 回求められた後、IIS でエラー ページが表示されます。

この問題を回避するために、Fiddler に追加する必要があるスクリプトがあります。スクリプトを追加するには、Fiddler を開きます (私はバージョン 4.4.1.1 を使用しています。このツールはかなり頻繁に変更されるため、お使いの UI は少し異なる可能性があります)。[Rules] (ルール) の [Customize Rules] (ルールのカスタマイズ) メニューに移動して、OnPeekAtResponseHeaders 関数が見つかるまでスクリプトを下にスクロールします。そこに、この認証に関する問題に対処するための少量のコードを追加できます。まず、追加するコードを示します。

if (oSession.isHTTPS && oSession.responseCode == 401)
{
// To use creds other than your Windows login credentials,
// set X-AutoAuth to "domain\\username:password"
oSession["X-AutoAuth"] = "default";
oSession["ui-backcolor"] = "pink";
}

ここで特に注目してほしいのは、このスクリプトが認証要求に対して Windows 資格情報を使用することを意図している点です。また、このスクリプトでは Fiddler のウィンドウをピンク色にするように認証プロンプトの背景色が設定されますが、もちろんその部分は変更または削除できます。認証時に別の資格情報セットを使用する場合は、スクリプトで説明されているように、"default" ではなくドメイン\\ユーザー名を指定できます。この方法は完全ではありませんが、少なくとも ADFS には有効で、Fiddler のトレースをまったく実現しない場合と比べるとはるかに役立ちます。

詳細については、この内容に関する Eric の投稿 (http://blogs.msdn.com/b/fiddler/archive/2011/09/04/fiddler-http-401-authentication-workaround-to-support-channel-binding-tokens-removing-endless-prompts.aspx (英語)) を参照してください。

これはローカライズされたブログ投稿です。原文の記事は、「Using Fiddler With SAML and SharePoint to Get Past the Three Authentication Prompts」をご覧ください。