安全与身份总览
安全与身份文档的总入口——把"身份模型、认证、授权"三层内容分开组织,帮助读者按需深入"用户是谁、如何识别用户、用户能做什么"。
适用场景
- 需要理解 Spire 的身份数据模型(
Claim/ClaimsIdentity/ClaimsPrincipal) - 需要为应用接入认证方案(JWT Bearer / Cookie / 自定义)
- 需要配置授权策略控制接口访问权限
- 需要手动签发和校验 JWT 令牌
核心问题
安全相关内容天然容易越写越杂,因为它至少包含三个不同层次:
- 身份模型 —
Claim、ClaimsIdentity、ClaimsPrincipal这些类型本身如何表达"用户是谁"。 - 认证 — 请求如何被识别为某个用户,例如 Cookie、Bearer Token、自定义凭证。
- 授权 — 已知用户身份后,如何判断他能不能访问某个资源。
如果这些内容都塞进一个页面,读者会很难判断:
- 这是数据模型问题,还是中间件问题?
- 这是应用内认证,还是对接外部身份服务?
- 这是"用户是谁",还是"用户能做什么"?
本总览把三层分开组织——身份模型定义数据结构,认证负责识别用户,授权负责判定权限。
内容组织
| 层次 | 页面 | 类型 | 说明 |
|---|---|---|---|
| 身份模型 | 身份声明 | 学习页 | Claim、ClaimsIdentity、ClaimsPrincipal 三层数据模型 |
| 身份模型 | JWT 令牌 | 学习页 | JWT 的生成、校验、密钥管理和 12 种签名算法 |
| 认证 | 认证总览 | 总览页 | 四种认证方式的地图和决策树 |
| 认证 | JWT Bearer 认证 | 学习页 | 从请求头提取 Bearer Token 还原用户身份 |
| 认证 | Cookie 认证 | 学习页 | 基于 Cookie 的浏览器登录态管理 |
| 认证 | 自定义Basic认证 | 学习页 | 自实现认证处理器的完整示例 |
| 授权 | 授权总览 | 总览页 | 策略+要求+处理器的权限判定模型 |
| 授权 | 授权策略 | 学习页 | 策略构建、组合、缓存与默认策略修改 |
| 授权 | 自定义授权要求 | 学习页 | 自处理和分离两种自定义授权模式 |
| 认证中心 | Identity Server | 学习页 | 自建 OAuth 2.0 / OIDC 认证中心,签发和校验令牌 |
推荐阅读顺序
- 身份声明 — 理解认证产出的
context.user是什么数据结构 - JWT 令牌 — 理解 Token 如何生成和校验
- 认证总览 — 理解四种认证方式的定位和选择
- JWT Bearer 认证 — 最常用的 API 认证方案
- 授权总览 — 理解权限判定的完整流程
- 授权策略 — 配置策略控制接口访问
- Identity Server — 自建认证中心,签发和校验令牌
当前边界
- 已落地:完整的三层身份数据模型、JWT 令牌的创建与校验(12 种签名算法)、四种认证方案(JWT Bearer / Cookie / 自定义 / Identity Server)、完整的策略+要求+处理器授权模型(6 种内置要求 + 2 种自定义模式)、完整的 OAuth 2.0 / OIDC 认证中心(6 个标准端点、4 种授权类型、可替换存储和服务)