Проблема ADFS RelayState - PullRequest
       9

Проблема ADFS RelayState

1 голос
/ 23 апреля 2019

Я использую PingFederate для единого входа, инициированного SP, и ADFS 3.0 для аутентификации пользователя.Он отображает страницу входа, где пользователь вводит учетные данные.Это происходит только в том случае, если страница входа в систему простаивает в течение 10 или более минут, а затем, когда пользователь нажимает кнопку входа, появляется следующее сообщение об ошибке.Если логин до 10 минут, проблем нет.Я заметил, что URL страницы входа в систему имеет направляющую RelayState.Во время успешной аутентификации он создает файл cookie MSISContext вместе с приложением RelayState.Когда происходит ошибка, из того, что я прочитал в Интернете, ответ возвращается в ADFS, ADFS проверяет наличие cookie с новым именем RelayState, которого не существует.Что я могу сделать, чтобы решить эту проблему, когда страница входа в систему простаивает в течение 10 или более минут.Есть ли значение времени ожидания, которое я могу где-то изменить?

Обнаружена ошибка во время пассивного запроса федерации.

Дополнительные данные

Имя протокола: Saml

Проверяющая сторона:

Сведения об исключении: Microsoft.IdentityServer.Web.CookieManagers.InvalidContextException: MSIS7001: Пассивконтекст протокола не найден или недействителен.Если контекст был сохранен в куки, куки, которые были представлены клиентом, были недействительными.Убедитесь, что браузер клиента настроен на прием файлов cookie с этого веб-сайта, и повторите этот запрос.на Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.GetOriginalRequestFromResponse (ProtocolContext контексте, булева deleteCookie) при Microsoft.IdentityServer.Web.PassiveProtocolListener.ProcessProtocolRequest (ProtocolContext protocolContext, PassiveProtocolHandler ProtocolHandler) в Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext (WrappedHttpListenerContextконтекст)

1 Ответ

1 голос
/ 24 апреля 2019

RelayState добавляется к имени куки. Если состояние ретранслятора изменится, в ответе будет проверен файл cookie с новым несуществующим именем RelayState. Убедитесь, что он не изменился и убедитесь, что вы включили RelayState в ADFS.

Существуют различные свойства службы, которые также могут потребоваться в зависимости от версии Windows Server. Смотрите темы ниже:

Например,

AD FS в Windows Server 2012 R2 содержит файл %systemroot%\ADFS\Microsoft.IdentityServer.Servicehost.exe.config. Если это то, что вы используете, создайте элемент с тем же синтаксисом, что и для элемента файла web.config: <useRelayStateForIdpInitiatedSignOn enabled="true" />. Включите этот элемент как часть <microsoft.identityserver.web> раздела файла Microsoft.IdentityServer.Servicehost.exe.config.

https://social.technet.microsoft.com/Forums/Lync/en-US/8d692a29-92e0-47e0-be70-d7f9335ab95a/adfs-30-relay-state-issue?forum=winserverDS

https://social.msdn.microsoft.com/Forums/en-US/25239ff7-a33d-4f3e-a7a8-5a3c47d733f7/relaystate-support-in-adfs-30?forum=Geneva

https://nzpcmad.blogspot.com/2016/01/this-post-follows-on-from-idp-initiated.html

...