【问题标题】:Check user exists in AD B2C(using custom policy)检查用户是否存在于 AD B2C(使用自定义策略)
【发布时间】:2020-11-11 11:34:21
【问题描述】:

检查用户是否存在于 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 的存在给出真/假

谁知道怎么做,请帮忙

【问题讨论】:

  • 您目前有什么错误? “不能让它工作”没有意义。
  • @AllenWu 我已经附上了我试图比较 objectid 的代码,所以我可以让 EmailExists 声明,但它不会根据 objectid 给出真/假

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


【解决方案1】:

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

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

您甚至可以使用两个子路径来判断 objectId 是否存在。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2019-04-29
    相关资源
    最近更新 更多