From 92d6598a0d00356445152330b11013dc650cdfb1 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Wed, 16 Sep 2026 15:27:25 +0000 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=BB=B4=E6=8A=A4=E8=80=85=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E7=A1=AE=E8=AE=A4=20Authelia=20=E4=B8=BA=20active=20?= =?UTF-8?q?=E7=9A=84=E5=94=AF=E4=B8=80=E4=B8=BB=20OIDC=20broker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ architecture/constraints.md | 2 +- services/authelia.md | 45 +++++++++++++++++++++++++++++++++++++ services/index.md | 7 +++--- verification.md | 5 ++++- 5 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 services/authelia.md diff --git a/README.md b/README.md index b9cf54f..01aba53 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ - [PostgreSQL Tenant Operator](services/postgresql-tenant-operator.md):计划在共享 PostgreSQL 上提供的 DBaaS 中间层。 - [Gitea Dynamic Runner](services/gitea-dynamic-runner.md):原 microVM runner,现支持 Pod/VM 两种一次性执行环境。 - [LAN DNS](services/lan-dns.md):Blocky 主 DNS、路由器上游与备用、Samba AD 域 DNS 的现状。 +- [Authelia](services/authelia.md):active 的唯一主 OIDC broker 与登录入口。 - [待核实与文档缺口](verification.md):互相矛盾的记录、缺少使用说明的服务、下一步核实方法。 - [架构约束](architecture/constraints.md):修改环境前必须遵守的设计及原始依据。 - [workload-sts 设计历史](architecture/workload-sts-history.md):已归档的早期身份方案及 SPIRE 替代决策。 @@ -24,6 +25,7 @@ PostgreSQL Tenant Operator 的 README 与架构文档,以及 Gitea Dynamic Runner README。 具体来源和查阅范围见各页;其余条目仍以初轮工作区证据为限。 LAN DNS 已按维护者于 2026-09-16 提供的现状更新,未查询现场。 +Authelia 同日由维护者明确为 active、唯一的主 OIDC broker,已同步到服务总览。 后续状态查询先向维护者确认动态工作与资料来源,授权范围内不重复询问。 本轮没有查询运行环境;“文档记录已部署”不等于今天已验证健康。 本库中的入口地址来自原有记录,也尚未逐一验证可达性。 diff --git a/architecture/constraints.md b/architecture/constraints.md index e18da44..f804016 100644 --- a/architecture/constraints.md +++ b/architecture/constraints.md @@ -9,7 +9,7 @@ | OpenBao 恢复不能依赖 k3s 或读取自己内部的恢复凭据 | 先恢复信任根,再恢复消费者 | `infrastructure/openbao/README.md`、`CLAUDE.md` | | Terraform 管 API 配置,Ansible 管主机及不能安全纳管的密钥材料 | 不可读回秘密和根密钥不能靠反复重建实现收敛 | `infrastructure/openbao/README.md` | | LAN HTTP 入口为 Envoy Gateway;新增服务核对 parentRefs、DNS 和认证 | 不直接套用 archive 中的 Gateway 示例 | `platform/envoy-gateway/README.md`、`AGENTS.md` | -| 人类身份由 Samba AD / Authelia 提供,workload 身份由 SPIRE 提供 | 身份签发不等于资源授权;基础设施与最小 PoC 已完成,后续集成以 #34 为准 | [SPIRE 状态与依据](../services/spire.md) | +| 人类身份由 Samba AD / Authelia 提供,Authelia 是 active 的唯一主 OIDC broker;workload 身份由 SPIRE 提供 | 身份签发不等于资源授权;SPIRE 基础设施与最小 PoC 已完成,后续集成以 #34 为准 | [Authelia](../services/authelia.md)、[SPIRE 状态与依据](../services/spire.md) | | SPIFFE 提供跨基础设施的统一机器身份入口,替代 workload-sts 统一 IAM 平台方案 | 服务信任 SPIFFE 身份、签发自己的 token 并维护自身权限;非 Kubernetes 身份不依赖 Kubernetes ServiceAccount,优先复用服务现有接入机制 | [核心设计与取舍](../services/spire.md#核心设计与取舍),维护者于 2026-09-16 补充 | | 已由 Flux 接管的资源通过 Git 修改;brownfield 不全局开启 prune | 防止漂移回滚与误删;未接管资源不能假定受 Flux 管理 | `clusters/homelab/README.md` | | DNS 各视图保留权威边界;只管理明确声明的 RRset | 不清理 Samba 自动维护的域记录;LAN 现状按维护者说明对齐,旧源码文档待同步 | `infrastructure/dns/README.md`、[LAN DNS](../services/lan-dns.md) | diff --git a/services/authelia.md b/services/authelia.md new file mode 100644 index 0000000..3e06d6a --- /dev/null +++ b/services/authelia.md @@ -0,0 +1,45 @@ +--- +title: Authelia +lifecycle: active +evidence: documented +last_reviewed: 2026-09-16 +last_verified: null +sources: + - 维护者于 2026-09-16 确认当前状态 +--- + +# Authelia + +**Authelia 已作为 homelab 唯一的主 OIDC broker 工作,当前状态为 active。** +此状态由维护者于 2026-09-16 明确,本轮未查询运行环境。 + +## 用途与入口 + +Authelia 承担人类用户的统一登录与应用 OIDC 接入。现有架构中,Samba AD 提供用户目录, +Authelia 提供网页认证与 OIDC;机器和 workload 身份由 [SPIFFE/SPIRE](spire.md) 提供。 +SPIRE 的 OIDC discovery 用于机器身份验签,不构成另一个人类登录 broker。 + +登录入口沿用源码仓库记录:。 +从已接入的应用选择其 SSO 登录入口,按 Authelia 页面完成认证后返回应用。 +具体应用入口和访问权限仍由各服务文档说明。 + +## 当前状态与历史记录 + +源码工作区 `apps/authelia/README.md` 中将 OIDC 描述为后续阶段的内容属于旧记录, +不能继续作为当前部署状态依据。旧 Keycloak、Casdoor 位于源码仓库 `archive/`, +不属于当前 OIDC 登录方案;目前无需为统一身份而重新引入它们。 + +本次只更新知识库状态,未修改原工作区 README,也未将 broker active 扩大解释为 +所有应用都已接入 OIDC。现有 forward-auth 接入与 OIDC 是不同的应用认证方式, +具体配置继续以各服务说明为准。 + +## 维护入口 + +以下路径相对于 homelab-infra: + +- `apps/authelia/`:Authelia 部署配置;README 中过时的 OIDC 阶段说明待同步。 +- `infrastructure/samba-ad/README.md`:用户目录与 AD。 +- `platform/envoy-gateway/README.md`:网关认证集成。 +- `archive/keycloak/RETIRED.md`、`archive/casdoor/RETIRED.md`:旧身份方案的退役记录。 + +新增应用的 OIDC 接入与权限配置在对应源码和服务文档中维护,不在知识库保存实际 client secret。 diff --git a/services/index.md b/services/index.md index 5c8a419..a1bc7a5 100644 --- a/services/index.md +++ b/services/index.md @@ -1,8 +1,9 @@ # 服务总览 审阅日期:2026-09-16。以下覆盖源码工作区 apps/、platform/、infrastructure/ 的一级组件,以及集群入口。 -**所有条目本轮均未现场验证。** 状态栏表示文档、ticket 或配置证据,不表示实时健康状态。 -SPIFFE/SPIRE 已按维护者授权补读 #34;其他条目仍为初轮工作区盘点,查询前先向维护者对齐。 +**所有条目本轮均未现场验证。** 状态栏表示维护者说明、文档、ticket 或配置证据,不表示实时健康状态。 +SPIFFE/SPIRE 已按维护者授权补读 #34;LAN DNS 与 Authelia 已按维护者说明更新, +独立项目按指定 README 收录。其余条目仍为初轮工作区盘点,查询前先向维护者对齐。 来源路径相对于 [homelab-infra](https://git.ddupan.top/panxiao81/homelab-infra);包含未提交内容,见首页证据边界。 入口按来源记录列出,访问范围和可达性仍需验证。缺口详情见[待核实清单](../verification.md)。 @@ -11,7 +12,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;其他条目仍为初轮工作区 | 组件 | 用途 | 记录入口 | 状态依据 | 来源 | 文档缺口 / 下一步 | |---|---|---|---|---|---| -| authelia | 统一登录与 OIDC | `auth.ddupan.top` | 记录已部署;旧 README 冲突 | `apps/authelia/README.md` | 补当前登录与接入指南 | +| [authelia](authelia.md) | 唯一主 OIDC broker、统一登录 | `auth.ddupan.top` | active;维护者于 2026-09-16 明确已在工作 | 维护者说明、`apps/authelia/` | 同步源码 README 中过时的 OIDC 阶段说明 | | [blocky](lan-dns.md) | LAN 主 DNS、广告过滤、分流 | `192.168.10.127:53` | 维护者说明已作为 DHCP 主 DNS,上游为路由器 | 维护者 2026-09-16 说明、`apps/blocky/README.md` | 无需逐台确认主机;旧源码说明待同步 | | codex-proxy | 代理服务,具体接口待确认 | `待核实` | 仅发现配置 | `apps/codex-proxy/docker-compose.yml` | 缺 README 与使用说明 | | gitea | 代码托管与 Actions | `git.ddupan.top` | 记录已部署 | `apps/gitea/README.md` | 补首次使用与 runner 选择 | diff --git a/verification.md b/verification.md index 0ea1064..1c56f95 100644 --- a/verification.md +++ b/verification.md @@ -6,6 +6,10 @@ ## 已对齐的动态工作 +Authelia 已按维护者于 2026-09-16 的说明标为 **active、唯一的主 OIDC broker**, +见 [Authelia](services/authelia.md)。原工作区的“OIDC 后续启用”描述待同步, +不再将其列为上线状态冲突,也不据此发起现场核实。 + LAN DNS 已按维护者于 2026-09-16 提供的现状对齐:DHCP 下发主 DNS Blocky、副 DNS 路由器,Blocky 上游为路由器,Samba AD 部分已完成。详见 [LAN DNS](services/lan-dns.md)。 维护者明确无需逐台确认主机;源码 DNS README 的旧描述待同步,不再据此判定尚未启用。 @@ -20,7 +24,6 @@ SPIFFE/SPIRE 按维护者指定,以 [#34](https://git.ddupan.top/panxiao81/hom | 项目 | 两边的记录 | 核实与收敛方式 | |---|---|---| -| Authelia | README 仍描述 OIDC 为后续阶段、旧 Contour/Traefik 路径;退役记录和 Envoy 文档已描述 Authelia 替代旧 IdP | 核对 OIDC discovery、登录及 forward-auth,重写过时段落;迁移旧文档前检查其中的敏感示例 | | Dynamic Runner 的启用范围 | 新仓库 README 定义 Pod/VM 两种接口;旧工作区仍记录 kind-microvm PoC | 软件与基础设施归属已由 README 明确;实际启用范围先问维护者,再按指定 ticket 或验证记录补充,不将旧 PoC 当作新接口已上线的依据 | | NATS durable 名称 | NATS 文档示例为 `kind-microvm-pve2`;microVM 文档配置为 `kind-microvm`,要求同类 worker 共享 durable | 查运行配置和 consumer;统一文档,避免多 worker 队列语义不一致 | | 旧 VictoriaMetrics Compose | `platform/observability/README.md` 说已替代;`apps/victoriametrics/` 仍留配置 | 只读检查 Docker 与采集目标,确认是否仍承担职责,再标记退役或迁移 |