Sustainys использует Salesforce в качестве IdP для нескольких сообществ - PullRequest
0 голосов
/ 31 октября 2019

Я использую Salesforce в качестве IdP для своего приложения MVC. У меня есть несколько сообществ в моем экземпляре Salesforce, каждое из которых имеет различный signOnUrl. Как настроить несколько сообществ для использования одного и того же поставщика удостоверений Sustainys?

Я пытался использовать одну и ту же ссылку сообщества для разных сообществ, которая выдает ошибку привилегий. Я попытался установить несколько узлов провайдера идентификации для разных сообществ signOnUrls, но это не сработало

<identityProviders>
      <add entityId="https://{Salesforce}" signOnUrl="https://{Salesforce}/{community1}/idp/login?app={appId}" allowUnsolicitedAuthnResponse="true" binding="HttpRedirect">
        <signingCertificate fileName="~/App_Data/{cert}.crt" />
      </add>
      <add entityId="https://{Salesforce}" signOnUrl="https://{Salesforce}/{community2}/idp/login?app={appId}" allowUnsolicitedAuthnResponse="true" binding="HttpRedirect">
        <signingCertificate fileName="~/App_Data/{cert}.crt" />
      </add>
    </identityProviders>

Когда я пытаюсь добавить несколько провайдеров сущностей на один и тот же сервер, возникает ошибка. Запись https://{Salesforce} ужебыло добавлено.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Если вы используете ядро ​​owin или asp.net, лучше всего зарегистрировать одну схему аутентификации для каждого сообщества Salesforce. Это заставит ваше приложение работать в качестве двух виртуальных поставщиков услуг для Salesforce, по одному для каждого сообщества.

При двойной регистрации промежуточного программного обеспечения / обработчика SAML2 вам необходимо убедиться, что у каждого экземпляра есть уникальный EntityId и уникальный ModulePath.

0 голосов
/ 01 ноября 2019

Найден ответ ... вместо добавления нескольких провайдеров идентификации с разными параметрами signOnUrl. Вы можете добавить несколько signOnUrls в одном узле.

<identityProviders>
      <add entityId="https://{Salesforce}" signOnUrl="https://{Salesforce}/{community1}/idp/login?app={appId}*;https://{Salesforce}/{community2}/idp/login?app={appId}*" allowUnsolicitedAuthnResponse="true" binding="HttpRedirect">
      <signingCertificate fileName="~/App_Data/{cert}.crt">
      </add>
</identityProviders>
...