0

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

在此处输入图像描述

我尝试使用以下策略,但无法使其工作 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 的存在给出真/假

任何人都知道如何做到这一点,请帮助

4

1 回答 1

0

步骤“已知电子邮件”-> 逻辑应该是“是否存在 ObjectId”。在您的编排步骤中,在代码验证步骤之后使用给定的电子邮件阅读目录。在 AAD 技术配置文件中,如果找不到用户,请使用元数据配置不引发错误。

现在您将拥有不拥有objectId。后续编排步骤应使用针对 objectId 的使用 ClaimExists 逻辑的前提条件来驱动后续逻辑。

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

于 2020-11-16T00:32:44.030 回答