refactor(identity): 统一网页认证配置来源

移除旧 OIDC_* 与 VITE_OIDC_* 业务配置读取,统一使用数据库 Revision 和 SecretStore 引用构建运行时。同步更新 Compose、示例配置、接入文档及集成测试,并保留数据库、SecretStore 和安全事件健康窗口等部署级参数。\n\n验证:go test ./...;go test -race ./...;go vet ./...;pnpm test;pnpm lint;pnpm build;docker compose config -q
This commit is contained in:
2026-07-17 12:31:00 +08:00
parent e0a356ee0c
commit a767dc42c0
18 changed files with 354 additions and 578 deletions
@@ -8,7 +8,7 @@ Accepted2026-07-17。
Gateway 是标准应用接入协议的首个消费方。认证中心保持消费方无关;“统一认证”页面、Gateway 本地租户映射、Legacy JWT 兼容和 Session 策略均属于 Gateway 自己的管理边界。
OIDC、JIT、Introspection、BFF 和 SSF 的业务配置以 Gateway 管理 API/数据库为唯一来源。数据库、SecretStore、Session 加密根、Bootstrap 管理凭据、TLS 与 RBAC 仍由部署环境提供。开发阶段不读取或迁移旧 `OIDC_*``VITE_OIDC_*` 业务变量,升级后由管理员重新配对。
OIDC、JIT、Introspection、BFF 和 SSF 的业务配置以 Gateway 管理 API/数据库为唯一来源。数据库、SecretStore、Bootstrap 管理凭据、TLS 与 RBAC 仍由部署环境提供Machine Credential 和 Session Encryption Key 由服务端生成或领取,只存入 SecretStoreRevision 仅保存引用。开发阶段不读取或迁移旧 `OIDC_*``VITE_OIDC_*` 业务变量,升级后由管理员重新配对。
## Revision 状态机
@@ -50,3 +50,17 @@ active -> superseded (回滚、替换或禁用)
## 前端运行时配置
Web 前端启动后读取公开只读统一认证状态,不使用 `VITE_OIDC_*` 构建变量。安全事件作为统一认证能力状态显示,原独立页面只保留运行运维动作。
## 部署级配置
允许继续由部署环境提供的统一认证相关参数仅限 SecretStore 与基础设施健康窗口:
```dotenv
IDENTITY_SECRET_STORE=file
IDENTITY_SECRET_DIR=.local-secrets/identity
IDENTITY_SECURITY_EVENTS_HEARTBEAT_INTERVAL_SECONDS=60
IDENTITY_SECURITY_EVENTS_STALE_AFTER_SECONDS=180
IDENTITY_SECURITY_EVENTS_CLOCK_SKEW_SECONDS=60
```
Kubernetes 部署改用 `IDENTITY_KUBERNETES_NAMESPACE``IDENTITY_KUBERNETES_SECRET_NAME``IDENTITY_KUBERNETES_API_SERVER``IDENTITY_KUBERNETES_TOKEN_FILE``IDENTITY_KUBERNETES_CA_FILE`。这些参数不包含 Issuer、Audience、Scope、Client ID、Machine Secret 或业务开关。