Мы пытаемся настроить входящий единый вход SAML от стороннего производителя на наш тестовый веб-сайт с использованием ADFS. Мы советуем нашим партнерам использовать RelayState для выбора правильной проверяющей стороны после обработки ответа SAML. Если бы вы использовали привязку HTTP POST, отправленная форма выглядела бы так:
<form method="POST" name="ssoform" target="_blank" action="https://<ADFS server>/adfs/ls/">
<input name="SAMLResponse" type="hidden" value="***omitted for brevity***">
<input name="RelayState" type="hidden" value="RPID=https://<test site URL>/">
<button class="btn btn-secondary" id="ssoformsubmit" type="submit">Launch!</button>
</form>
Мы обнаружили, что использование RPID = в RelayState имеет решающее значение для того, чтобы ADFS перенаправляла пользователя на правильный веб-сайт.
Наш партнер по этому SSO-соединению не может отправить RPID = в своем RelayState. Их программное обеспечение федерации (PingFederate) требует, чтобы RelayState был действительным URL-адресом. В PingFederate есть настройка для удаления этого требования, но наш партнер не хочет включать это из-за проблем безопасности.
Мы ищем альтернативу использованию "RPID =" в RelayState , Что-то вроде состояния ретрансляции по умолчанию для доверия провайдера утверждений, так что он всегда перенаправляет нужной проверяющей стороне. Предоставляет ли ADFS что-то подобное или какой-либо другой метод для достижения входящего единого входа SAML без RelayState?