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