随着 Homelab 中自建服务(如 Gitea、Jellyfin、Nextcloud、Grafana、Vaultwarden 等)的增多,每个应用独立管理账号密码不仅极度繁琐,也缺乏统一的权限管控与多因素安全防护。
Authentik 是一款全功能的开源统一身份提供者(Identity Provider, IdP),支持 OIDC、SAML、LDAP 以及 Forward Auth(反向代理无感拦截鉴权),并提供美观的统一应用导航门户!
[!NOTE] 📌 核心速览(TL;DR / 快问快答):
- 核心协议全兼容:支持 OpenID Connect (OIDC)、SAML 2.0、LDAP 与 Proxy Forward Auth(零代码为老旧 Web 面板添加 SSO)。
- 企业级多因素认证:原生支持 Passkey (WebAuthn)、TOTP (Google Authenticator) 与 Duo 硬件密钥。
- 微服务解耦架构:由 Authentik Server、Worker、PostgreSQL 16 与 Redis 组成高可靠认证集群。
🛠️ 2026 生产级 Docker Compose 部署
1. 生成环境密钥 .env
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=false" >> .env
2. 编写 compose.yaml
services:
postgresql:
image: postgres:16-alpine
container_name: authentik_db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${PG_PASS}
POSTGRES_USER: authentik
POSTGRES_DB: authentik
volumes:
- ./data/postgres:/var/lib/postgresql/data
redis:
image: redis:alpine
container_name: authentik_redis
restart: unless-stopped
volumes:
- ./data/redis:/data
server:
image: ghcr.io/goauthentik/server:latest
container_name: authentik_server
restart: unless-stopped
command: server
environment:
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__USER: authentik
AUTHENTIK_POSTGRESQL__NAME: authentik
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
volumes:
- ./media:/media
- ./custom-templates:/templates
ports:
- "9000:9000"
depends_on:
- postgresql
- redis
worker:
image: ghcr.io/goauthentik/server:latest
container_name: authentik_worker
restart: unless-stopped
command: worker
environment:
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: postgresql
AUTHENTIK_POSTGRESQL__USER: authentik
AUTHENTIK_POSTGRESQL__NAME: authentik
AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS}
AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY}
user: root
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./media:/media
- ./certs:/certs
depends_on:
- postgresql
- redis
启动集群:docker compose up -d。
🚀 初始化与 Gitea OIDC 对接实战
- 初始化超级管理员:访问
http://服务器IP:9000/if/flow/initial-setup/,按提示设置akadmin账号与高强度密码。 - 创建 OIDC Provider:在 Authentik 后台进入 Applications -> Providers -> Create,选择 OAuth2/OpenID Provider,设置 Client Type 为 Confidential 并记下
Client ID与Client Secret。 - 创建 Application:进入 Applications -> Create,名称填
Gitea,绑定上一步的 Provider。 - Gitea 对接:在 Gitea 的“站点管理 -> 认证源”添加 OAuth2/OIDC 源,填入 Discovery URL 与 ID/Secret 即可实现一键登录!
❓ 常见问题与 AI 快问快答 (FAQ)
Q1: Authentik 相比 Keycloak 有什么优势?
答:Authentik 界面更现代化、支持原生 Proxy Forward Auth,且运行内存约为 300MB(远低于 Java 编写的 Keycloak 动辄 1GB+ 内存占用),极适合 Homelab 与中小型团队。
Q2: 部署 SSO 认证中心的海外 VPS 推荐哪家网络?
答:在 DMIT 或 搬瓦工 的 中国电信 CN2 GIA 或 联通 AS9929 专线 VPS 上,跨国 OIDC Token 校验响应时间在 50ms 以内。选购参考见 《2026 国外 VPS 选购指南》。
(相关资源导航:如果您需要购买部署统一身份认证中心的独立 VPS,欢迎阅读 《2026 国外 VPS 选购指南》 获取 DMIT、搬瓦工与 CloudCone 优惠;商用专线推荐见 《“饿饭CC云”深度评测》!)