检查用户是否存在于AD B2C中(使用自定义策略)

时间:2020-11-11 11:34:21

标签: azure-ad-b2c azure-ad-b2c-custom-policy

检查用户是否存在于AD B2C中(使用自定义策略),如果存在,则显示登录选项,否则,如果不存在,则显示注册表格

enter image description here

我尝试了以下政策,但无法使其正常工作 https://github.com/azure-ad-b2c/samples/tree/master/policies/split-email-verification-and-signup

<ClaimsTransformation Id="AssertObjectIdObjectIdNotFoundAreEqual" TransformationMethod="CompareClaims">
            <InputClaims>
                <InputClaim ClaimTypeReferenceId="objectId" TransformationClaimType="inputClaim1" />
                <InputClaim ClaimTypeReferenceId="objectIdNotFound" TransformationClaimType="inputClaim2" />
            </InputClaims>
            <InputParameters>
                <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
                <InputParameter Id="ignoreCase" DataType="string" Value="true" />
                <!-- <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" /> -->
            </InputParameters>
            <OutputClaims>
                <OutputClaim ClaimTypeReferenceId="EmailExists" TransformationClaimType="outputClaim" />
            </OutputClaims>
        </ClaimsTransformation>

我正在尝试比较objectid,因此我可以让EmailExists声明,但它不会基于存在的objectid给出true / false

任何人都知道该怎么做,请帮助

1 个答案:

答案 0 :(得分:0)

“已知电子邮件”步骤->逻辑应为“是否存在ObjectId”。 在业务流程步骤中,在代码验证步骤之后,使用给定的电子邮件阅读目录。在AAD技术资料中,如果找不到用户,则使用元数据配置不会引发错误。

现在您将拥有没有一个objectId。 后续的编排步骤应使用对ObjectId使用ClaimExists逻辑的前提条件,以驱动后续的逻辑。

您甚至可以使用两个子旅程来绕开objectId是否存在。