[英]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.