This commit is contained in:
@@ -200,16 +200,16 @@ Testcontainers、UnboundID、Lombok、配置处理器、DevTools 与 Native 插
|
|||||||
应用只保留真实登录流程;用于选型的演示入口、演示状态机与演示码已移除。
|
应用只保留真实登录流程;用于选型的演示入口、演示状态机与演示码已移除。
|
||||||
AD 密码因素与直接所属组查询在重构前已通过维护者浏览器验收;此前 Spring Data LDAP 版本
|
AD 密码因素与直接所属组查询在重构前已通过维护者浏览器验收;此前 Spring Data LDAP 版本
|
||||||
已通过 JVM 与浏览器回归;Spring Security 重构后的真实人类复验仍待反馈。
|
已通过 JVM 与浏览器回归;Spring Security 重构后的真实人类复验仍待反馈。
|
||||||
密码成功后停在待 MFA 状态,不接受 Hydra challenge,也不替换现役入口。
|
密码成功仅建立第一因素;WebAuthn 开发链路可继续完成第二因素,仍不接受 Hydra challenge,也不替换现役入口。
|
||||||
界面方案的早期验证见 [iam-login PR #3](https://git.ddupan.top/panxiao81/iam-login/pulls/3);
|
界面方案的早期验证见 [iam-login PR #3](https://git.ddupan.top/panxiao81/iam-login/pulls/3);
|
||||||
AD 接入与 Spring Security 重构统一见 [iam-login PR #4](https://git.ddupan.top/panxiao81/iam-login/pulls/4),使用方式见
|
AD 接入与 Spring Security 重构统一见 [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)。
|
[iam-login AD 接入文档](https://git.ddupan.top/panxiao81/iam-login/src/branch/main/docs/ad-login.md)。
|
||||||
按维护者 2026-09-27 明确的边界,React 只替换 Spring Security 默认登录前端。
|
按维护者 2026-09-27 明确的边界,React 只替换 Spring Security 默认登录前端。
|
||||||
认证、因素状态、SecurityContext、会话轮换与退出由 Spring Security 管理,不再维护
|
认证、因素状态、SecurityContext、会话轮换与退出由 Spring Security 管理,不再维护
|
||||||
自建 `LoginTransaction` 状态机。HTTPS 跳转使用 Spring Security 配置;未启用 AD 时
|
自建 `LoginTransaction` 状态机。HTTPS 跳转使用 Spring Security 配置;未启用 AD 时
|
||||||
通过条件装配移除登录页面与密码处理链,由兜底安全链拒绝访问,不增加自定义 Filter。
|
通过条件装配移除登录页面与密码处理链,由兜底安全链拒绝访问,不增加自定义 Filter。
|
||||||
密码通过可以保存仅含密码因素的认证结果,但不能
|
密码通过可以保存仅含密码因素的认证结果,但不能
|
||||||
据此接受 Hydra challenge;MFA 未实现期间,其余应用入口仍拒绝访问。
|
据此接受 Hydra challenge;尚未实现的应用入口仍拒绝访问。
|
||||||
|
|
||||||
代码按 DDD 组织 `authentication` 限界上下文:领域层持有 `User`、`UserRepository`,
|
代码按 DDD 组织 `authentication` 限界上下文:领域层持有 `User`、`UserRepository`,
|
||||||
应用层编排目录密码验证和用户查询,AD 基础设施使用 Spring Data LDAP 实现用户仓储,
|
应用层编排目录密码验证和用户查询,AD 基础设施使用 Spring Data LDAP 实现用户仓储,
|
||||||
@@ -217,6 +217,13 @@ Security Provider 将结果接入框架,Web 层只渲染页面。仓储复用
|
|||||||
查询完成即关闭,不增加独立读取账号,也不把密码或连接保存在浏览器会话中。
|
查询完成即关闭,不增加独立读取账号,也不把密码或连接保存在浏览器会话中。
|
||||||
后续机器 API 独立设计。
|
后续机器 API 独立设计。
|
||||||
|
|
||||||
|
WebAuthn 采用 Spring Security 官方 JDBC 仓储与 PostgreSQL,开发先使用本地容器和持久卷;
|
||||||
|
生产共享 PostgreSQL 在部署阶段接入。首次注册要求近期 AD 密码,已有凭据后的注册还需
|
||||||
|
已有 WebAuthn 因素;注册本身不算第二因素通过。凭据删除、自助恢复与已有凭据迁移暂未开放。
|
||||||
|
认证器验证、因素合并与会话轮换复用框架,应用扩展只约束目录主体、凭据归属与 challenge
|
||||||
|
时效/单次消费。实现与验证范围见 [iam-login PR #6](https://git.ddupan.top/panxiao81/iam-login/pulls/6);
|
||||||
|
2026-09-27 已通过 JVM 与虚拟认证器浏览器验证,真实人类 passkey 与 Native 验收待完成。
|
||||||
|
|
||||||
### 目录与 DNS 迁移
|
### 目录与 DNS 迁移
|
||||||
|
|
||||||
人类同样使用这套独立 IAM。首轮由 iam-login 直接连接 Samba AD 验证密码、查询用户与组,
|
人类同样使用这套独立 IAM。首轮由 iam-login 直接连接 Samba AD 验证密码、查询用户与组,
|
||||||
|
|||||||
+19
-3
@@ -92,8 +92,7 @@ Gitea 接入见 [PR #143](https://git.ddupan.top/panxiao81/homelab-infra/pulls/1
|
|||||||
当前不展开嵌套组或主组,不能视为已完成与 Authelia 的有效组集合等价验证。
|
当前不展开嵌套组或主组,不能视为已完成与 Authelia 的有效组集合等价验证。
|
||||||
密码成功仅代表第一因素通过;Gitea 仍使用上面已验收的 Go/Authelia 路径。
|
密码成功仅代表第一因素通过;Gitea 仍使用上面已验收的 Go/Authelia 路径。
|
||||||
按 2026-09-27 明确的实现边界,React 只替换 Spring Security 默认 UI,密码 POST、
|
按 2026-09-27 明确的实现边界,React 只替换 Spring Security 默认 UI,密码 POST、
|
||||||
因素状态和认证会话交由框架管理。待 MFA 页面要求近期密码因素,其他应用入口在
|
因素状态和认证会话交由框架管理。待 MFA 页面要求近期密码因素,尚未实现的应用入口拒绝访问。监控 Basic 认证与人类登录会话隔离。
|
||||||
MFA 接入前拒绝访问。监控 Basic 认证与人类登录会话隔离。
|
|
||||||
|
|
||||||
本轮开发验证通过 JVM 测试,并从 JVM 通过 CA/域名验证读取真实 AD RootDSE。
|
本轮开发验证通过 JVM 测试,并从 JVM 通过 CA/域名验证读取真实 AD RootDSE。
|
||||||
2026-09-25 维护者已在 HTTPS 开发入口完成真实密码验证,成功进入待 MFA 页面,
|
2026-09-25 维护者已在 HTTPS 开发入口完成真实密码验证,成功进入待 MFA 页面,
|
||||||
@@ -102,4 +101,21 @@ MFA 接入前拒绝访问。监控 Basic 认证与人类登录会话隔离。
|
|||||||
AD 接入与 Spring Security 重构统一见 [iam-login PR #4](https://git.ddupan.top/panxiao81/iam-login/pulls/4);
|
AD 接入与 Spring Security 重构统一见 [iam-login PR #4](https://git.ddupan.top/panxiao81/iam-login/pulls/4);
|
||||||
2026-09-27 通过 18 项 JVM 测试和 1 项浏览器回归,新版本真实人类复验仍待反馈。
|
2026-09-27 通过 18 项 JVM 测试和 1 项浏览器回归,新版本真实人类复验仍待反馈。
|
||||||
配置、边界与使用方式见
|
配置、边界与使用方式见
|
||||||
[iam-login AD 接入文档(开发分支)](https://git.ddupan.top/panxiao81/iam-login/src/branch/feat/ad-login/docs/ad-login.md)。
|
[iam-login AD 接入文档](https://git.ddupan.top/panxiao81/iam-login/src/branch/main/docs/ad-login.md)。
|
||||||
|
|
||||||
|
### WebAuthn 开发验证
|
||||||
|
|
||||||
|
2026-09-27 的 [iam-login PR #6](https://git.ddupan.top/panxiao81/iam-login/pulls/6) 将第二因素接入
|
||||||
|
Spring Security 官方 WebAuthn 流程,并以官方 JDBC 仓储和本地 PostgreSQL 持久卷保存凭据。
|
||||||
|
该实现仍在开发 PR,生产 Go/Authelia 链路未切换。
|
||||||
|
|
||||||
|
开发入口仍为 `https://laptop.tail7e769.ts.net:18082/signin`,限 Tailscale 可达。
|
||||||
|
先验证 AD 密码,首次使用注册 passkey,再实际验证 passkey;注册成功本身不通过 MFA。
|
||||||
|
已有凭据后的新增注册要求现有 MFA;本轮 UI 不开放凭据管理、删除或自助恢复。
|
||||||
|
`/signin/complete` 显示双因素结果,目前不向 Hydra 接受授权。
|
||||||
|
|
||||||
|
22 项 JVM 测试与 Chromium 虚拟认证器流程通过,覆盖再次登录、注册限制、会话轮换、
|
||||||
|
challenge 过期/消费、断言重放及跨主体凭据拒绝。真实开发 HTTPS 页面的证书与表单回归
|
||||||
|
已检查;这些不是实际用户的 MFA 验收,也不构成 Native 或重启恢复验收。
|
||||||
|
数据库开发操作、数据卷保留与失败边界见
|
||||||
|
[WebAuthn 文档(开发分支)](https://git.ddupan.top/panxiao81/iam-login/src/branch/feat/webauthn-mfa/docs/webauthn.md)。
|
||||||
|
|||||||
Reference in New Issue
Block a user