2011-10-29 2 views
0

DefaultTokenReplayCacheをサブクラス化してMVCアプリケーションで動作させることができました。これは、FiddlerによってIDPからRPに再生されるトークンを正しく検出するか、Back矢印を押して再送信することによってトークンを正しく検出します。WIFでDefaultTokenReplayCacheを実装した後でもトークンの再生が可能

私の意図は、FedAuth Cookieが存在し、そのセッションがすでにサインアウトしているときにキャッシュされたリプレイを防ぐことです。

POST http://127.0.0.1:2600/Account/SignIn HTTP/1.1 
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* 
Accept-Language: en-US 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2) 
Content-Type: application/x-www-form-urlencoded 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
Content-Length: 6679 
Host: 127.0.0.1:2600 
Pragma: no-cache 

wa=wsignin1.0&wresult=%3Ct%3ARequest ..... 

しかし、私がサインアウトした場合、以下のセッションは

GET http://127.0.0.1:2600/ HTTP/1.1 
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* 
Accept-Language: en-US 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2) 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
Host: 127.0.0.1:2600 
Pragma: no-cache 
Cookie: FedAuth=77u/PD94bWwgd...... 

質問

を再生することができます:

DefaultTokenReplayCacheが正しく、この応答が再生されるたびに決定されます。たとえば

セッションがログアウトされたら、WIFが特定のFedAuth Cookieを許可しないようにするにはどうすればよいですか?

答えて

0

どのようにログアウトしますか?あなたは一般的にFederatedAuthentication.WSFederationAuthenticationModule.SignOutすべてFedAuthクッキーをクリアします

を呼び出す必要があります。これにより、アプリで設定した他のCookieは消去されません。

+1

私はあなたが記述どおりに物事をやって、はい、クッキーがクリアされている、しかし私のキオスクブラウザに戻る矢印を押して(または単に再生するフィドラーを使用)することが可能ですサインアウトされたセッションは再びアクティブ/有効になります。問題は、アクティブなFedAuth Cookieを確認し、「閉じた」セッションを許可しないことです – LamonteCristo

0

信頼関係者のidentityConfiguration要素にtokenReplayDetectionを追加する必要があります。

<system.identityModel> 
    <identityConfiguration ...> 
     <tokenReplayDetection enabled="true"/> 
     ... 

-Atli

関連する問題