同步 IAM 认证文档并明确 Wiki 直接更新 main
docs / check (push) Successful in 11s

This commit is contained in:
2026-09-27 16:57:27 +00:00
4 changed files with 33 additions and 7 deletions
+1
View File
@@ -20,4 +20,5 @@
- 凭据只记录取得方式和受管位置,不复制实际密码、token、私钥、state 或含敏感值的输出。 - 凭据只记录取得方式和受管位置,不复制实际密码、token、私钥、state 或含敏感值的输出。
- 不复制 apps/tailscale/helm.sh 的内容。迁移旧文档前先审查敏感内容,不能整库直接发布。 - 不复制 apps/tailscale/helm.sh 的内容。迁移旧文档前先审查敏感内容,不能整库直接发布。
- 提交前运行 `python3 scripts/check_docs.py`;修改检查器时运行 `python3 -m unittest discover -s tests -v`。依赖与本地环境见 CONTRIBUTING.md。 - 提交前运行 `python3 scripts/check_docs.py`;修改检查器时运行 `python3 -m unittest discover -s tests -v`。依赖与本地环境见 CONTRIBUTING.md。
- 本 Wiki 完成检查后直接提交并推送 main,无需 PR;代码仓库仍走分支和 PR。
- 遵守 CONTRIBUTING.md;不把临时检查日志和个人 agent memory 当成正式文档。 - 遵守 CONTRIBUTING.md;不把临时检查日志和个人 agent memory 当成正式文档。
+3 -4
View File
@@ -69,10 +69,9 @@ accepted 不代表部署完成,implemented 必须附实现和验收依据。
无需每次修改都更新首页、所有服务页或整个来源索引。 无需每次修改都更新首页、所有服务页或整个来源索引。
原仓库 README 同步按维护者要求暂缓,不阻塞 wiki 的维护。 原仓库 README 同步按维护者要求暂缓,不阻塞 wiki 的维护。
按维护者于 2026-09-25 的约定,纯文档变更检查通过后直接提交并推送 main,不另开 PR。 按维护者 2026-09-27 的明确约定,本 Wiki 的修改完成检查后直接提交并推送 `main`,
含代码、配置或检查器行为变更时仍使用 PR;PR 使用 无需创建 PR。此规则仅适用于 Wiki;代码仓库仍按各自约定新建分支并提交 PR。
[.gitea/PULL_REQUEST_TEMPLATE.md](.gitea/PULL_REQUEST_TEMPLATE.md),简述问题、最终变化、依据与验证。 不得跳过文档检查或覆盖其他工作区修改。
直接提交仍遵循相同的检查与证据规则,不跳过检查或覆盖 main 上的其他更新。
## 本地与 CI 检查 ## 本地与 CI 检查
+14 -3
View File
@@ -180,6 +180,8 @@ Keycloak 有 Native 发行或完整原生兼容性。
Testcontainers、UnboundID、Lombok、配置处理器、DevTools 与 Native 插件。依赖存在不表示认证流程已实现;首次实现及 Native Testcontainers、UnboundID、Lombok、配置处理器、DevTools 与 Native 插件。依赖存在不表示认证流程已实现;首次实现及 Native
验证由 [issue #1](https://git.ddupan.top/panxiao81/iam-login/issues/1) 跟踪。需在原生二进制上 验证由 [issue #1](https://git.ddupan.top/panxiao81/iam-login/issues/1) 跟踪。需在原生二进制上
验证 AD、MFA、Hydra、持久化及监控,实测资源成本;不能把编译成功等同完整验收。 验证 AD、MFA、Hydra、持久化及监控,实测资源成本;不能把编译成功等同完整验收。
日常迭代以 JVM 测试为准,不再要求每轮 Native 编译;Native 留在阶段性验收时集中验证,
新增路径未经过原生测试时须明确记录。
首轮保持 AD 用户与组权威并直接映射组名。LDAP 与 MFA 绑定同一稳定主体;切换前需要 首轮保持 AD 用户与组权威并直接映射组名。LDAP 与 MFA 绑定同一稳定主体;切换前需要
明确现役 issuer/sub 哈希主体到新主体的连续性映射。MFA 首先验证官方 WebAuthn 集成, 明确现役 issuer/sub 哈希主体到新主体的连续性映射。MFA 首先验证官方 WebAuthn 集成,
@@ -195,9 +197,18 @@ Testcontainers、UnboundID、Lombok、配置处理器、DevTools 与 Native 插
页面与 Spring 后端同仓库维护,前端资源构建后随 Native 应用交付。生产不增加 Node/BFF、 页面与 Spring 后端同仓库维护,前端资源构建后随 Native 应用交付。生产不增加 Node/BFF、
嵌入式 JavaScript 运行时或 FreeMarker;首轮接受客户端首屏渲染,不实现 React SSR/RSC。 嵌入式 JavaScript 运行时或 FreeMarker;首轮接受客户端首屏渲染,不实现 React SSR/RSC。
当前仅验证浏览器交互原型,不表示 AD、MFA 或 Hydra 登录链路已完成,也不替换现役入口。 应用只保留真实登录流程;用于选型的演示入口、演示状态机与演示码已移除。
原型启动、实现与验证见 [iam-login PR #3](https://git.ddupan.top/panxiao81/iam-login/pulls/3) AD 密码因素与直接所属组查询在重构前已通过维护者浏览器验收;Spring Data LDAP 版本
及其浏览器流程文档;后续机器 API 独立设计。 已通过 JVM 与浏览器回归,真实人类复验待反馈。
密码成功后停在待 MFA 状态,不接受 Hydra challenge,也不替换现役入口。
界面方案的早期验证见 [iam-login PR #3](https://git.ddupan.top/panxiao81/iam-login/pulls/3);
当前实现与代码整理见 [iam-login PR #4](https://git.ddupan.top/panxiao81/iam-login/pulls/4),使用方式见
[iam-login AD 接入文档(开发分支)](https://git.ddupan.top/panxiao81/iam-login/src/branch/feat/ad-login/docs/ad-login.md)。
代码按 DDD 组织 `authentication` 限界上下文:领域层持有 `User`、`UserRepository` 和
`LoginTransaction`,应用层编排认证用例,AD 基础设施使用 Spring Data LDAP 实现用户仓储,
Web 层仅处理 HTTP、会话与页面转换。按维护者选择,仓储复用本次用户 bind 的连接,
查询完成即关闭,不增加独立读取账号,也不把密码或连接保存在浏览器会话中。
后续机器 API 独立设计。
### 目录与 DNS 迁移 ### 目录与 DNS 迁移
+15
View File
@@ -84,3 +84,18 @@ Gitea 接入见 [PR #143](https://git.ddupan.top/panxiao81/homelab-infra/pulls/1
依赖共享 PostgreSQL、OpenBao/ESO、Authelia、Envoy、Samba DNS 与 zot。独立于 Ayatori 依赖共享 PostgreSQL、OpenBao/ESO、Authelia、Envoy、Samba DNS 与 zot。独立于 Ayatori
不等于已完成共享基础设施之外的灾备;恢复需保留 Hydra 数据库和秘密。 不等于已完成共享基础设施之外的灾备;恢复需保留 Hydra 数据库和秘密。
回退时先撤 Gitea 新登录源,沿用旧 Authelia 入口,不删除用户或原有认证配置。 回退时先撤 Gitea 新登录源,沿用旧 Authelia 入口,不删除用户或原有认证配置。
### 独立登录服务的 AD 接入
`iam-login` 的人类界面沿用内联上下文与原生表单,新增 AD 第一因素验收入口;
以用户身份 LDAPS bind,读取 objectGUID 和直接 `memberOf`,组名保持原样。
当前不展开嵌套组或主组,不能视为已完成与 Authelia 的有效组集合等价验证。
密码成功只进入待 MFA 事务;Gitea 仍使用上面已验收的 Go/Authelia 路径。
本轮开发验证通过 JVM 测试,并从 JVM 通过 CA/域名验证读取真实 AD RootDSE。
2026-09-25 维护者已在 HTTPS 开发入口完成真实密码验证,成功进入待 MFA 页面,
并反馈目录标识、邮箱及六个直接所属组的查询结果。此人类验收只覆盖 AD 第一因素与
属性读取,不包括 MFA 或 Hydra 登录。新增路径尚未跑 Native;日常迭代不要求每轮原生编译。开发入口使用受限 Tailscale HTTPS,属于临时验收实例,不是生产入口。
实现见 [iam-login PR #4](https://git.ddupan.top/panxiao81/iam-login/pulls/4),
配置、边界与使用方式见
[iam-login AD 接入文档(开发分支)](https://git.ddupan.top/panxiao81/iam-login/src/branch/feat/ad-login/docs/ad-login.md)。