0

我将 Salesforce 用作我的 MVC 应用程序的 IdP。我的 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}已添加条目。

4

2 回答 2

0

找到了答案……而不是添加多个具有不同 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>
于 2019-11-01T15:10:02.897 回答
0

如果您使用 owin 或 asp.net core,更好的方法可能是为每个 Salesforce 社区注册一个身份验证方案。这将使您的应用程序作为 Salesforce 的两个虚拟服务提供商工作,每个社区一个。

两次注册 SAML2 中间件/处理程序时,需要确保每个实例都有唯一的 EntityId 和唯一的 ModulePath。

于 2019-11-02T15:43:04.803 回答