SAML-аутентификация с использованием salesforce.com

В нашем веб-приложении мне нужен поставщик удостоверений (IdP), который аутентифицирует пользователей с помощью salesforce.com.

Я закончил с настройками единого входа на сайте salesforce.com.

После этих настроек salesforce предоставит файл метаданных.

Скажи пожалуйста:

  • Есть ли какие-то другие настройки, которые мне нужно сделать на сайте salesforce.com?
  • Что делать дальше в моем Java-коде для аутентификации пользователя?

person Muhammad Imran Tariq    schedule 09.05.2011    source источник


Ответы (1)


Если у вас есть Salesforce.com, выступающий в качестве поставщика услуг SAML, вам необходимо будет отправить утверждения SAML от вашего IdP на Salesforce.com для аутентификации пользователей. В основном это подписанные большие двоичные объекты XML, которые передаются в HTTP Redirect или HTTP POST для аутентификации пользователей.

Со стороны конфигурации Salesforce.com это довольно просто. Вот пример того, что требуется на этой стороне для настройки с помощью решения OpenSSO: https://indirat.wordpress.com/salesforce/

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

Как вы справляетесь с этим в «своем Java-коде» - огромный вопрос, на который есть множество ответов. Вы должны использовать проверенное решение SAML в качестве своего IdP, а не пытаться реализовать спецификацию SAML самостоятельно. Существует несколько библиотек с открытым исходным кодом, таких как OpenSAML, которые хорошо работают в контексте Java. , но для интеграции потребуются значительные усилия. Коммерческие решения, такие как решения, предлагаемые поставщиками решений для единого входа и федерации (например, Ping Identity), значительно упрощают работу, если вы есть бюджет.

person Scott T.    schedule 10.05.2011
comment
Я использую SAML2.0. Подскажите, пожалуйста, как сделать SAML Assertion. Что мне нужно для утверждения? т.е. (файл метаданных, идентификатор пользователя и т. д.) - person Muhammad Imran Tariq; 10.05.2011
comment
Опять же, это очень сложный вопрос с огромным ответом. Основная спецификация SAML 2.0 точно определяет, что входит в утверждение SAML (docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf) вы будете использовать профиль SSO, который определяется SAML 2.0. Спецификация профилей (docs.oasis-open .org / security / saml / v2.0 / saml-profiles-2.0-os.pdf). Опять же, то, как вы формируете утверждения и ответы, зависит от того, какое решение SAML вы используете, или от того, создаете ли вы его самостоятельно. Например, с OpenSAML: wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUserManual / а> - person Scott T.; 11.05.2011
comment
Спасибо за такую ​​хорошую помощь. Я изучаю это. Поскольку моя задача - это IDP. Пожалуйста, подтвердите этот поток. Я проанализирую файл метаданных, предоставленный salesforce, и создам утверждение SAML, которое будет отправлено в Salesforce для аутентификации. Это то, что мне нужно сделать, чтобы выполнить свою задачу? - person Muhammad Imran Tariq; 11.05.2011
comment
Метаданные сообщат вам информацию о начальной конфигурации (например, любые подписывающие сертификаты и URL-адрес службы потребителей утверждений). Вам не нужно анализировать его в своем приложении, вы можете просто вручную взять из него то, что вам нужно, так как это может не сильно измениться. Основная часть вашей работы будет заключаться в следующем: 1.) Получение SAML AuthnRequests от SFDC по вашему настроенному URL-адресу IdP (настроенному в конфигурации SSO SFDC), 2.) Аутентификация пользователя, 3.) Отправка подписанного ответа SAML с утверждением обратно в SFDC через HTTP POST / перенаправление на URL-адрес службы потребителей утверждений. - person Scott T.; 11.05.2011
comment
@ Скотт Томилсон. Вы знаете, что я создаю IDP, например OpenSSO и OneLogin. - person Muhammad Imran Tariq; 11.05.2011
comment
да. :-) Опять же, это потребует шагов 1-3, о которых я упоминал. - person Scott T.; 11.05.2011
comment
По этому URL-адресу доступны образцы: indirat.wordpress.com/salesforce, а также общий SAML здесь: en.wikipedia.org/wiki/SAML_2.0 (но все же следует применяется к SFDC, так как он соответствует SAML 2.0). - person Scott T.; 12.05.2011
comment
Я создал жестко закодированный ответ для отправки в SalesForce. Я подтвердил это через валидатор SF, и все в порядке. Теперь я хочу сделать этот ответ, используя библиотеки openSAML. Вы знаете какую-нибудь хорошую помощь. - person Muhammad Imran Tariq; 12.05.2011
comment
Ссылка на библиотеки OpenSAML выше - хорошая отправная точка. - person Scott T.; 12.05.2011
comment
@imrantariq Я тоже реализую то же самое. Не могли бы вы поделиться жестко закодированным ответом, который вы отправили в отдел продаж, удалив значение дайджеста и т. Д. Я очень сильно застрял. Если вы задокументировали шаги, которые нужно выполнить, поделитесь им со мной .. мой почтовый идентификатор - [email protected] - person rozar; 17.07.2012