是否可以使用Azure B2C自定义策略中的声明转换来计算年龄组?

时间:2018-08-06 15:29:05

标签: azure-ad-b2c

我已经成功创建了一个自定义策略,该策略要求用户的生日。

接下来我要做的就是根据用户的年龄来调整注册体验。

我希望我可以使用Claims转换和前提条件来做到这一点,但是通过查看我发现的文档,我看不到如何做到这一点。有可能吗?

我有用户的DOB,我想我可以获取当前的日期时间(此处提到TransformationMethod="GetCurrentDateTime"https://docs.microsoft.com/en-us/azure/active-directory-b2c/manage-user-access#capture-terms-of-use-agreement),但是我看不到如何计算差异(针对年龄) ),或先使用年龄。

我唯一能想到的解决方法是通过REST API声明交换来计算年龄(或年龄组),但我不希望不增加系统的复杂性。

谢谢!

1 个答案:

答案 0 :(得分:0)

  

我有用户的DOB,我想我可以获得当前的日期时间   (TransformationMethod =“ GetCurrentDateTime”在这里提到:   https://docs.microsoft.com/en-us/azure/active-directory-b2c/manage-user-access#capture-terms-of-use-agreement),   但我看不到如何计算差异(针对年龄),或使用   前提条件是年龄。

用于根据用户的出生日期计算ageGroup的逻辑:

  1. 尝试通过列表中的国家/地区代码查找国家/地区。如果找不到该国家,请使用默认
  2. 如果country元素中存在MinorConsent节点:

    a。计算用户必须出生的日期 被认为是成年人。例如,如果当前日期是3月14日, 2015年,并且MinorConsent是18岁,出生日期不得早于 2000年3月14日。

    b。比较最小生日和实际生日。如果 最小出生日期早于用户的出生日期, 返回未成年人作为年龄组计算。

  3. 如果country元素中存在MinorNoConsentRequired节点,请使用MinorNoConsentRequired中的值重复步骤2a和2b。如果最小出生日期早于用户的出生日期,则2b的输出将返回MinorNoConsentRequired。
  4. 如果两个计算均未返回true,则计算将返回Adult。
  

我接下来要做的是量身定制注册体验   取决于用户的年龄。

您可以尝试使用age gating进行此操作。