| name | auth-patterns |
| description | 认证授权模式 —— JWT、OAuth 2.0、RBAC、ABAC 等主流机制的选型与实现指南 |
| category | 安全 |
| loading | on-demand |
| triggers | {"keywords":["认证","授权","auth","OAuth","JWT","RBAC","登录","权限"]} |
认证授权模式
概述
系统化梳理认证(你是谁)和授权(你能做什么)的最佳实践,覆盖从单体应用到分布式系统的多种认证方案和权限模型。
使用场景
- 新系统设计登录和权限体系
- 从单体拆分为微服务时的认证方案迁移
- 接入第三方登录(OAuth 2.0 / OIDC)
- 权限模型从简单角色升级为细粒度控制
核心原则
- 认证与授权分离:认证确认身份,授权决定权限。两者可以独立演进,不要耦合。
- Token 不承载敏感信息:JWT payload 中不应放密码、完整用户信息;仅放最小必要声明。
- 默认拒绝:权限检查采用白名单模式——未明确授权的操作一律拒绝。
- 集中式授权:不要在每处业务代码中散落权限检查,统一拦截层或中间件处理。
- 凭据不进日志:Token、密码、验证码绝不写入应用日志或错误堆栈。
常见模式
- Session + Cookie:经典服务端会话,适合单体应用和 SSR 页面
- JWT(无状态 Token):适合 API 网关和微服务间认证,注意过期和刷新策略
- OAuth 2.0 + OIDC:第三方登录和委托授权的事实标准
- RBAC(基于角色):用户 → 角色 → 权限,适合权限模型稳定的场景
- ABAC(基于属性):用户属性 + 资源属性 + 环境属性决定权限,适合细粒度场景
检查清单