繁体   English   中英

如何通过 AAD B2C 自定义策略中的声明读取用户?

[英]How to read user by claim in AAD B2C custom policy?

是否有任何选项可以通过 email 地址等声明值或extension_company_user_id等自定义声明来读取 azure AD B2C 租户用户(本地或社交)。

其实我需要像下面这样的东西:

        <TechnicalProfile Id="AAD-UserReadUsingClaimValue">
          <Metadata>
            <Item Key="Operation">Read</Item>
          </Metadata>
          <IncludeInSso>false</IncludeInSso>
          <InputClaims>
            <InputClaim ClaimTypeReferenceId="company_user_id" PartnerClaimType="extenstion_company_user_id"  />
          </InputClaims>
          <OutputClaims>
            <!-- Required claims -->
            <OutputClaim ClaimTypeReferenceId="objectId" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
            <!-- Optional claims -->
            <OutputClaim ClaimTypeReferenceId="country" />
            <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
            <OutputClaim ClaimTypeReferenceId="otherMails" />
            <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
            <OutputClaim ClaimTypeReferenceId="extension_company_user_id" />
          </OutputClaims>
          <IncludeTechnicalProfile ReferenceId="AAD-Common" />
        </TechnicalProfile>

您不能这样做,因为声明没有唯一性约束。 您需要通过 signInNames 属性或 userIdentities/alternativeSecurityId 属性读取用户,这些具有唯一性约束。

这将是有效的:

 <InputClaim ClaimTypeReferenceId="userEnteredEmail" PartnerClaimType="signInNames.emailAddress"  />

如果extenstion_company_user_id将是唯一的,并且是用户标识符,请将其写入signInNames.companyUserId 在自定义策略中这样做时,AAD B2C 将自动注册架构扩展。

然后你可以像这样读取用户:

 <InputClaim ClaimTypeReferenceId="company_user_id" PartnerClaimType="signInNames.companyUserId"  />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM