去年冬天,一家做医疗影像分析的创业公司收到了客户的一份安全问卷。中间有一栏问题很简单:”贵司员工和客户账户的身份认证数据,物理存储在哪个国家、由谁托管?”
技术负责人打开后台一查,答案是:某家美国 SaaS 身份认证服务商的服务器,具体机房位置未公开,数据条款里写着”我们可能将数据传输至任何我们运营所在的司法管辖区”。
那份问卷卡在了这一栏,客户是一家欧洲医院集团,卡了整整三周。最后这家创业公司做了一个决定:把身份认证这一层彻底搬回自己的基础设施,一行代码都不假手于人。
这不是一个孤例。当团队开始处理医疗、金融、政务这类强合规行业的客户,或者只是单纯不想在”某天服务商涨价/被收购/条款变更”这件事上受制于人,”自己搭一套身份认证系统”就从一个技术选型问题,变成了业务生存问题。
好消息是,这条路现在比五年前好走多了。开源社区里已经长出了几套足够成熟、能扛住生产环境的自托管身份提供商(Identity Provider,简称 IdP,通俗理解就是负责”你是谁、你能干什么”这件事的统一认证中心)。今天要聊的主角是 Authentik,以及它绕不开的三个同阵营对手:Authelia、Keycloak 和 Zitadel。
先说清楚,这四个和你可能听过的 Okta、Auth0 不是一回事
如果你查过身份认证方案,大概率见过 Okta、Auth0、Clerk 这几个名字。它们做的事情类似,都是统一登录、单点登录(SSO)、多因素认证,但商业模式完全不同:你的用户数据存在它们的云上,你按用户数或者调用量付费,本质上还是把”信任”这件事外包给了第三方。
Authentik、Authelia、Keycloak、Zitadel 走的是另一条路。它们都是开源项目,代码你能审查,部署在你自己的服务器或者私有云上,用户数据从产生到销毁都不离开你的地盘。你不用为每个用户付月费,但你需要有人来维护它,这是自由的代价,也是很多团队权衡再三才会做的选择。
这四个工具里,Keycloak 是老大哥,Red Hat 十多年前就开始投入,企业级功能最全,也是很多大公司内部身份系统的底座。Zitadel 是最近几年冒出来的新势力,主打云原生架构,对 Kubernetes 环境特别友好。Authelia 走的是轻量路线,专注做一件事:给你现有的反向代理(比如 Nginx、Traefik)加一层认证网关。Authentik 则试图在”功能全面”和”部署简单”之间找平衡点,界面友好度是它被频繁提起的原因之一。
从一个具体场景说起:如果你只是想给内部工具加个登录墙
假设你的团队搭了十几个内部工具,监控面板、日志查询、CI/CD 控制台,散落在不同的域名下,每个工具自己的登录逻辑都不一样,有的甚至压根没做权限控制,谁拿到内网 IP 就能看。这是很多成长期公司的真实写照。
这种场景下,Authelia 是最省心的答案。它不试图成为一个”大而全”的身份平台,而是专注做反向代理层的认证网关:你把它挂在 Nginx 或 Traefik 前面,配置好域名规则,之后所有请求都先过它这一关,验证通过了才放行到后端服务。它支持单因素密码登录,也支持 TOTP 动态验证码这类双因素认证,配置文件是 YAML,对已经在用容器化部署的团队来说上手成本很低。
它的短板也很明确:如果你想要的是”给每个应用做精细的用户角色管理”,Authelia 不是为这个设计的。它更像一把专用工具,干好一件事,而不是一个大平台。
如果你的组织结构复杂到需要”部门-角色-权限”这套体系
再换一个场景。你的公司有销售、研发、财务、外部承包商好几类身份,每类人能访问的系统、能看到的数据粒度都不一样,而且这套权限体系还要经常根据组织架构调整。
这种复杂度下,Keycloak 的企业级基因就体现出来了。它支持完整的角色和用户组管理,能做细粒度的授权策略,内置了对 SAML、OpenID Connect、OAuth2 这几种主流认证协议的支持,几乎能对接市面上任何一个需要单点登录的第三方系统。金融、医疗这类对合规审计要求严格的行业里,Keycloak 是被验证过的选择,因为它背后站着 Red Hat 这样的企业级软件供应商,长期维护有保障。
代价是学习曲线。Keycloak 的管理后台功能多到有点让新手迷失方向,第一次部署时光是搞懂”realm(域)、client(客户端)、role(角色)”这几个核心概念之间的关系,就得花上不少时间啃文档。它更适合有专职人员长期维护的团队,不太适合”我们就想快速上线一个登录功能”的场景。
如果你已经在 Kubernetes 生态里,想要原生集成的那种顺手
再来看一个更现代的场景:你的整套基础设施已经跑在 Kubernetes 上,用 Helm 管理部署,习惯了云原生那套声明式配置的思路。这时候引入一个部署方式格格不入的老派系统,会让整套架构显得不协调。
Zitadel 正是为这种场景而生的。它从设计之初就考虑了云原生和多租户(multi-tenant,也就是一套系统同时服务多个独立客户,数据互不干扰)场景,对 Kubernetes 部署原生友好,配置和扩缩容都能用云原生的方式来操作。它同样支持 OpenID Connect 和 SAML,也提供细粒度的权限管理,定位上介于 Authelia 的轻量和 Keycloak 的重型企业方案之间。
选择 Zitadel 通常发生在你已经决定”整套技术栈都要现代化”的时候,而不是单纯想解决登录问题。如果你的团队还在用传统虚拟机部署,引入 Zitadel 可能会感觉在啃一块和现有习惯不太搭的骨头。
那 Authentik 补的是哪块缺口
看完前面三个,你可能已经发现一个规律:Authelia 轻但功能窄,Keycloak 全但复杂,Zitadel 现代但和云原生深度绑定。三个工具各自守着自己的定位,中间留出了一块空当,留给那些需要比 Authelia 更全面的功能,又不想承受 Keycloak 那种学习曲线,同时不一定非得绑定 Kubernetes 生态的团队。
Authentik 想填的就是这块空当。它同样支持 OAuth2、SAML、LDAP(一种更老但仍被大量企业内部系统使用的目录协议)等主流认证协议,功能覆盖面接近 Keycloak,但在管理界面的设计上花了更多心思。它的后台有一套流程编排(flow)的可视化设计,你可以用类似搭积木的方式配置登录、注册、密码找回这些流程的每一步,而不是在配置文件里堆砌参数。这种设计对不是天天和身份认证系统打交道的团队来说,友好度明显更高。
部署方式上,Authentik 提供官方的 Docker Compose 配置,社区活跃度也在持续增长,遇到问题去查文档或者社区讨论,通常能找到现成的答案。它不追求做到 Keycloak 那种企业级功能的每一个角落,但对大多数中小团队”既要功能够用,又不想被复杂配置拖垮”的需求,覆盖得比较扎实。
把四个工具放在一起看看
说了这么多场景故事,落到实际选型时,你大概想要一张能快速对照的表。这里要提前说清楚一点:这张表不是为了告诉你”谁分数最高”,因为这四个工具压根不是在同一个维度上竞争,而是各自服务不同的部署复杂度和团队规模。表格只是把前面讲的场景差异,浓缩成方便扫一眼的形式。
| 维度 | Authentik | Authelia | Keycloak | Zitadel |
|---|---|---|---|---|
| 定位 | 功能全面 + 界面友好 | 轻量反代认证网关 | 企业级全功能平台 | 云原生多租户方案 |
| 部署复杂度 | 中等,Docker Compose 官方支持 | 低,配置简单 | 高,概念多需要学习 | 中等,Kubernetes 环境下友好 |
| 支持协议 | OAuth2 / SAML / LDAP | 单因素+双因素认证 | OAuth2 / SAML / OpenID Connect | OpenID Connect / SAML |
| 权限管理粒度 | 中高,可视化流程编排 | 低,非核心定位 | 高,角色+用户组体系完整 | 高,多租户原生设计 |
| 适合团队规模 | 中小到中型团队 | 任意规模,尤其内部工具场景 | 中大型/合规要求高的组织 | 已采用云原生架构的团队 |
| 维护背景 | 活跃开源社区 | 活跃开源社区,定位专一 | Red Hat 主导,长期支持有保障 | 商业公司主导的开源项目 |
| 授权协议 | MIT | Apache 2.0 | Apache 2.0 | AGPLv3(部分企业功能商业授权) |
看这张表的时候,重点不是逐行比参数,而是先问自己一个问题:你现在的痛点,更接近”想要一个不难维护的登录墙”,还是”需要撑起整个组织的权限体系”,还是”整套基础设施都在往云原生走”。答案基本就决定了你该往哪个方向看。
回到开头那家医疗影像公司,他们最后选了什么
这家公司的团队规模不算大,十几个人,但客户对合规的要求很高,权限体系也需要区分内部员工和外部医院客户两套账户体系。他们最终选择了 Authentik,理由很朴素:Keycloak 对他们来说功能过剩、维护成本超出团队能承受的范围;Authelia 又不够用,撑不住他们需要的多角色权限区分;Zitadel 虽然现代,但他们的基础设施还没有完全迁移到 Kubernetes,暂时用不上那套云原生的优势。
部署完成后,那份卡了三周的安全问卷终于能填上明确答案:身份数据存储在自己控制的服务器上,物理位置、访问日志、备份策略都清清楚楚。技术负责人后来提到,这套系统上线后维护成本比预想的低,因为 Authentik 的可视化流程配置确实降低了排查问题的门槛,不需要每次改动都去翻源码级别的文档。
自建身份认证这件事,从来不是”哪个工具最强”的比赛,而是”你的团队现在能扛得动哪种复杂度”的现实判断。如果你正在纠结这个问题,不妨先把自己团队的规模、合规压力、现有基础设施摸清楚,答案往往比想象中清晰。



