Воспроизведение токена все еще возможно даже после реализации DefaultTokenReplayCache в WIF - PullRequest
0 голосов
/ 29 октября 2011

Мне удалось создать подкласс DefaultTokenReplayCache и заставить его работать в моем приложении MVC. При этом правильно определяются токены, которые будут воспроизведены из IDP в RP с помощью Fiddler или путем нажатия стрелки «Назад» и повторной отправки.

Мое намерение теперь состоит в том, чтобы предотвратить кэшированные повторы, когда присутствует файл cookie FedAuth, и этот сеанс уже вышел из системы.

Например:

DefaultTokenReplayCache правильно определяет, когда воспроизводится этот ответ:

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......

Вопрос

Как я могу гарантировать, что WIF больше не будет разрешать определенный cookie-файл FedAuth после того, как эта сессия будет завершена?

Ответы [ 2 ]

0 голосов
/ 01 декабря 2017

Вам необходимо добавить tokenReplayDetection в элемент identityConfiguration на проверяющей стороне.

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

-Atli

0 голосов
/ 31 октября 2011

Как вы выходите из системы?Обычно вам необходимо вызвать FederatedAuthentication.WSFederationAuthenticationModule.SignOut

, чтобы очистить все куки-файлы FedAuth.Обратите внимание, что при этом не удаляются другие файлы cookie, которые вы можете установить в своем приложении.

...