您在此处:
安全性:需要代码交换验证密钥 (PKCE) 控制
此安全设置要求在所有兼容的 OAuth 2 之间进行加密握手。
控件名称
外部客户端应用程序:安全性:需要代码交换证明密钥 (PKCE)
推荐配置
支持的授权流需要代码交换验证密钥 (PKCE) 扩展。
控制概览
此安全设置要求在所有兼容的 OAuth 2.0 授权类型之间执行加密握手,其中客户端在初始请求期间发送散列代码质询,在令牌交换期间发送纯文本代码验证器,以将请求绑定到特定客户端实例。
安全风险(如果未配置)
如果没有在所有支持的流中强制执行 PKCE,恶意行为者就可以成功地将拦截的授权代码或中间凭据交换为访问令牌,因为授权服务器缺乏验证原始调用者身份的技术机制。
威胁场景
攻击者通过浏览器历史、系统日志或自定义 URI 方案拦截从成功登录中捕获有效的授权代码或可拦截凭据,并在合法客户端完成握手之前以编程方式获得有效的会话令牌。
估计的 CVSS 得分范围
高 (7.0–8.9)。
风险影响注意事项
未能在所有适用的流中强制执行 PKCE 会允许广泛的会话劫持和未经授权的数据访问,特别是针对未使用静态客户端密码或已泄露的集成。
高风险
公共客户端的风险更高,例如本地移动应用程序和单页面 Web 应用程序 (SPA),因为这些平台不能安全地存储客户端密码,并且经常在可以观察到流量重定向的环境中运行。
低风险
如果组织在已经强制客户端密码并在严格隔离的网络周边内操作的安全后端服务器上专门使用机密客户端,则风险较低。
业务和集成注意事项
在所有支持的流中启用此要求,需要所有集成的客户端应用程序支持 S256 转换方法,并为每个事务管理唯一的高熵字符串。
建议的补救措施
转到外部客户端应用程序的 OAuth 设置,并选中所有支持的授权流都需要代码交换证明密钥 (PKCE) 的复选框。
安全健康审查指导
安全健康审查将 PKCE 识别为所有现代身份和授权流的强制架构标准,以便每个令牌交换都以加密方式绑定到特定的客户端实例,从而防止凭据注入和拦截。

