概念定义
OAuth 2.0 是一种委派框架:资源所有者通过授权服务器,向客户端应用授予对受保护资源的访问。客户端获得一个访问令牌,它编码或引用一个受范围限制的授权,并由客户端出示给资源服务器。OAuth 定义的是授权流程——授权码、客户端凭据、设备码——而非用户认证;与之密切相关的 OpenID Connect 在其上补充身份层。
为什么重要
向第三方共享口令既不安全也难治理。OAuth 用可委派、可撤销、最小权限的访问取而代之:用户可授予某应用对某项资源的读权限,日后无需改口令即可撤销。对于机器对机器访问,客户端凭据授予向工作负载身份签发令牌。这使 OAuth 成为现代 API 生态与移动应用的连接组织。
工程实践
按客户端类型匹配流程:浏览器、移动端与单页应用用带 PKCE 的授权码;服务身份用客户端凭据;输入受限设备用设备码。注册精确的重定向 URI,保持令牌短命,且只在无法被窃取之处保存刷新令牌——理想情况是后端。申请能用的最窄范围,在资源服务器按签发者、受众与范围校验令牌,需要用户身份时再叠加 OpenID Connect。