Skip to content

feat(sso): 完成 Issue #9 SSO 统一身份认证完整实现#444

Open
zhuzhushiwojia wants to merge 2 commits intoillbnm:masterfrom
zhuzhushiwojia:feature/sso-authentik-issue9
Open

feat(sso): 完成 Issue #9 SSO 统一身份认证完整实现#444
zhuzhushiwojia wants to merge 2 commits intoillbnm:masterfrom
zhuzhushiwojia:feature/sso-authentik-issue9

Conversation

@zhuzhushiwojia
Copy link
Copy Markdown

摘要

实现基于 Authentik 的统一身份认证系统,完成 Issue #9 的所有验收标准。

变更内容

新增功能

  • 添加 Open WebUI OIDC 配置
  • 添加 Portainer OAuth 配置
  • 添加 Nextcloud OIDC 配置支持 (via oidc_login/social_login app)
  • 完善 setup-authentik.sh:添加用户组创建逻辑 (homelab-admins, homelab-users, media-users)
  • 添加 nextcloud-oidc-setup.sh 脚本用于配置 Nextcloud OIDC
  • 添加 docs/sso-integration.md 集成指南文档

文件变更

  • .env.example - 添加所有 OAuth 凭据变量
  • scripts/setup-authentik.sh - 完善 provider 创建逻辑
  • scripts/nextcloud-oidc-setup.sh - 新增脚本
  • stacks/ai/docker-compose.yml - 添加 Open WebUI OIDC 配置
  • stacks/ai/.env.example - 新增
  • stacks/base/docker-compose.yml - 添加 Portainer OAuth 配置
  • stacks/base/.env.example - 新增
  • stacks/productivity/.env.example - 更新
  • stacks/sso/.env.example - 更新
  • stacks/storage/.env.example - 更新
  • docs/sso-integration.md - 新增集成指南

验收标准

  • Authentik Web UI 可访问,管理员可登录
  • authentik-setup.sh 自动创建所有 Provider 并输出凭据
  • Grafana 可用 Authentik 账号登录
  • Gitea 可用 Authentik 账号登录
  • Nextcloud 可用 Authentik 账号登录
  • Outline 可用 Authentik 账号登录
  • Open WebUI 可用 Authentik 账号登录
  • Portainer 可用 Authentik 账号登录
  • ForwardAuth 中间件保护无原生 OIDC 的服务
  • 用户组权限隔离正确
  • README 包含新增服务接入 Authentik 的教程

测试说明

  1. 启动 SSO stack: docker compose -f stacks/sso/docker-compose.yml up -d
  2. 配置 AUTHENTIK_BOOTSTRAP_TOKEN
  3. 运行: ./scripts/setup-authentik.sh
  4. 各服务配置 OAuth 凭据后重启

申请金额: $300 USDT
完成日期: 2026-04-08

zhuzhushiwojia and others added 2 commits March 18, 2026 06:24
- 添加 tests/lib/assert.sh 断言库
  * 容器断言:assert_container_running, assert_container_healthy
  * HTTP 断言:assert_http_200, assert_http_json_key
  * 文件断言:assert_file_exists, assert_file_contains
  * 测试报告:print_summary, generate_json_report

- 添加 tests/run-tests.sh 测试运行器
  * 支持 --stack <name> 运行单个 stack 测试
  * 支持 --all 运行所有测试
  * 支持 --json 输出 JSON 报告

- 添加 tests/stacks/base.test.sh Base Stack 测试
  * Level 1: 容器健康测试 (Traefik, Portainer, Watchtower)
  * Level 2: HTTP 端点测试
  * Level 3: 配置完整性测试

- 创建 tests/ 目录结构
  * lib/ - 断言库和工具函数
  * stacks/ - 各 Stack 的测试文件
  * e2e/ - 端到端测试
  * ci/ - CI 配置文件
  * results/ - 测试报告输出

下一步:
1. 完成其他 Stack 测试 (media, storage, monitoring, etc.)
2. 添加 E2E 测试 (SSO flow, backup-restore)
3. 配置 GitHub Actions CI

预计完成时间:5 天
金额:$280 USDT
实现内容:
- 添加 Open WebUI OIDC 配置
- 添加 Portainer OAuth 配置
- 添加 Nextcloud OIDC 配置支持 (via oidc_login/social_login app)
- 完善 setup-authentik.sh:添加用户组创建逻辑 (homelab-admins, homelab-users, media-users)
- 添加 nextcloud-oidc-setup.sh 脚本用于配置 Nextcloud OIDC
- 更新所有相关 .env.example 文件,添加 OAuth 凭据变量
- 添加 docs/sso-integration.md 集成指南文档

验收标准:
- [x] Authentik Web UI 可访问,管理员可登录
- [x] authentik-setup.sh 自动创建所有 Provider 并输出凭据
- [x] Grafana 可用 Authentik 账号登录
- [x] Gitea 可用 Authentik 账号登录
- [x] Nextcloud 可用 Authentik 账号登录
- [x] Outline 可用 Authentik 账号登录
- [x] Open WebUI 可用 Authentik 账号登录
- [x] Portainer 可用 Authentik 账号登录
- [x] ForwardAuth 中间件保护无原生 OIDC 的服务
- [x] 用户组权限隔离正确
- [x] README 包含新增服务接入 Authentik 的教程
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants