您在此处:
API(启用 OAuth 设置):需要代码交换证明密钥 (PKCE)
一种 OAuth 2.0 安全扩展,使用动态创建的加密“代码验证器”来确保应用程序为访问令牌交换授权代码与最初请求的代码相同。
控件名称
连接的应用程序:API(启用 OAuth 设置):需要代码交换证明密钥 (PKCE)
推荐配置
支持的授权流需要代码交换验证密钥 (PKCE) 扩展 - 已选择。
控制概览
PKCE 是 OAuth 2.0 的安全扩展,它使用动态创建的加密“代码验证器”来确保为访问令牌交换授权代码的应用程序与最初请求代码的应用程序相同。
安全风险(如果未配置)
如果没有 PKCE,公共客户端(例如移动应用程序或单页面应用程序)容易受到“授权代码拦截”的攻击,因为它们不能安全地存储客户端密码来在令牌交换期间验证他们的身份。
威胁场景
攻击者通过自定义 URI 方案或浏览器重定向拦截成功的授权代码,并在合法应用程序可以有效劫持用户会话之前立即将其交换为有效的访问令牌。
估计的 CVSS 得分范围
关键 (9.0–10.0)。
风险影响注意事项
成功的拦截会导致应用程序范围内的客户完全接管,潜在地允许对手泄露敏感的 PII,或者作为被威胁的用户执行未经授权的交易。
高风险
对于移动应用程序和单页面应用程序,风险较高,其中代码通过潜在不安全的系统浏览器或共享设备环境传输。
低风险
对于可以安全存储和使用客户端密码来验证令牌交换的“机密客户端”(服务器到服务器集成),风险被认为更低,尽管仍然建议将 PKCE 作为深度防御。
业务和集成注意事项
实施 PKCE 需要开发人员更新应用程序的 OAuth 握手逻辑,以生成并发送 code_challenge 和 code_verifier 参数,这可能需要更新原有移动库。
建议的补救措施
转到 Salesforce 中的连接的应用程序设置,并打开“需要代码交换验证密钥 (PKCE) 扩展”复选框。
安全健康审查指导
安全健康审查将 PKCE 确定为所有现代面向公众的集成的强制基准,以堵塞“代码注入”漏洞,并确保移动和网络用户的高保证身份验证。

