Skip to content

OAuth 2.0

什么是 OAuth 2.0

OAuth 2.0(Open Authorization)是一种 industry-standard 的授权协议。它定义了第三方应用在不获取用户密码的前提下,安全地访问用户资源的机制。

核心思想

当第三方应用想要访问用户在某个系统中的数据时:

  1. 用户明确授权第三方应用访问特定资源
  2. 系统颁发一个短期有效的访问令牌(Access Token)
  3. 第三方应用使用令牌代替密码访问资源
  4. 令牌可随时被用户撤销,无需修改密码

OAuth 2.0 授权流程

为什么需要 OAuth 2.0

在没有 OAuth 之前,第三方应用访问用户数据通常需要用户提供账号密码:

方式风险
共享密码第三方可滥用权限,用户无法细粒度控制
无法撤销即使不再使用某应用,也只能改密码
无法追踪无法知道哪些应用正在访问自己的数据

OAuth 2.0 的优势

  • 安全:客户端不接触用户密码,降低泄露风险
  • 可控:用户可授权特定权限,随时撤销
  • 可追溯:服务器可集中维护审计日志
  • 灵活:支持不同程度的信任级别,适应多种场景

OAuth 2.0 与身份认证

重要区分:OAuth 2.0 是授权协议,不是身份认证协议。它解决的是"你能做什么",而不是"你是谁"。

如果需要同时完成身份认证,应使用基于 OAuth 2.0 构建的 OIDC(OpenID Connect)协议。

典型应用场景

场景说明
第三方登录使用微信/支付宝账号登录其他应用
API 授权授权第三方应用访问用户的云盘、日历等数据
** delegated 访问**用户授权代理服务代替自己执行操作

竹云IDaaS开放平台