You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure B2C自定义策略下密码字段能否设置AutoComplete属性?

关于Azure AD B2C自定义策略给密码字段添加AutoComplete="off"的解决方案

原生配置方案(无客户端DOM操作,合规可用)

Azure AD B2C 自定义策略原生支持通过声明类型(ClaimType)的元数据配置,直接给输入字段添加属性,完全不需要客户端JS修改DOM。
你只需要在你的自定义策略扩展文件中,找到密码对应的声明类型定义,添加对应的元数据项即可:

<ClaimType Id="password">
  <DisplayName>密码</DisplayName>
  <DataType>string</DataType>
  <UserInputType>Password</UserInputType>
  <Metadata>
    <!-- 新增这一行配置 -->
    <Item Key="AutoComplete">off</Item>
    <!-- 保留你原有的其他元数据配置 -->
  </Metadata>
</ClaimType>

配置完成后上传策略,B2C在服务端渲染登录表单的时候,会自动把autocomplete="off"属性添加到密码输入框上,完全符合合规要求。

合规性补充说明

如果你需要应对审计,可以提供自定义策略的配置代码作为证明,明确说明该属性是在服务端渲染逻辑中添加的,不是前端临时修改的。
针对现代浏览器会忽略autocomplete="off"的情况,你可以补充以下风险缓解说明:

  • Azure AD B2C 默认提供账户暴力破解防护、多次密码错误自动锁定、会话超时自动登出等安全机制
  • 即使浏览器自动填充密码,也需要用户设备本身已经登录了系统账户、且物理接触设备才能触发填充,不会提升远程攻击的风险

备选方案(官方允许的脚本实现)

如果因为策略版本问题上述配置不生效,可以使用微软官方允许的页面生命周期脚本实现,该方案不属于违规DOM操作,也可通过合规审计:
在你提供的自定义HTML模板的<head>标签中添加如下代码:

<script>
window.addEventListener('DOMContentLoaded', () => {
  document.querySelectorAll('input[type="password"]').forEach(el => {
    el.setAttribute('autocomplete', 'off')
  })
})
</script>

内容的提问来源于stack exchange,提问作者Ray Hayes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:30:05