首页 > 解决方案 > 验证 Azure AD B2C 自定义策略中的限制

问题描述

我在自定义策略中有以下 ClaimType 来测试在注册期间收集用户时区:

  <ClaimType Id="extension_timezone">
    <DisplayName>Timezone</DisplayName>
    <DataType>string</DataType>
    <UserHelpText>Enter your timezone</UserHelpText>
    <UserInputType>DropdownSingleSelect</UserInputType>
    <Restriction>
      <Enumeration Text="(UTC-08:00) Pacific Time (US &amp; Canada)" Value="(UTC-08:00) Pacific Time (US &amp; Canada)" SelectByDefault="false" />
      <Enumeration Text="(UTC-06:00) Central Time (US &amp; Canada)" Value="(UTC-06:00) Central Time (US &amp; Canada)" SelectByDefault="false" />
      <Enumeration Text="(UTC+00:00) Dublin, Edinburgh, Lisbon, London" Value="(UTC+00:00) Dublin, Edinburgh, Lisbon, London" SelectByDefault="true" />
      <Enumeration Text="(UTC+12:00) Auckland, Wellington" Value="(UTC+12:00) Auckland, Wellington" SelectByDefault="false" />
    </Restriction>
  </ClaimType>  

这在注册流程中正确显示,但我注意到输入未针对限制进行验证。脚步:

  1. 从下拉列表中选择项目
  2. 使用浏览器工具(例如 Chrome DevTools)更改所选选项的值
  3. 提交表格

我希望有验证来检查提交的值是否与枚举条目之一匹配,但这不会发生。我可以在输出声明中包含 extension_timezone 并查看该值反映了我所做的与任何枚举选项都不匹配的更改。

标签: azure-ad-b2c

解决方案


您可以使用 v1 和 v2 策略加载的 jQuery 添加自己的验证规则。

有关使用 Javascript 的指南和示例,请参阅此文档


推荐阅读