B2C Salesforce 集成失败,错误为 IDPError:1605 无法将请求解析为服务提供商

B2C Salesforce 集成失败,错误为 IDPError:1605 无法将请求解析为服务提供商

我正在按照https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-sf-app-custom将 Salesforce 设置为 IDP,并将我的 B2C 租户设置为服务提供商。

一切看起来都很好,但是当我尝试测试流程(IEF 策略流程)时,Salesforce 端出现错误,消息为“错误:无法将请求解析为服务提供商”

我也尝试过将其与其他 3 个 SAML IDP 集成,但在所有情况下,IDP 都无法识别我的实体 ID。

知道我的配置缺少什么吗?

答案1

在解决了完全相同的问题之后,我能够通过在 Salesforce ClaimsProvider 的 MetaData 字段中添加新项目来解决此问题。您必须添加以下内容:

<Item Key="IssuerUri">(Entity ID that you entered in Salesforce Connected App)</Item>

最终的 ClaimsProvider 代码应该是:

<ClaimsProvider>
  <Domain>salesforce</Domain>
  <DisplayName>Salesforce</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="salesforce">
      <DisplayName>Salesforce</DisplayName>
      <Description>Login with your Salesforce account</Description>
      <Protocol Name="SAML2"/>
      <Metadata>
        <Item Key="WantsEncryptedAssertions">false</Item>
        <Item Key="WantsSignedAssertions">false</Item>
        <Item Key="PartnerEntity">https://contoso-dev-ed.my.salesforce.com/.well-known/samlidp.xml</Item>
        <Item Key="IssuerUri">https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="SamlAssertionSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
        <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
      </CryptographicKeys>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userId"/>
        <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/>
        <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/>
        <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/>
        <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="username"/>
        <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="SAMLIdp" />
      </OutputClaims>
      <OutputClaimsTransformations>
        <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
        <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
        <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
        <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
      </OutputClaimsTransformations>
      <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

确保修改 PartnerEntity 和 IssuerUri 值以匹配您的 Salesforce Connected App。

相关内容