2.6 KiB
2.6 KiB
Auth Service 模块指引
职责与边界
- 负责登录、注册、账号凭据、Access/Refresh Token、退出、密码和账号归属范围。
- 客户主档、成员、角色权限归
iam/;Auth 通过 IAM 客户端获取授权快照,不跨库写 IAM。 tenant_id=0为平台作用域,tenant_id>0为客户 ID;不得引入租户管理或切换。
模块入口
| 目标 | 入口 |
|---|---|
| 登录/刷新/退出/改密 | src/main/java/com/baiyue/auth/controller/AuthController.java |
| 内部账号管理与 scope | controller/InternalAccountController.java、service/AccountManagementService.java |
| 统一 JWT 签发与 JWKS | config/AuthSecurityConfig.java、config/AuthSecurityProperties.java、service/AuthService.java、JWKS 公钥发布 Controller;Auth 是国内与海外仓共用的唯一用户 Token 签发方 |
| 小 JWT 与会话 | service/AuthService.java、service/TokenSessionStore.java;JWT 只承载稳定身份、应用域和版本声明,国内服务用 Redis 会话校验,海外服务不访问国内 Redis |
| Token 会话与权限快照 | service/TokenSessionStore.java、client/AuthorizationLoader.java、client/IamAuthorizationClient.java;消费端映射见 ../common-security/src/main/java/com/baiyue/common/security/RedisAccessTokenSessionValidator.java、JwtClaimsMapper.java |
| 注册协作 | service/MerchantRegistrationService.java |
| IAM 授权客户端 | client/IamAuthorizationClient.java、client/IamOnboardingClient.java |
| DTO/持久化 | dto/AccountManagementDtos.java、entity/、mapper/、repository/ |
| SQL/OpenAPI | src/main/resources/db/、src/main/resources/openapi/ |
| 测试/验证 | src/test/java/com/baiyue/auth/;mvn -pl auth -am test |
修改约束
- 密码、Token、敏感 Claim 不得写日志;统一 JWT 使用 RS256,私钥只留在 Auth,JWKS 只发布公钥。国内小 JWT 的实时权限来自 Redis 会话快照,海外服务使用短时 Claims,不访问国内 Redis。修改 Claim、JWKS、权限快照或过期策略时联查
common-security/、gateway/、iam/和海外服务消费者。 - 注册跨 Auth/IAM 必须保持幂等和失败补偿;内部接口仅接受服务令牌。
- 业务错误保持 HTTP 200 + body code;Security 认证失败保留真实 401/403。
全量验收导航
一期、二期、三期及财务全量验收均复用本模块认证能力;按本次链路读取对应阶段/专题文档,重点核对 Token、应用域、客户隔离、失效和跨 Auth/IAM 补偿,不因历史阶段划分排除其他消费者。