首页 文章 分类 关于

OAuth 2.1 完全指南:PKI、PKCE 与安全最佳实践

OAuth 2.1 终结 8 年混乱,整合 OAuth 2.0 + 安全补丁。本文系统讲解新规范。

作者头像
杨一一

这个人很懒,什么都没留下

前言

OAuth 2.1 在 2026 年正式定稿,统一了过去 8 年的最佳实践。

一、OAuth 2.1 vs 2.0

1. 强制 PKCE
2. 禁用 Implicit Flow
3. 禁用 Password Grant
4. 简化 scopes

二、PKCE 流程

// 客户端生成 code_verifier
const verifier = generateRandomString(64);
const challenge = base64url(sha256(verifier));

// 发起授权
redirect: /authorize?code_challenge=xxx&code_challenge_method=S256

// 换 token
/token?code=xxx&code_verifier=verifier

三、Authorization Code + PKCE

Web 应用、SPA、移动端的统一方案。安全等级最高。

四、Token 安全最佳实践

1. Access Token 用 JWT,短期有效(15min)
2. Refresh Token 用 opaque,长期(7d),可吊销
3. 不要存 LocalStorage,存 HttpOnly Cookie

五、PKI 证书管理

1. 用 ACME 自动签发 - Let's Encrypt
2. mTLS 双向认证 - 服务间通信
3. 证书轮换自动化

六、常见漏洞

1. 重定向 URI 校验不严 - 严格白名单匹配
2. State 参数缺失 - 防止 CSRF
3. Token 泄露 - 启用 DPoP 或 mTLS sender-constrained

总结

OAuth 2.1 让认证更安全更简单。新项目直接用 2.1,老项目尽快迁移。

1

评论 (0)

暂无评论,快来发表第一条评论吧