【问题标题】:Validate restriction in Azure AD B2C custom policy验证 Azure AD B2C 自定义策略中的限制
【发布时间】:2020-11-12 19:16:40
【问题描述】:

我在自定义策略中有以下 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 并查看该值反映了我所做的与任何枚举选项都不匹配的更改。

【问题讨论】:

  • 关于浏览器工具更改值和缺少验证将进一步调查
  • @GovindSharma-MSFTIdentity 答案不能解决我的问题。我需要在不使用自定义 jQuery 的情况下进行验证。我希望这种验证发生在服务器端,但客户端总比没有好。
  • @AlasdairStark 你有没有找到解决方案?我们刚刚发现了同样的问题
  • 不。这并不理想:(

标签: azure-ad-b2c


【解决方案1】:

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

请参考document 获取使用 Javascript 的指南和示例

【讨论】:

  • 我想避免在我的策略中使用 JavaScript。我希望对策略中定义的限制进行服务器端验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多