Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Active Directory B2C SAML集成_Azure_Azure Active Directory_Salesforce_Azure Ad B2c - Fatal编程技术网

Azure Active Directory B2C SAML集成

Azure Active Directory B2C SAML集成,azure,azure-active-directory,salesforce,azure-ad-b2c,Azure,Azure Active Directory,Salesforce,Azure Ad B2c,我正在遵循官方的MS指南。我已经完成了所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,该错误表示索赔集合中已经存在id为userId的索赔。 我在自定义策略中搜索用户ID: TrustFrameworkBase.xml:在此文件中,未声明userid,ClaimsSchema中将名为issuerUserId的声明声明为数据类型字符串,并在以下声明转换中使用: <ClaimsTransformation Id="CreateAlternativeSecurityId" Trans

我正在遵循官方的MS指南。我已经完成了所有配置,但是当我尝试运行应用程序时,我收到一个奇怪的错误,该错误表示索赔集合中已经存在id为userId的索赔。 我在自定义策略中搜索用户ID:

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

<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>
然后,在Facebook索赔提供程序中使用issuerUserId:

<ClaimsProvider>
    <Domain>facebook.com</Domain>
    <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="id" />
...
    </OutputClaims>
...
</ClaimsProvider>
TrustFrameworkExtension.xml:claim用户ID是我使用salesforce的索赔提供程序的输出索赔:

<ClaimsProvider>
      <Domain>salesforce</Domain>
...
      <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
      </OutputClaims>
...
</ClaimsProvider>
<RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
    <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" />
        ...
      </OutputClaims>
    </TechnicalProfile>
</RelyingParty>
SignuporSignnsalesforce.xml:claim userid是我使用salesforce的依赖方的输出声明:

<ClaimsProvider>
      <Domain>salesforce</Domain>
...
      <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userid"/>
      </OutputClaims>
...
</ClaimsProvider>
<RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpSignInSalesforce" />
    <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="issuerUserId" />
        ...
      </OutputClaims>
    </TechnicalProfile>
</RelyingParty>
根据错误声明,userid定义了两次,但我没有找到双重定义,你有什么线索吗


谢谢

经过3天的精疲力竭的故障排除,我在五分钟前发现了错误。 在我的情况下,我没有完全遵循microsoft步骤,我错误地更改了TrustFrameworkExtensions.xml中编排步骤3中的SignupSignnsalesforce UserTravely:

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

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