Как реализовать SAML SSO - PullRequest
       4

Как реализовать SAML SSO

38 голосов
/ 30 апреля 2009

Как обычно применяется SAML SSO?

Я прочитал это (n.b. устарело) об использовании SAML с Google Apps и записи в Википедии о SAML .

Запись в Википедии рассказывает об ответах с помощью форм, содержащих детали SAMLRequest и SAMLResponse. Означает ли это, что пользователь должен физически отправить форму, чтобы перейти к единому входу?

В записи Google говорится об использовании перенаправлений, что мне кажется более очевидным. Тем не менее, в нем также говорится об использовании формы для ответа, которую пользователь должен отправить (хотя и говорится об использовании JavaScript для автоматической отправки формы).

Это стандартный способ сделать это? Использование перенаправлений и JavaScript для отправки формы?

Кто-нибудь знает какие-либо другие полезные ресурсы о том, как реализовать SSO между доменом Windows и веб-приложением J2EE. Веб-приложение находится в отдельной сети / домене. Мой клиент хочет использовать CA Siteminder (с SAML).

Ответы [ 3 ]

29 голосов
/ 03 мая 2009

Способ, которым это работает, заключается в том, что после аутентификации пользователя поставщик удостоверений SAML (IdP) отображает в браузере форму, содержащую ответ SAML - «действие» формы (то есть цель) является поставщиком услуг (SP). В HTML есть событие JavaScript onLoad, которое отправляет форму, поэтому чистый эффект состоит в том, что пользователь автоматически переносится из IdP в SP, ответ SAML в руке.

Единственный раз, когда пользователь должен щелкнуть что-либо, чтобы отправить форму, это если у него отключен JavaScript. В этом случае реализации SAML обычно предоставляют сообщение с кнопкой для нажатия в теге <noscript>.

Подробнее см. эту статью, которую я написал несколько лет назад - но обратите внимание, что "Lightbulb" давно устарел - для PHP SAML см. simpleSAMLphp .

Жаль, что ваш клиент хочет использовать CA SiteMinder - с открытым исходным кодом OpenAM (ранее известный как OpenSSO) делает это довольно легко.

6 голосов
/ 07 декабря 2011

Эта статья объясняет очень хорошо. Также есть примеры для разных платформ.

0 голосов
/ 02 мая 2009

Если Siteminder является проверяющей стороной, вам нужно написать собственный агент, чтобы взять артефакт SAML и создать SM-Session. В противном случае вам потребуется приобрести продукт, который уже имеет эту функциональность.

...