Я внедряю систему единого входа, где я являюсь поставщиком удостоверений, прямо сейчас я могу успешно войти в систему поставщика услуг. Но это приводит меня на домашнюю страницу. Я хочу указать URL целевой страницы при отправке ответа. Искали довольно много, но ничего убедительного не нашли. Не совсем знаю, какой элемент ответа SAML содержит URL целевой страницы или находится в той форме, которую я должен указать. Использование библиотек java и opensaml для генерации ответа.
SSO - SAML, перенаправить пользователя на указанную целевую страницу после успешного входа в систему
Ответы (1)
Хотя этого нет в спецификациях SAML, стандартом де-факто является использование для этого элемента RelayState
. Он добавляется в качестве параметра в ответ в дополнение к параметру SAMLResponse
и значению landing
URL. Пример 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>
Изменить:
Для ясности, объявление параметра RelayState
является частью спецификаций и включено, чтобы разрешить передачу произвольного состояния между SP и IDP. Использование его для передачи URL-адреса, определяющего целевую страницу, не определено в спецификации, но фактически является стандартным использованием. Любое использование RelayState
в IDP-init-SSO будет зависеть от парного соглашения между IDP и SP, и это просто соглашение, которое имеет смысл, полезно и поэтому широко применяется.
<url>
. Отредактирую текст.
- person Hans Z.; 23.01.2015
RelayState
абсолютно находится в спецификации привязок для SAML 2.0 (т. е. он сильнее, чем стандарт де-факто). Все привязки HTTP POST, HTTP Redirect и HTTP Artifact включают правила для RelayState
, хотя ни один из них не требует его использования. .
- person Scott Heaberlin; 24.01.2015
RelayState
стандартизировано, а его значение - нет.
- person Hans Z.; 25.01.2015