JSON 的 AADB2C 声明来自联合身份的转换

AADB2C Claims Transformation for JSON from Federated Identity

我正在编写与联合身份提供程序集成的 IEF 策略。国内流离失所者 returns 在 id_token 中声称 JSON。当我在输出声明中使用声明映射 custom_attributes 时,我得到 AAD 异常为

声明类型 ID 为“custom_attributes”的声明遇到意外类型 "System.Collections.Generic.List1[System.Collections.Generic.KeyValuePair2[System.String,System.Object]]"

这是我的声明映射:

<OutputClaim ClaimTypeReferenceId="custom_attributes" PartnerClaimType="custom_attributes"/> 

将架构声明为:

      <ClaimType Id="custom_attributes">
        <DisplayName>custom_attributes</DisplayName>
        <DataType>string</DataType>
        <UserHelpText>Add help text here</UserHelpText>
      </ClaimType>

id_token 如下所示:

{
 "custom_attributes":{
    "emailAddress": "someone@example.com",
    "displayName": "Someone",
    "id" : 6353399
 }
}
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="GetRequestorIdClaimFromJsonClaimsTransformation" />
          </OutputClaimsTransformations>

将架构声明为

      <ClaimsTransformation Id="GetRequestorIdClaimFromJsonClaimsTransformation" TransformationMethod="GetClaimFromJson">
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="custom_attributes" TransformationClaimType="inputJson" />
        </InputClaims>
        <InputParameters>
          <InputParameter Id="claimToExtract" DataType="string" Value="id"/>
        </InputParameters>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="requestorid" TransformationClaimType="extractedClaim" />
        </OutputClaims>
      </ClaimsTransformation>

我找到了问题的解决方案并添加到这里