PKCE
PKCE(Proof Key for Code Exchange)是OAuth 2.1中的安全扩展机制,通过code_verifier与code_challenge的配对验证,有效防止授权码在传输过程中被截获和滥用
核心事实
时间轴 (近 90 天)
2026-07-28 版 MCP 授权规范要求:客户端必须在授权请求和令牌请求中携带 resource(RFC 8707),服务器必须验证令牌是为自己签发的否则返回 401,客户端在重定向之前必须记录从已验证授权服务器元数据中获取的签发者并检查重定向返回的 iss(RFC 9207),PKCE 只允许 S256。
OAuth 2.0 提供了授权码、PKCE、Token Exchange(RFC 8693)等机制来表达用户A授权应用B代表自己访问资源C
PKCE是OAuth 2.1中针对公开客户端设计的安全扩展,客户端提交代码验证器的哈希值,换取令牌时须附上原始验证器,即便授权码被截获也无法兑换令牌
MCP官方规范推荐的认证方案是带PKCE的OAuth 2.1
OAuth 2.1是对OAuth 2.0的安全加固版本,强制要求使用PKCE并废弃了若干不安全的授权流程
OAuth 2.1 是对 OAuth 2.0 授权框架的安全加固版本,强制要求使用 PKCE 防止授权码拦截攻击
某些提供商强制要求PKCE(Proof Key for Code Exchange),而另一些将其作为可选项
PKCE是OAuth 2.1相较于2.0的重要安全强化,通过code_verifier与code_challenge的配对验证机制抵御授权码拦截攻击
MCP授权强制要求使用PKCE(Proof Key for Code Exchange)以防止授权码被截获利用
OAuth 2.1强制要求使用PKCE(Proof Key for Code Exchange)来防止授权码拦截攻击
还有 2 条时间轴事件
全部知识事实 (14)
MCP 的权限模型借鉴了 OAuth 2.0 授权码流程,工具调用需要明确的用户授权
75%已验证PKCE是OAuth 2.1中针对公开客户端设计的安全扩展,客户端提交代码验证器的哈希值,换取令牌时须附上原始验证器,即便授权码被截获也无法兑换令牌
65%待验证MCP官方规范推荐的认证方案是带PKCE的OAuth 2.1
60%待验证OAuth 2.1强制要求使用PKCE(Proof Key for Code Exchange)来防止授权码拦截攻击
60%待验证PKCE(Proof Key for Code Exchange)扩展通过生成随机 code_verifier 并验证其哈希值,可防止 Authorization Code 被劫持后滥用
60%待验证2026-07-28 版 MCP 授权规范要求:客户端必须在授权请求和令牌请求中携带 resource(RFC 8707),服务器必须验证令牌是为自己签发的否则返回 401,客户端在重定向之前必须记录从已验证授权服务器元数据中获取的签发者并检查重定向返回的 iss(RFC 9207),PKCE 只允许 S256。
50%待验证OAuth 2.0 提供了授权码、PKCE、Token Exchange(RFC 8693)等机制来表达用户A授权应用B代表自己访问资源C
50%待验证OAuth 2.1是对OAuth 2.0的安全加固版本,强制要求使用PKCE并废弃了若干不安全的授权流程
50%待验证OAuth 2.1 是对 OAuth 2.0 授权框架的安全加固版本,强制要求使用 PKCE 防止授权码拦截攻击
50%待验证某些提供商强制要求PKCE(Proof Key for Code Exchange),而另一些将其作为可选项
50%待验证PKCE是OAuth 2.1相较于2.0的重要安全强化,通过code_verifier与code_challenge的配对验证机制抵御授权码拦截攻击
50%待验证MCP授权强制要求使用PKCE(Proof Key for Code Exchange)以防止授权码被截获利用
50%待验证OAuth 2.1 草案将 PKCE 从可选升级为强制要求,并禁止隐式授权和资源所有者密码凭证授权方式
50%待验证远程MCP Server需要实现OAuth 2.1认证流程,OAuth 2.1强制要求使用PKCE防止授权码拦截攻击并禁用了隐式授权
50%