Используя Salesforce в качестве поставщика услуг для SAML с Azure B2C в качестве поставщика удостоверений, как я могу определить, что настроено неправильно?

#azure #salesforce #single-sign-on #azure-ad-b2c #saml

#azure #salesforce #единый вход #azure-ad-b2c #saml

Вопрос:

Последние несколько дней я следовал этому руководству по настройке Azure B2C в качестве IDP в потоке проверки подлинности SAML — https://learn.microsoft.com/en-us/azure/active-directory-b2c/connect-with-saml-service-providers

Это было очень полезно для ознакомления с пользовательскими политиками, и я смог заставить его работать с образцом приложения Microsoft в качестве поставщика услуг, но теперь я изо всех сил пытаюсь понять, как адаптировать то, что работает с образцом приложения, для работы с любыми реальными поставщиками услуг, которые я пытаюсь.

В частности, я хотел бы сначала настроить Salesforce в качестве нашего поставщика услуг, но столкнулся со стеной, которую мне трудно устранить.

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

Учитывая несколько неопределенный характер ошибки и отсутствие ведения журнала или других инструментов для устранения неполадок, я не уверен, чего мне все еще может не хватать, чтобы заставить это работать правильно или где я могу даже найти эту информацию. Я подозреваю, что одна вещь, которая мне может понадобиться, — это указать приложению SAML в B2C на URL метаданных из Salesforce, но я не смог отследить, где я могу найти метаданные, которые Salesforce ожидает предоставить. Мне кажется вероятным, что проблема связана с Azure, поскольку я даже не могу получить точку, в которой я могу ввести свои учетные данные, чтобы Salesforce отклонял ответ SAML, и поскольку параметры единого входа были загружены непосредственно из XML метаданных пользовательской политики, но я могув любом случае я не могу сказать наверняка, отчасти поэтому я не уверен, что делать дальше.

Мы также рассмотрели возможность настройки его как единого входа OpenID Connect, но предпочли бы, чтобы SAML работал, если это возможно, поскольку мы также планируем подключить нашу B2C AD с несколькими другими приложениями, для которых потребуется использовать SAML.

Любопытно, сталкивался ли кто-нибудь еще с подобными проблемами и смог их решить или есть ли какие-либо способы устранения неполадок, которые я мог бы пропустить.

Обновить

Используя рекомендованный инструмент SAML, я смог обнаружить, что ошибка, с которой я столкнулся, заключается в следующем: приложение, зарегистрированное в соответствии с IssuerUri «—EntityId—» в AuthRequest, не имеет URL-адреса службы потребителей утверждений «—EntityId —«, указанного в его метаданных.

Согласно сообщению на форуме справочных форумов SF, URL-адрес для входа в настройки единого входа, созданные в Salesforce, должен быть URL-адресом для использования. Однако, когда я попытался добавить этот URL-адрес в атрибут replyUrlsWithType в манифесте приложения Azure, я получил сообщение об ошибке при сохранении, что свойство имеет недопустимое значение.

Комментарии:

1. Посмотрите на вкладку сеть инструментов разработчика Chrome. Вероятно, вы увидите, что запрос отправляется в B2C, а B2C возвращает ошибку в SalesForce. Ошибка будет в ответе SAML, который AAD B2C вернул в SalesForce. Вы можете использовать плагин, такой как SAMLTracer, чтобы упростить поиск и чтение запроса / ответа SAML.

2. Это очень полезное расширение спасибо за рекомендацию. Теперь я вижу ошибку: приложение, зарегистрированное в соответствии с IssuerUri «<Идентификатор объекта Salesforce>» в AuthRequest, не имеет URL-адреса службы потребителей утверждений

3. Таким образом, эта ошибка говорит о том, что метаданные в манифесте App Reg в свойстве metadataURL не содержат URL-адреса службы потребителя утверждений. Возможно, вы связали там неправильные метаданные отдела продаж. Помните, что целевая учетная запись приложения — это учетная запись приложения, у которой uri идентификатора соответствует entityid в запросе SAML. Поэтому сначала убедитесь, что вы настроили правильный реестр приложений на основе этого.

Ответ №1:

Сегодня я интегрировал Salesforce как Service Provider с B2C как Idp. Я не пытался создавать регистрацию приложения, а вместо этого загрузил метаданные Salesforce и использовал их внутри своей политики B2C, как показано в приведенном ниже коде. В основном то же самое, но вместо сохранения метаданных Salesforce (URI входа / выхода) путем регистрации нового приложения в B2C, я сохранил его в XML-файле и указал своей политике B2C использовать эту метаданные.

 <Metadata>
        <Item Key="PartnerEntity">{Settings:B2C_SAML_PARTNER_ENTITY_SFE}</Item>
</Metadata>