SAML запрос и ответ в JAVA - PullRequest
       12

SAML запрос и ответ в JAVA

3 голосов
/ 21 марта 2012

Сначала позвольте мне рассказать вам, какова моя ситуация
У меня есть 3 провайдера услуг и 1 провайдер идентификации. (т.е. я провайдер услуг, а также провайдер идентификации),Я хочу реализовать SSO с использованием SAML.
Я пишу запрос SAML следующим образом

 <samlp:AuthnRequest
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="identifier_1"
Version="2.0"
IssueInstant="2004-12-05T09:21:59Z"
AssertionConsumerServiceIndex="0">
<saml:Issuer>https://sp.example.com/SAML2</saml:Issuer>
<samlp:NameIDPolicy
  AllowCreate="true"
  Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>


Я могу правильно отправить запрос.Я не понимаю, каким должен быть ответ.В коде ответа есть много атрибутов, таких как дайджест, сертификат и т. Д.,.Кто они такие?

Есть ли какое-либо правило, согласно которому я должен следовать только протоколу SAML.Могу ли я создать свой собственный протокол, поскольку я являюсь Сервисом, а также провайдером идентификации?

1 Ответ

1 голос
/ 05 апреля 2012

Ниже приведен отрывок из Технического обзора SAML V2.0 .Документ действительно стоит посмотреть.После этого вы должны определить ваш бизнес-вариант использования, выбрать профиль для этого варианта использования и реализовать протокол, соответствующий этому профилю.Если профиль не существует - вы можете определить свой собственный протокол.Атрибуты запроса и ответа будут зависеть от профиля.

SAML состоит из компонентов стандартного блока, которые при объединении позволяют поддерживать ряд вариантов использования.Компоненты в основном разрешают передачу идентификационной информации, информации об аутентификации, атрибутах и ​​авторизации между автономными организациями, которые имеют установленные доверительные отношения.

Основная спецификация SAML определяет структуру и содержание как утверждений, так и протокольных сообщений, используемых для передачи этой информации.информация.

Утверждения SAML содержат заявления о принципале, который утверждающая сторона утверждает, что является правдой.Допустимая структура и содержание утверждения определяются XML-схемой подтверждения SAML.Утверждения обычно создаются утверждающей стороной на основе какого-либо запроса от проверяющей стороны, хотя при определенных обстоятельствах подтверждения могут быть доставлены проверяющей стороне незапрошенным способом.Сообщения протокола SAML используются для выполнения определенных SAML запросов и возврата соответствующих ответов.Структура и содержание этих сообщений определяются определенной XML-схемой протокола SAML.

Средства, с помощью которых протоколы связи или обмена сообщениями более низкого уровня (такие как HTTP или SOAP) используются для передачи сообщений протокола SAML междуучастники определяются привязками SAML.

Далее профили SAML определяются для удовлетворения конкретного случая использования в бизнесе, например, профиля SSO веб-браузера.Профили обычно определяют ограничения на содержание утверждений SAML, протоколов и привязок для решения бизнес-сценария совместимым образом.Существуют также профили атрибутов, которые не ссылаются на какие-либо протокольные сообщения и привязки, которые определяют, как обмениваться информацией атрибутов с использованием утверждений способами, которые соответствуют ряду распространенных сред использования (например, каталоги X.500 / LDAP, DCE).

...