Redis Session Authority
解释 Redis 如何作为在线 Session 撤销权威,与 JWT 凭证验证共同组成 Hybrid Auth,并区分 Session miss、Redis failure 与 secondary index。
#concept
#growing
#backend
#security
#redis
[!info] related notes
Redis Session Authority
一句话定义
Redis Session Authority 是让服务端以 session:
核心不变量
valid JWT
≠
live authorization
典型链路:
Bearer JWT
→ verify signature / claims
→ extract sid
→ GET session:<sid>
├─ hit → continue
├─ miss → 401
└─ error → 503 / fail closed
Logout / revoke:
DEL session:<sid>
可以让尚未到 exp 的 JWT 立即失去在线授权。
Miss 与 Error
Session miss
Redis 正常返回 Key 不存在:
已知 Session 不存在 / 已过期 / 已撤销
→ 401
Redis unavailable
连接超时、服务不可用等:
无法判断 Session 到底存在还是不存在
→ 不应假装 miss,也不应跳过检查
→ fail closed
在 BodySense 中表现为 503 更能准确表达“授权依赖不可用”。
Authority 与 Secondary Index
session:<sid>
= authority
user_sessions:<uid>
= reverse/secondary index
后者可以短时间含 stale member;最终合法性必须重新检查 session:
为什么 Redis 适合
Session authority 通常具有:
- 高频读取;
- 短/中期生命周期;
- TTL;
- 立即 revoke;
- 多实例共享;
- 原子状态转换;
- 不需要复杂关系查询。
这使 Redis 很适合作为在线状态层。
持久化与可用性边界
Redis 中 authority 丢失通常不会让已撤销用户重新获得权限,但可能造成:
- 提前掉登录;
- Refresh 状态丢失;
- 大量 401/503;
- 安全控制语义变化。
因此认证 Redis 不能按照普通 disposable cache 的 eviction 思路管理。