项目详情

authentik

「你需要的认证粘合剂」——自托管 SSO 的事实标准之一,Okta 的开源平替

GitHub 地址 官网 25.4k Stars MIT 核心 + EE Python/Django SAML · OIDC · LDAP · RADIUS

更新于 2026-09-05

← 返回汇总
项目速览

一句话定位

给所有应用发一把统一钥匙

开源 Identity Provider(身份提供方):把 SAML、OAuth2/OIDC、LDAP、RADIUS、反向代理认证全部协议收进一个自托管服务,你的所有应用——Grafana、Nextcloud、GitLab、内部系统——都来它这里登录一次通行 everywhere。杀手锏是可视化 Flow 引擎:登录/注册/MFA 流程像搭积木一样编排,再用 Policy 表达式精细控制「谁能过、什么时候过」。6.8 年 25.4k stars、604+ 贡献者,企业版明确对标并替代 Okta/Auth0/Entra ID。

项目速览

核心数据

25.4k
Stars
604+
贡献者
6.8 年
2019-12 至今
7
认证协议/机制
1,990
Forks
1,092
Open Issues
2026-09-05
最近提交(今日)
MIT+EE
核心开源 · 企业收费

数据来源:GitHub API,采集于 2026-09-05。三层许可:核心 MIT、文档 CC BY-SA 4.0、企业功能专属许可;另有 Outpost 边缘组件独立 CI。

为什么存在

自托管世界的「账号碎片化」绝症

每个应用一套账号

自托管 20 个服务 = 20 套用户名密码、20 个管理员界面、20 次忘记密码重置。人一多就是灾难。

协议是巴别塔

Grafana 说 OIDC、老内部系统只认 LDAP、企业伙伴要 SAML、VPN 用 RADIUS——每个协议都是一次独立集成。

云 IdP 的人口税

Okta/Auth0 按月按人头收费,MFA/企业功能层层加价;身份这种命脉数据还必须存在别人家里。


authentik 的答案:一个自托管 IdP 把全部协议「说齐」,应用各自选方言接入,账号/MFA/授权策略中央管理——认证粘合剂(The authentication glue you need)这个名字就是产品定义。

协议全家福

七种身份方言,一个都不少

协议 / 机制角色典型场景
OAuth2 / OIDCProvider + Client现代 Web/App 登录(Grafana、Nextcloud、自研应用)
SAML 2.0IdP + SP企业级 SaaS 与传统企业应用(Salesforce、Workday 类)
LDAPProvider(可当 LDAP 服务器)老系统、NAS、VPN、打印机——只会问 LDAP 的遗民设备
RADIUSProviderVPN、网络设备认证
SCIMProvider用户/组自动供给到 SaaS(企业标配)
Proxy / Forward AuthOutpost 边缘组件给 nginx/Traefik/Caddy 后面的任何应用加登录墙——应用本身不用改一行代码
MFAFlow 内 stageTOTP · WebAuthn/Passkey · Duo · 静态 token · SMS

Proxy provider 是杀手锏:内网几十个「没有 SSO 概念」的自建应用,靠 Outpost 反代统一加认证——这是它与纯协议库的本质区别。

核心机制

Flow 引擎:登录流程是搭出来的,不是写死的

示例:默认登录 Flow Identification 输入用户名/邮箱 Password 密码校验 Policy Gate 表达式策略分支 MFA (WebAuthn) 外网登录 → 要求 MFA 直接放行 内网可信网络跳过 ✓ 登录成功 为什么 Flow + Policy 是灵魂 · 登录/注册/恢复/MFA 全是 Flow:stage 像积木一样增删排序,改认证体验不用改代码—— «登录流程产品化» · Policy 是 Python 表达式:按用户属性/设备/IP/时间/分组任意组合,「内网免 MFA、外包账号只读、下班时间拒 VPN」都是一行表达式 · 应用集成模板库预置数百个常见应用的接入配置(Grafana/Jellyfin/GitLab…),选模板填两个字段即通 · 这套引擎是 authentik 与 Keycloak 体验差异的核心:Keycloak 靠 SPI 写 Java,authentik 在 UI 里点+写表达式
架构

核心 + Outpost:身份的中央与边缘

