Я реализую SSO, где я являюсь поставщиком удостоверений, сейчас я могу успешно войти в сервисный центр. Но он ведет меня на домашнюю страницу. Я хочу указать URL целевой страницы, когда я отправлю ответ. Искали довольно много, но не смогли найти ничего убедительного. Не знаете, какой элемент ответа SAML несет URL-адрес целевой страницы или указан в форме, которую я должен указать. Использование java и opensaml-библиотек для генерации ответа.SSO - SAML, перенаправлять пользователя на указанную целевую страницу после успешного входа в систему
ответ
Хотя это не относится к спецификациям SAML, де-факто стандарт должен использовать элемент RelayState
для этого. Он добавляется как параметр в ответе в дополнение к параметру SAMLResponse
и значению URL-адреса landing
. Пример HTML-страница из http://en.wikipedia.org/wiki/SAML_2.0 для IDP с помощью POST
связывания для ответа:
<form method="post" action="https://sp.example.com/SAML2/SSO/POST" ...>
<input type="hidden" name="SAMLResponse" value="<response>" />
<input type="hidden" name="RelayState" value="<url>" />
...
<input type="submit" value="Submit" />
</form>
Edit:
Просто чтобы быть ясно, декларация RelayState
параметра части спецификации, и он включен, чтобы обеспечить минуя произвольно состояние между SP и IDP. Использование его для передачи URL-адреса, определяющего целевую страницу, не специфицируется в спецификации, а является стандартным использованием де-факто. Любое использование RelayState
в IDP-init-SSO будет зависеть от паритетного соглашения между IDP и SP, и это просто соглашение, которое имеет смысл, полезно и, таким образом, было широко принято.
Безопасно ли передавать незашифрованный URL. Термин SP дает мне «не найденный», предполагайте, что они не декодируют его в конце. Но он работает без кодирования. – user3391212
Извините, я хотел сказать, что на проводе он кодируется URL-адресом при передаче его в HTTP POST; размещая его дословно в форме HTML, браузер будет кодировать URL-адрес. Поэтому в примере, который я вам дал, вы поместили бы фактическое значение в '
gotcha! спасибо – user3391212
Как вы это сделали, я застреваю в задаче, в которой вы преуспеваете, Как вы создали saml –