我正在Azure AD B2C中创建自定义策略,以使受邀用户可以通过另一个Azure AD(甚至ADFS)登录。我的问题是登录时会创建一个新用户(而不是受邀用户)。我发现我一直在尝试使用alternativesecurityid或objectid在我的AAD中找到现有用户,而这两个都不匹配。所以我想我需要通过电子邮件而不是任何ID查找现有用户。这也行不通,因为我可以看到受邀用户的电子邮件位于其他邮件和邮件属性中(通过GraphAPI),显然我无法通过这些字段查询B2C。
<TechnicalProfile Id="AAD-ReadUserByEmail">
<Metadata>
<Item Key="Operation">Read</Item>
<Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="emailFromSocialAccount" PartnerClaimType="mail" Required="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" />
<OutputClaim ClaimTypeReferenceId="displayName" />
<OutputClaim ClaimTypeReferenceId="givenName" />
<OutputClaim ClaimTypeReferenceId="surname" />
<OutputClaim ClaimTypeReferenceId="userPrincipalName" />
</OutputClaims>
<IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>
只有<InputClaim ClaimTypeReferenceId="emailFromSocialAccount" PartnerClaimType="signInNames.emailAddress" Required="true" />
通过验证,但是此字段没有任何数据。
如何找到受邀用户?