Невозможно реализовать единый вход в систему Salesforce - PullRequest
0 голосов
/ 14 апреля 2020

Я внедряю SSO, инициированный поставщиком услуг, для Salesforce, где поставщиком услуг будет Salesforce, а поставщиком удостоверений будет лямбда-код. Лямбда-код позволит пользователю после проверки мобильного номера пользователя. Как только номер мобильного телефона будет проверен, lambda отправит ответ SAMLResponse.

Я настроил единый вход в систему Salesforce следующим образом: - enter image description here

Я также могу сгенерировать действительный ответ SAML и проверил его в валидаторе Salesforce SAML как ниже: -

enter image description here

Я создал страницу входа , которая будет перенаправлена ​​из Salesforce.

I также создал API для получения уникального ответа SAML каждый раз для данного идентификатора федерации, как показано ниже: - https://qodz4saz9a.execute-api.us-west-2.amazonaws.com/v1/generate-saml-response?FederationID=rahul@xyz.com

URL-адрес страницы входа в систему Salesforce - https://im--partial.my.salesforce.com/ .

После всех этих настроек я могу быть перенаправлен на страницу входа, которую я создал в Salesforce, выбрав «Вход в систему с другой учетной записью», а затем выбрав «Twilio», как показано ниже: -

enter image description here

Salesforce перенаправляет на страницу входа с параметром SAMLRequest в URL-адресе, как показано ниже: -

http://salesforce-sso-page.s3-website-us-west-2.amazonaws.com/?SAMLRequest=fZJRc6IwFIX%2FC .....

Я не уверен, как поступить отсюда и разрешить вход в Salesforce из моей логи н стр. Как только пользователь вводит номер мобильного телефона и OTP, я перенаправляю пользователя на указанный ниже URL -

https://im--partial.my.salesforce.com?SAMLResponse=PD94bWwgdmVyc2lvbj0i .....

Здесь я использую SAMLResponse в качестве параметра запроса для передачи ответа SAML в кодировке Base 64 для входа в систему Salesforce. Но я не уверен, что это правильный способ аутентификации и входа в систему Salesforce.

После ввода OTP (тестовый OTP равен 1234) я получаю следующую ошибку. enter image description here

Я вообще не использую SAMLRequest , сгенерированный Salesforce, для генерации SAMLResponse на данный момент.

Я просмотрел много документов, но не смог Не можете найти способ передать SAMLResponse в Salesforce для входа в систему. Пожалуйста, дайте мне знать, если кто-нибудь имеет какое-либо представление об этом, или я делаю неправильные шаги.

1 Ответ

1 голос
/ 15 апреля 2020

Ответ SAML отправляется поставщику услуг определенным c «способом», протокол именуется привязкой . В этом случае ожидаемая привязка - HTTP POST. При использовании HTTP POST в качестве привязки ответ SAML должен быть представлен в теле HTTP-запроса, отправленного поставщику услуг с помощью метода POST. Login URL, указанный на экране «Параметры единого входа», является конечной точкой, в которую следует отправлять ответ SAML. Это может выглядеть примерно так:

POST / HTTP/1.1
Host: im--partial.my.salesforce.com
Content-Type: application/x-www-form-urlencoded
Content-Length: nnn
SAMLResponse=response

Вам нужно беспокоиться о запросе SAML? Это зависит от вашего рабочего процесса и желаемого опыта конечного пользователя. Соображения, которые go в этом решении заслуживают их собственного вопроса SO. В то же время, посмотрите Технический обзор SAML , чтобы получить сводку этих рабочих процессов.

И последнее, но не менее важное: Salesforce поддерживает всю эту последовательность аутентификации по номеру вашего мобильного телефона. коробки на некоторых продуктах Salesforce.

...