v2.9.0: 设置新增 ZITADEL 统一登录(OIDC Authorization Code+PKCE,身份主键 (issuer,subject),JIT 建号即管理员,docs/12);账号密码 tab 支持修改用户名(验密+重签会话);新增 docs/API.md 全量 API 文档;迁移 0006(oidc_identities/oidc_states)

This commit is contained in:
bigcode
2026-10-01 21:09:55 +08:00
parent 6e40f555f3
commit 2363c77425
20 changed files with 1645 additions and 52 deletions
+25
View File
@@ -0,0 +1,25 @@
-- ZITADEL 统一登录(v2.9.0):身份绑定 + 一次性授权 state
-- 身份主键是 (issuer, subject),email 仅作资料展示、绝不参与判定(实例无 SMTP,邮箱可能缺失)
-- OIDC 身份绑定:统一登录账号 ↔ 本地 users 的映射(重复登录同一 subject 刷新资料,不报冲突)
CREATE TABLE IF NOT EXISTS oidc_identities (
id TEXT PRIMARY KEY,
issuer TEXT NOT NULL, -- IdP 签发者(如 https://auth.my.qiaonao.net)
subject TEXT NOT NULL, -- IdP 的 sub(身份主键的一部分)
user_id TEXT NOT NULL, -- 本地 users.id
display_name TEXT, -- 展示名(兜底链取值,可为空)
email TEXT, -- 纯资料,可为空,永不作为身份键
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
UNIQUE(issuer, subject)
);
CREATE INDEX IF NOT EXISTS idx_oidc_identities_user ON oidc_identities(user_id);
-- OIDC 一次性 state:承载 code_verifier(PKCE)与回跳路径,用后即删
CREATE TABLE IF NOT EXISTS oidc_states (
state TEXT PRIMARY KEY,
code_verifier TEXT NOT NULL,
return_to TEXT NOT NULL,
created_at TEXT NOT NULL,
expires_at TEXT NOT NULL
);