【问题标题】:Azure Active Directory B2C SAML IntegrationAzure Active Directory B2C SAML 集成
【发布时间】:2020-01-11 09:35:22
【问题描述】:

我正在关注官方 MS 指南 Set up sign-in with a Salesforce SAML provider by using custom policies in Azure Active Directory B2C。我已完成所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,指出 声明集合中已存在 ID 为“userId”的声明。 我在自定义策略中搜索 userId

TrustFrameworkBase.xml: 在此文件中 userid 未声明,名为 issuerUserId 的声明在 ClaimsSchema 中声明为数据类型字符串,它是用于以下声明转换:

<ClaimsTransformation Id="CreateAlternativeSecurityId" TransformationMethod="CreateAlternativeSecurityId">
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="issuerUserId" TransformationClaimType="key" />
          <InputClaim ClaimTypeReferenceId="identityProvider" TransformationClaimType="identityProvider" />
        </InputClaims>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="alternativeSecurityId" TransformationClaimType="alternativeSecurityId" />
        </OutputClaims>
      </ClaimsTransformation>

issuerUserId 然后在 Facebook 声明提供者中使用:

<ClaimsProvider>
    <Domain>facebook.com</Domain>
    <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
...
    </OutputClaims>
...
</ClaimsProvider>

TrustFrameworkExtension.xml: 声明 userid 是我正在使用的声明提供者(salesforce)的输出声明:

<ClaimsProvider>
      <Domain>salesforce</Domain>
...
      <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
      </OutputClaims>
...
</ClaimsProvider>

SignUpOrSigninSalesforce.xml: 声明 userid 是我正在使用的依赖方(salesforce)的输出声明:

<RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
    <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" />
        ...
      </OutputClaims>
    </TechnicalProfile>
</RelyingParty>

基于错误声明 userid 被定义了两次,但是我没有找到双重定义,你有什么线索吗?

谢谢。

【问题讨论】:

  • 您是否看到您的 SAML 断言并且可能有多个具有相同属性名称的声明。

标签: azure azure-active-directory salesforce azure-ad-b2c


【解决方案1】:

经过 3 天的故障排除后,我在五分钟前发现了错误。 在我的情况下,我没有完全遵循微软的步骤,我在 TrustFrameworkExtensions.xml 的编排步骤 3 中错误地更改了 SignUpSignInSalesforce UserJourney:

<UserJourney Id="SignUpSignInSalesforce">
....
    <OrchestrationStep Order="3" Type="ClaimsExchange">
              <ClaimsExchanges>
                <ClaimsExchange Id="AADUserReadUsingAlternativeSecurityId" TechnicalProfileReferenceId="salesfoce" />
              </ClaimsExchanges>
            </OrchestrationStep>
...
</UserJourney>

错误的值是 TechnicalProfileReferenceId。当我将值从 salesforce 更改为 AAD-UserReadUsingAlternativeSecurityId-NoError 时,解决方案开始工作。 我所做的就是一步一步地重新阅读微软的文档,寻找错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 2016-08-13
    • 2022-09-27
    • 2017-01-03
    • 2016-04-17
    相关资源
    最近更新 更多