Sustainsys использует Salesforce в качестве IdP для нескольких сообществ

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

Я пробовал использовать одну и ту же ссылку сообщества для разных сообществ, что дает ошибку привилегий. Я пробовал настроить несколько узлов поставщика удостоверений для разных 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} уже добавлена.


person afandre    schedule 31.10.2019    source источник


Ответы (2)


Нашел ответ ... вместо добавления нескольких поставщиков удостоверений с разными параметрами 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>
person afandre    schedule 01.11.2019
comment
Вы уверены, что это работает? Код поддерживает только один URL-адрес для signOnUrl. - person Anders Abel; 02.11.2019
comment
Я могу подтвердить, что это работает. У меня есть два разных сообщества и два разных пользователя, вошедших в каждое сообщество, и претензии разрешают обоих пользователей в обоих сообществах, используя два signOnURL. - person afandre; 04.11.2019

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

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

person Anders Abel    schedule 02.11.2019
comment
Когда я обновлю приложение до ядра .NET, я рассмотрю возможность использования этой стратегии. - person afandre; 04.11.2019