PKCE这个词在OAuth2相关的教程中出现的越来越频繁了,它是 Proof Key for Code Exchange的缩写。OAuth2公共客户端非常容易遭受授权码拦截攻击,PKCE技术可以抵御该类型的攻击。到了后面不仅仅OAuth2公共客户端使用这个,隐匿客户端也使用这种技术来加强安全性,相关的规范是rfc7636。
https://gitee.com/felord/spring-security-oauth2-tutorial pkce 分支。
PKCE流程
PKCE伴随授权码授权的流程,具体步骤如下:
- OAuth2客户端生成
code_verifier
,并使用code_challenge_method
计算code_challenge
,具体的算法稍后会详细讲解。 - OAuth2客户端发起
/oauth2/authorize
授权请求,携带code_challenge
和co