Переадресация состояния ADFS не работает с инициированным idp входом с другим провайдером - PullRequest
0 голосов
/ 07 апреля 2020

Мы создали федерацию идентификации между нашей средой ADFS и другим IDP (я думаю, Siteminder). И SP и инициированный IDP вход работают нормально. Теперь мы хотим предоставить всем пользователям ссылку, которая аутентифицирует их через инициированный idp вход и перенаправляет их на указанный c URL. Наш провайдер идентификации предлагает, чтобы мы добавили параметр запроса RelayState в конец инициируемого идентификатора idp по запросу, чтобы получить этот запрос:

https://<idp-sso-endpoint>?SPID=https://<adfs-server>/adfs/services/trust&amp;ProtocolBinding=urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST&RelayState=<target-url>

, но на нашем сервере adfs возникает следующая ошибка:

Microsoft.IdentityServer.Web.CookieManagers.InvalidContextException: MSIS7001: контекст пассивного протокола не найден или недействителен. Если контекст был сохранен в куки, куки, которые были представлены клиентом, были недействительными. Убедитесь, что браузер клиента настроен на прием файлов cookie с этого веб-сайта, и повторите этот запрос

Кто-нибудь знает, как использовать параметр RelayState с IDP и ADFS в качестве поставщика услуг?

Спасибо.

1 Ответ

0 голосов
/ 08 апреля 2020

Вы не можете просто поместить URL в конце ретрансляции. Это должно иметь смысл для получателя. См. https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/jj127245 (v = ws.10) # требуемая конфигурация для получения подробных сведений о том, как кодировать это правильное значение, чтобы убедиться, что AD FS получает что-то, что имеет смысл.

Инструкции по кодированию приведены ниже. допустимый, но способ настройки AD FS будет зависеть от версии AD FS. В более поздних версиях AD FS в командлете set-adfsproperties имеется переключатель EnableRelayStateForIdpInitiatedSignOn, который можно переключать.

...