Я реализовал свой сервис-провайдер и провайдер идентификации, следуя профилю SAML для единого входа в Интернет, используя привязку протокола HTTP POST. Однако меня немного смущает вопрос о том, как поставщик удостоверений будет предоставлять <AuthnStatement>
, если HTTP-запрос POST, исходящий от поставщика услуг, не привязан к сеансу на поставщике удостоверений.
Может ли кто-нибудь просветить меня, как можно это сделать?
Другой подход, который я мог бы использовать, - это привязка перенаправления HTTP, но для этого требуется вмешательство агента пользователя (т. Е. Браузера), часто с использованием агента пользователя просто в качестве промежуточного посредника для облегчения обмена сообщениями запрос-ответ. , Я бы предпочел использовать HTTP POST по этой причине, потому что обмен сообщениями происходит на стороне сервера, поэтому пользователь не видит ничего на своем экране.
Однако использование HTTP Redirect имеет для меня больше смысла в том, как я могу связать сеанс с запросом. Поскольку перенаправление HTTP облегчается через User-Agent, запрос к IdP будет иметь сеанс (если ранее был аутентифицирован). Что я не получаю, так это как отправить <AuthnRequest>
по перенаправлению HTTP. Ответ JST
Так что я немного растерялся и хотел бы услышать, что делают другие люди. Вот мои вопросы снова:
- Используя привязку протокола HTTP POST с опцией
IsPassive
<AuthnRequest>
, как связать запрос, сделанный поставщиком услуг, с сеансом на поставщике удостоверений? Другими словами, как провайдер идентификации узнает, кто делает запрос, если POST исходит от провайдера услуг, который технически является анонимным сеансом?
- При использовании привязки протокола перенаправления HTTP, как я могу отправить
<AuthnRequest>
провайдеру идентификации, если я использую перенаправление HTTP? Ответ JST
UPDATE
Извините за путаницу, если мне было неясно в моем объяснении выше. Я реализую IdP и SP (через плагин). IdP - это существующее приложение, для которого я хочу, чтобы SP (сторонняя система) использовался для аутентификации (т. Е. Web SSO). Я сейчас разрабатываю простой PoC. SP на самом деле является сторонним приложением Spring, для которого я разрабатываю плагин для выполнения операций SAML.
Я должен был упомянуть, что я пытаюсь сделать это, используя опцию IsPassive
, что означает, что пользователь-агент не вступает в игру во время обмена сообщениями. Это просто катализатор, который запускает SAML-вечеринку. Правильно? Имея это в виду, учитывая, что пользователь является анонимным на шаге 1, что SP отправляет IdP, чтобы позволить IdP выяснить, аутентифицирован ли уже пользователь? Из-за IsPassive HTTP POST не отправляется через User-Agent
UPDATE
Пересмотренный вопрос 1 : Как IdP разрешает Принципала, когда AuthnRequset
отправляется с включенной опцией IsPassive
?
Прямо из документа «Профили SAML 2.0», стр. 15, строки с 417 по 419:
На шаге 4 идентифицируется принципал
личностью обеспечить каким-то образом
выходит за рамки этого профиля.
Что мне действительно нужно, так это объяснение того, как реализовать some means
.