From 045c28b5c29f3f849bf086485615170064146b54 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Fri, 25 Sep 2026 15:55:17 +0000 Subject: [PATCH] =?UTF-8?q?=E6=98=8E=E7=A1=AE=E4=BA=BA=E7=B1=BB=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E7=8A=B6=E6=80=81=E6=9C=BA=E8=BE=B9=E7=95=8C=E5=B9=B6?= =?UTF-8?q?=E6=AF=94=E8=BE=83=20ZITADEL=20=E4=B8=8E=20Kratos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- architecture/independent-iam-draft.md | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/architecture/independent-iam-draft.md b/architecture/independent-iam-draft.md index 57300fe..4f1b650 100644 --- a/architecture/independent-iam-draft.md +++ b/architecture/independent-iam-draft.md @@ -127,6 +127,42 @@ Agent 的动态授权需要落到应用可识别的 scope、角色、账号权 ## 人类后端、Samba AD 与 DNS 演进 +### 人类认证后端的接口边界 + +2026-09-25 维护者明确:考虑 ZITADEL 是为了复用认证会话与登录状态机,而不是把它作为 +另一个 OIDC 上游。下一阶段目标是由人类认证后端处理认证因素与会话,适配层验证结果、 +映射稳定主体并接受 Hydra login challenge;面向下游的 OAuth2/OIDC 仍由 Hydra 提供。 +第一轮通过 Authelia OIDC 的 PoC 保留为已验收基线,尚未部署此替代路径。 + +同日的上游接口与源码评估形成两个候选,尚未决定切换: + +| 候选 | 可复用能力 | 尚需承担的接入工作 | +|---|---|---| +| ZITADEL Session API + Login V2 | 逐步验证认证因素、会话、账号管理;Login V2 有登录编排与 UI | 将登录事务绑定到 Hydra challenge,服务端验证认证结果并接回 Hydra;按选定版本验证 LDAP、MFA 与完整恢复流程 | +| Ory Kratos + self-service UI | 登录、MFA、恢复与会话流程;上游已有 Hydra login challenge 集成 | 部署和维护独立 UI,保留主体映射与 consent;Samba AD 不能假设存在开箱即用的 LDAP 认证接入 | + +Kratos 在认证与签发的职责分离上更直接,是值得优先验证的替代候选;但若必须继续使用 +Samba AD 密码登录,LDAP 过渡成本可能使 ZITADEL 更合适。Kratos 本身是 headless 服务, +现成参考 UI 不等于无需维护的内置管理门户,亦不能把 Ory Network 的功能直接视为自托管 +开源版能力。此判断是方案评估,不是新的部署决定。 + +ZITADEL Session API 返回会话不等于已完成全部认证;需要确认已验证因素、有效期、用户 +状态和所需 MFA。官方 Login V2 的流程编排包含这些判断。无 OIDC 上下文登录及默认完成 +跳转可用,但普通跳转不是传给 Hydra 的认证证明,也不自动绑定原始 login challenge。 + +查阅时上游文档与开发分支存在差异:Hosted Login 文档仍列出 LDAP 限制,而 +[Login V2 固定源码](https://github.com/zitadel/zitadel/blob/5ca0b54ca311c4be535589e7c375f9bea50e3ec2/apps/login/src/lib/server/idp.ts) +已有 LDAP 认证实现;不能据此宣称某个发布版本已经验收。部署前需锁定发行版本再验证。 + +参考:[ZITADEL Session API](https://zitadel.com/docs/reference/api/session/zitadel.session.v2.SessionService.CreateSession)、 +[Login App](https://zitadel.com/docs/guides/integrate/login-ui/login-app)、 +[Hosted Login 限制](https://zitadel.com/docs/guides/integrate/login/hosted-login)、 +[Kratos Hydra 集成源码](https://github.com/ory/kratos/blob/master/selfservice/flow/login/handler.go)、 +[Kratos self-service UI](https://github.com/ory/kratos-selfservice-ui-node)、 +[LDAP 功能请求](https://github.com/ory/kratos/issues/274)。 + +### 目录与 DNS 迁移 + 人类同样使用这套独立 IAM。过渡期可以保留 Samba AD,通过 ZITADEL 连接 LDAP; 后续可以把人类账号迁出 Samba。ZITADEL 是候选后端,不是本草案已经确定的依赖。 更换认证后端时应保持稳定主体与下游账号关联,避免按可变邮箱或用户名重新识别账号。