AD FS のトラブルシューティング - Fiddler - WS-Federation
手順 1 と 2
これがトレースの開始です。 このフレームには、次の情報が表示されます:
要求:
- 証明書利用者への HTTP GET (https://sql1.contoso.com/SampApp)
応答:
- 応答は HTTP 302 (リダイレクト) です。 Response ヘッダーのトランスポート データは、リダイレクト先を示します (https://sts.contoso.com/adfs/ls)
- リダイレクト URL には wa=wsignin 1.0 が含まれているので、RP アプリによって WS-Federation サインイン要求が作成され、AD FS の /adfs/ls/ endpointに送信されたというメッセージが表示されます。 これはリダイレクト バインドと呼ばれる。
手順 3 と 4
要求:
- AD FS (sts.contoso.com)サーバーへの HTTP
応答:
- 応答は、資格情報の入力を求めるプロンプトです。 これは、フォーム認証を使用している場合を示します
- 応答の WebView をクリックすると、資格情報プロンプトが表示されます。
手順 5 と 6
要求:
- ユーザー名とパスワードを含む HTTP POST。
- 資格情報を提示します。 要求の生データを見て、資格情報を確認できます
応答:
- 応答が見つかり、MSIAuth で暗号化された Cookie が作成されて返されます。 これは、クライアントによって生成された SAML アサーションを検証するために使用されます。 これは "認証クッキー" とも呼ばれるので、AD FSがIdp の場合にのみ表示されます。
手順 7 と 8
要求:
- 認証が済むので、AD FSサーバーに対して別の HTTP GET を実行し、認証トークンを提示します
応答:
- 応答は HTTP OK です。これは、指定AD FSに基づいてユーザーが認証されたという意味です
- また、3 つの Cookie をクライアントに設定し戻します
- MSISAuthenticated には、クライアントが認証された日時の base64 でエンコードされたタイムスタンプ値が含まれています。
- MSISLoopDetectionCookie は、フェデレーション サーバーへの無限リダイレクト ループに終わったクライアントを停止するために、AD FS 無限ループ検出メカニズムによって使用されます。 Cookie データは、base64 でエンコードされたタイムスタンプです。
- MSISSignout は、SSO セッションにアクセスした IdP とすべての RP を追跡するために使用されます。 この Cookie は、サインアウトがWS-Federationするときに使用されます。 このクッキーの内容は、base64 デコーダーを使用して確認できます。
手順 9 と 10
要求:
- HTTP POST
応答:
- 応答は Found です
手順 11 と 12
要求:
- HTTP GET
応答:
- これに対する応答は "OK" (はい) です