#saml #service-provider
#saml #поставщик услуг
Вопрос:
Проблема: сайт SP xyz.com/A получает запрос на ресурс xyz.com/B требуется аутентификация. Запрос SAML с relay_state=xyz.com/B отправляется iDP. Пользователь перенаправляется на сайт iDP через SAML / SSO, а затем на idp.com .
Я хочу реализовать ссылку, которая позволяет пользователю отменить свой запрос на xyz.com/B и просто верните его обратно туда, где он просматривал xyz.com/A . Поскольку было перенаправление SAML, я не могу использовать заголовок referer в idp.com чтобы узнать, откуда пришел пользователь. В идеале я хочу отправить returnURL=xyz.com/A внутри моего запроса SAML.
Итак, вопрос в том, есть ли такой способ?
Спасибо
Ответ №1:
Я не знаю стандартного SAML-способа, которым вы могли бы достичь этого. Вероятно, вам придется полагаться на пользовательские расширения (например, дополнительные параметры строки запроса), чтобы сообщить IdP, куда перейти при отмене.
В качестве альтернативы (и не так элегантно, но практично) вы могли бы использовать JavaScript, чтобы отправить пользователя на пару шагов назад в истории? Например.:
window.history.go(-2)
Ответ №2:
IDP может вернуть ответ SAML в SP. В ответе SAML вы можете использовать элемент Status, чтобы указать, что пользователь отменил процесс аутентификации. В качестве кода состояния верхнего уровня вы можете использовать urn:oasis:names:tc: SAML:2.0:Responder. Вы можете использовать свой собственный код состояния в качестве кода состояния второго уровня.