私はWIFを探求し始めましたが、次のことに疑問があります。
Windows Identification Foundation [WIF]で、セキュリティトークンサービス[STS]を調べて、フェデレーション認証トークンが保存されている場所を知りたいですか?
私はそれがブラウザのクッキーにあると思います、もしそうなら、誰かがそれについての洞察を私に教えてくれますか?
私はWIFを探求し始めましたが、次のことに疑問があります。
Windows Identification Foundation [WIF]で、セキュリティトークンサービス[STS]を調べて、フェデレーション認証トークンが保存されている場所を知りたいですか?
私はそれがブラウザのクッキーにあると思います、もしそうなら、誰かがそれについての洞察を私に教えてくれますか?
この質問に対する答えを見つけるために、'Fiddler' Web デバッガーを使用しました。アプリケーションSecureAppの名前が で、STS の名前が であるとしますSecurePortal。
ブラウザを に向けたときに最初に行われるのSecureAppは、認証されているかどうかを確認することです。SecurePortalそうでない場合は、にログインしていることを示すクエリ文字列を使用して、すぐに にリダイレクトされSecureAppます。
でログインするとSecurePortal、WIF フレームワークは、正常にログインしたことを示す値を含む「隠し」HTML フィールドを含むHttpResponseからを生成します。これらの値は、 の設定に基づいて署名または暗号化される場合があります。これらの値に加えて、ブラウザが値を に送信するための Javascript コードが記述されています。これらの値が によって検証されると、フレームワークは、ログインしていることを示す Cookie を書き込みます。私の経験では、Cookie の名前は「FedAuth」で始まります。この時点で、 内のページにアクセスできるようになりました。SecurePortalSecurePortalSecureAppSecureAppHttpResponseSecureApp
また、フレームワークには、設定した Cookie が手動で削除されるのを防ぐ何らかの方法があるように思われることも指摘したいと思います。
理解を深めるために、Web デバッガーを使用して、このプロセスが自分で発生するのを観察することをお勧めします。
簡単に言えば、トークンは最初HttpResponseに STS の としてブラウザに渡され、次にアプリケーションの Cookie として再びブラウザに渡されます。
WIF は、トークンの「セッション モード」もサポートしています。その場合、トークンはサーバーに保持され、(はるかに小さい) ハンドルのみがブラウザーに渡されます。帯域幅を考慮している場合に特に便利です。
これに関する Vittorio の投稿を参照してください: WIF のセッション モード
さらに参照を追加しました:
最後の PDC での Hervey のセッションもこれをカバーしています。