安全模型
接入 IAM 前需清楚:哪些假设成立、信任边界在哪、令牌泄露的后果是什么。本页汇总 IAM 的安全模型,帮助正确部署与威胁建模。
- 不透明令牌(opaque token):
accessToken本身无含义,须经 Redis/MySQL 解析为TokenRecord,降低令牌被本地伪造的风险。 - 持久化权威:MySQL 为真相来源,Redis 仅索引(见 MySQL / Redis)。
- Profile 隔离:切换 Profile 创建新会话,旧会话独立,缩小单点泄露影响面(见 Profile 切换)。
- 会话吊销:可按
sessionId精确失效,互不影响(见 会话吊销)。 - clientType 绑定:
IamPrincipal.clientType用于CLIENT_TYPE_MISMATCH校验,登录clientType须精确匹配iam.client-types(默认[WEB])。
威胁与缓解对照:
| 威胁 | 缓解 |
|---|---|
| 令牌泄露 | 不透明令牌 + 可吊销会话 |
| Redis 故障 | 回源 MySQL,不以 Redis 为真相 |
| 越权作用域 | SCOPE_DENIED + 决策步骤可诊断 |
IamPrincipal:https://github.com/wbh123/iam/blob/main/muer-core/src/main/java/io/github/muer/core/model/IamPrincipal.javaIamBearerTokenFilter:https://github.com/wbh123/iam/blob/main/muer-spring-boot-autoconfigure/src/main/java/io/github/muer/autoconfigure/
当前版本:0.1.0-SNAPSHOT(Release Candidate),尚未发布。