authentik 核心(中央部署) Python/Django 服务 + PostgreSQL + Redis Flow / Policy / 应用 / 用户 / 组 / MFA 管理 协议端点:SAML · OIDC · LDAP · RADIUS · SCIM Web UI(管理员 + 用户门户)· 邮件通知 · 事件审计 长连接心跳 Outposts(边缘,部署在应用侧网络) Proxy Outpost:跑在 nginx/Traefik/Caddy/K8s 旁 Forward Auth 给任意内网应用加认证墙 · LDAP Outpost 输出 LDAP 视图 应用流量 → Outpost 判定 → 未登录重定向核心登录 → 带身份回来 RAC(远程访问控制)把桌面/RDP/SSH 也纳入统一入口 设计收益:中央宕机 ≠ 全站宕机 Outpost 缓存会话,核心短暂不可达时已认证流量照常通行
中央大脑(身份/策略/协议) 边缘执行(离应用最近的检查点)
对比坐标

IdP 赛道选型速览

authentikKeycloakZitadelAuth0 / Okta
定位自托管全协议 IdP红帽系企业 IdPGo 新锐,多租户向SaaS 商业巨头
Stars / 年龄25.4k / 6.8 年~28k / 11 年~18k / 4 年商业
协议面SAML+OIDC+LDAP+RADIUS+SCIM+ProxySAML+OIDC+LDAP+SCIMOIDC+SAML全协议
流程定制可视化 Flow + Python 表达式 PolicySPI 写 JavaActions(TS)Rules/Actions
内网应用加墙Outpost Forward Auth 开箱需自配 proxy弱N/A(云外)
许可MIT 核心 + EEApache-2.0Apache-2.0 + 商业商业
运维重量Compose 即起,K8s 官方 Helm重(JVM 调优)轻(单二进制)零运维

一句话:Keycloak 赢在企业存量与红帽背书;authentik 赢在流程编排体验与 Proxy 场景;Zitadel 赢在多租户与轻量;Auth0 赢在什么都不用管。

快速上手

Docker Compose 三分钟起

# 官方 compose 含 authentik + postgres + redis
wget https://goauthentik.io/docker-compose.yml
# 编辑 .env 设置密码与密钥后:
docker compose up -d
# 打开 http://<server>:9000/if/flow/initial-setup/
# 设管理员密码 → 建应用 → 选协议模板 → 接入 Grafana/Nextcloud…
风险与局限

冷静看

潜力评估

打分

维度评分依据
成熟度
6.8 年、604+ 贡献者、大量生产集群背书
协议完整度
七种机制全覆盖,Proxy 场景独步
可定制性
Flow+Policy 引擎是同类最佳体验
上手体验
概念密度高,文档全但学习曲线真实存在
商业可持续
企业版 + 明确对标 Okta 的商业叙事

综合 9/10。自托管 SSO 与 Keycloak 并列的双雄之一,Flow 引擎是认证流程「产品化」的最佳实现——一旦用过,回头看任何硬编码登录都嫌粗糙。

最终裁决

适合谁,不适合谁

装
  • 自托管多服务的家庭实验室到企业——统一登录的第一需求
  • 内网一堆「无 SSO 概念」的老应用,想加统一认证墙(Outpost)
  • 要替换 Okta/Auth0/Entra ID,数据主权与费用都要抓回自己手里
  • 对登录流程/MFA/策略有定制洁癖的团队
缓
  • 只有一个应用要登录(杀鸡用牛刀,用应用自带认证)
  • 没人愿意学 Flow/Policy 概念的极小团队(Zitadel/Authelia 更轻)
  • 需要多租户 SaaS 化身份的(Zitadel 更对口)
  • 无运维预算的高可用硬需求(云 IdP 或企业版)

上一个
Hermes Studio
下一个
OpenWiki
在线体验

Flow 引擎模拟器

亲手编排一条登录流:增删 Stage(识别/密码/MFA/邮件验证)、拨动 Policy 开关(内网免 MFA、锁定账号拒登录),再模拟不同用户走一遍——看同一个 Flow 如何因人而异地分岔。这正是 authentik 的灵魂机制。

进入 Playground →
1 / 13