OAuth2简介 #
一、OAuth2概述 #
1.1 什么是OAuth2 #
OAuth2是一个开放标准,允许用户授权第三方应用访问其在另一个服务上的资源。
text
┌─────────────────────────────────────────────────────────────┐
│ OAuth2角色 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ Client │ 第三方应用 │
│ │ (客户端) │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │Resource │ │Authorization│ │
│ │ Owner │ │ Server │ │
│ │ (资源所有者) │ │ (授权服务器) │ │
│ └─────────────┘ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Resource │ │
│ │ Server │ │
│ │ (资源服务器) │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
1.2 核心概念 #
| 概念 | 说明 |
|---|---|
| Client | 第三方应用 |
| Resource Owner | 用户 |
| Authorization Server | 授权服务器 |
| Resource Server | 资源服务器 |
| Access Token | 访问令牌 |
二、授权模式 #
2.1 授权码模式 #
text
1. 用户访问客户端
2. 客户端重定向到授权服务器
3. 用户授权
4. 授权服务器返回授权码
5. 客户端用授权码换取令牌
2.2 密码模式 #
text
1. 用户提供用户名密码给客户端
2. 客户端发送用户名密码到授权服务器
3. 授权服务器返回令牌
2.3 客户端模式 #
text
1. 客户端发送凭证到授权服务器
2. 授权服务器返回令牌
2.4 刷新令牌模式 #
text
1. 客户端发送刷新令牌
2. 授权服务器返回新的访问令牌
三、模式对比 #
| 模式 | 安全性 | 适用场景 |
|---|---|---|
| 授权码 | 高 | Web应用 |
| 密码 | 中 | 受信任应用 |
| 客户端 | 低 | 后端服务 |
| 刷新令牌 | - | 令牌续期 |
四、总结 #
| 要点 | 说明 |
|---|---|
| 角色 | 客户端、用户、授权服务器、资源服务器 |
| 授权码模式 | 最安全,推荐使用 |
| 密码模式 | 适用于受信任应用 |
接下来让我们学习 认证服务器!
最后更新:2026-03-28