首页 › weekly › 自建登录大门:8个开源认证神器

自建登录大门:8个开源认证神器深度拆解

概述

你自托管了二十个服务,结果每个都要单独注册账号、记住二十套密码;或者你在做一个 SaaS,光是「登录注册改密码」就耗掉两周工期。登录是被严重低估的刚需基建——本期聚焦身份认证与统一登录(IAM)这个方向,从 30k Star 的老牌巨兽,到千星级单二进制小钢炮,按「大而全 → 轻量门卫 → 小而美」的梯度挖了 8 个仓库。它们共同回答一个问题:把「你是谁」这件事的判定权,拿回自己手里。文中 Star 数为约数,以仓库实时数据为准。


1. Keycloak — 老而弥坚的企业级 IAM 巨兽

仓库:keycloak/keycloak | Star 约 3 万 | 长期高频发版

一句话定位:Red Hat 系出品的开源身份平台,能用协议基本覆盖你听过的所有认证方式。

痛点:企业里既有支持 OIDC 的新应用,也有只会 SAML 的祖传系统,还有存了十年账号的 LDAP/AD。Keycloak 是少数把这三者全吞下的选手:OIDC、OAuth2、SAML 三协议原生支持,LDAP/AD/Kerberos 用户联邦开箱即用,社交登录通过身份代理(Identity Brokering)一拖即连。

拆解:扩展靠 SPI(Java 插件机制),登录页靠 Theme 体系整套换肤,所有管理操作都有 Admin REST API 可编程化。集群方案成熟,是本期唯一经过大规模生产锤炼的选项。代价是 JVM 的内存胃口和不小的运维复杂度,升级大版本前要仔细读迁移文档。

上手难度:⭐⭐⭐⭐

适用人群:需要对接企业遗留系统、跑等保合规的团队。二开方向:老系统 IAM 改造与迁移服务、信创环境适配,都是真金白银的咨询生意。


2. Authentik — 最像「产品」的开源 IdP

仓库:goauthentik/authentik | Star 约 1.7 万 | 活跃维护

一句话定位:界面漂亮、流程可编排的现代化统一登录平台,背后已有商业公司(Authentik Security)全职运营。

痛点:Keycloak 太重、界面是「运维审美」,小团队想要一个既能自用又能卖给客户的体面登录方案。

拆解:核心亮点是 Flows——把登录、注册、找回密码做成可视化编排的流程图,可以插入任意验证步骤而不改代码;Application Proxy(Go 写的 outpost)能给完全没有鉴权的内网应用从外面套一层登录壳;SCIM、LDAP outpost、RADIUS 等协议适配齐全。Python 后端 + 前后端分离架构,二开门槛比 Java 低一档。

上手难度:⭐⭐⭐

适用人群:想给公司统一入口、又在意颜值和文档的中小团队。二开方向:基于它做「中小企业托管登录」代维服务,或嵌入行业解决方案当账号中台。


3. Authelia — 不改一行代码,给内网服务加门禁

仓库:authelia/authelia | Star 2 万+ | 活跃维护

一句话定位:反向代理层的鉴权中间件——应用不需要知道「登录」这回事,门卫在门口把人拦下。

痛点:Grafana、Router 面板、自建 Wiki……这些服务有的压根没有多用户体系,你不可能挨个改造。

拆解:原理是 Forward Auth:反向代理收到每个请求,先转身问一句 Authelia「这人进来过吗」,没登录就 302 到登录页,登录过才放行到后端。授权规则用 YAML 按域名/路径精细控制(比如 /admin 只许管理员组),二步验证支持 TOTP 和 WebAuthn,存储从文件、SQLite 到 Postgres 随意选,近年也补上了 OIDC Provider 能力。

flowchart LR
  U["用户请求"] --> P["反向代理"]
  P --> A["Authelia 鉴权"]
  A -->|未登录| L["跳转统一登录页"]
  A -->|已放行| S["内网应用"]

上手难度:⭐⭐⭐

适用人群:Homelab 玩家和自托管重度用户。二开方向:打成 NAS 生态的一键应用、做成面向小白用户的「家庭网络门禁」付费镜像。


4. Zitadel — API 优先的多租户身份底座

仓库:zitadel/zitadel | Star 1.4 万+ | 活跃维护

一句话定位:瑞士团队用 Go 写的 IAM,天生为「一个实例服务 N 个租户」而生。

痛点:做 SaaS 最头疼的是租户隔离——每个客户一套组织、角色、品牌登录页,多数 IdP 要靠暴力起多个实例硬凑。

拆解:数据模型原生分 Organizations → Projects → Roles 三层,多租户是一等公民而非补丁;API 走 gRPC-first,所有控制台操作都有对等的编程接口,适合「登录系统被代码调用而不是被人点」的场景;内置审计日志,谁在什么时候动了什么权限,开箱可查。部署单容器起步,官方同时提供云版本验证商业模式。

上手难度:⭐⭐⭐

适用人群:正在造多租户 SaaS 的独立开发者和产品团队。二开方向:本期商业潜力之最——直接拿它当垂直行业(医疗、教育、政企)SaaS 的账号底座,省掉自研 IAM 的半年工期。


5. Logto — 写给开发者的「登录组件」

仓库:logto-io/logto | Star 约 1 万 | 活跃维护

一句话定位:华人团队(Silverhand)打造的开发者体验极佳的认证方案,OSS + 云双轨。

痛点:独立开发者想要的不是一台「身份服务器」,而是一个接进代码就完事的登录组件——最好连登录页都不用设计。

拆解:招牌是登录体验编辑器——注册/登录页在后台拖拽配置,Logo、文案、社交登录按钮实时预览;Connectors 体系把 Google、微信、短信、邮箱等几十种登录渠道标准化成一个接口;RBAC、Organizations(B2B 多租户)、机器对机器(M2M)凭证均有覆盖。技术栈 TypeScript + Postgres,前端工程师可以无障碍二开。注意部分高级 B2B 特性走商业授权,部署前看清许可证边界。

上手难度:⭐⭐

适用人群:做出海产品、在意登录页观感的独立开发者。变现思路:官方云服务已验证付费路径,你可以照此思路做行业模板(如跨境电商登录套件)。


6. Pocket ID — 一只容器跑起来的 Passkey SSO(小而美①)

仓库:pocket-id/pocket-id | Star 千级、增速飞快 | 维护中

一句话定位:只支持 Passkey 的极简 OIDC Provider,专为 Homelab 统一登录设计。

痛点:家里跑了十几个服务,想上 SSO,但 Keycloak 吃掉 1GB 内存、配置项看得头晕——你只想要「扫码/按指纹,进去」。

拆解:设计哲学是做减法:没有密码,登录只认 Passkey(WebAuthn),攻击面直接砍掉一大半;单容器 + SQLite,资源占用可以忽略不计;所有需要接入的服务只要配一个 OIDC Client ID/Secret。它把「自托管 SSO」的门槛从半天压缩到五分钟,因此在 Homelab 社区口口相传、曲线陡峭。

上手难度:⭐

适用人群:Homelab 用户、想要轻量 SSO 的小团队。二开方向:打包进各类 NAS 应用商店、做一个「Homelab 套件」的分发入口。


7. Rauthy — 单二进制 Rust 小钢炮(小而美②)

仓库:sebadob/rauthy | Star 千级 | 维护中

一句话定位:Rust 写的 IdP,一个二进制文件 + 几十 MB 内存,把认证服务器塞进最低配的 VPS。

痛点:「我想自己跑个 IdP,但租的 5 美元小鸡扛不动 Java。」

拆解:单二进制免依赖部署,内置 SQLite(也可切 Postgres),内存占用几十 MB 量级;协议面却不寒酸——OIDC 齐全、Passkey 支持积极跟进,暴力破解防护、静态加密、自动 housekeeping 都内置;配置走 TOML,文档站 docs.rauthy.io 写得意外清楚。作者单人长期高频维护,Release Notes 密度惊人,是典型的「一个人扛起一个品类」项目。

上手难度:⭐⭐⭐

适用人群:资源敏感的边缘部署、安全极客。被低估原因:没有商业化推手,全靠口碑传播——恰好是捡漏的好时机。


8. 2FAuth — 把两步验证码攥在自己手里(小而美③)

仓库:Bubka/2fauth | Star 千级 | 维护中

一句话定位:自托管的网页版验证器,替代 Google Authenticator。

痛点:手机丢 = 全部二步验证码陪葬;换机迁移 导出到此为止还手忙脚乱;想在电脑上登录,还得伸手拿手机对码。

拆解:PHP/Laravel 写的传统优雅小工具:浏览器里直接管理所有 TOTP/HOTP 账号(连 Steam OTP 都照顾了),分组、图标、收藏、搜索一个不少;提供 API,能脚本化管理验证码条目;数据存自己服务器,配合每日备份,「丢手机丢人生」的恐惧彻底解除。部署就是一套标准 PHP 应用,宝塔/Docker 都能秒装。

上手难度:⭐

适用人群:所有用二步验证的普通人,尤其是多设备办公者。二开方向:团队场景的「验证码交接」——员工离职时把客户后台的 2FA 平滑移交给继任者,这是企业真实付费点。


本期横向对比

Star 数为约数(截至撰稿),请以仓库页面实时数据为准。

仓库 定位 Star 量级 上手难度 最适合
Keycloak 企业级全协议 IAM ~30k ⭐⭐⭐⭐ 大企业、遗留系统
Authentik 高颜值全功能 IdP ~17k ⭐⭐⭐ 中小团队统一入口
Authelia 反代鉴权中间件 20k+ ⭐⭐⭐ Homelab 门禁
Zitadel 多租户身份底座 14k+ ⭐⭐⭐ SaaS 创业团队
Logto 开发者友好登录组件 ~10k ⭐⭐ 出海独立开发者
Pocket ID Passkey 极简 SSO 千级↑ ⭐ Homelab 新手
Rauthy 单二进制 Rust IdP 千级 ⭐⭐⭐ 低配 VPS/边缘
2FAuth 自托管验证码管理 千级 ⭐ 所有两步验证用户

生态全景

mindmap
  root((自托管身份基建))
    大而全平台
      Keycloak
      Authentik
      Zitadel
    开发者组件
      Logto
    轻量门卫
      Authelia
    小而美
      Pocket ID
      Rauthy
      2FAuth

本期之最

参考来源

  1. keycloak/keycloak - GitHub — Keycloak 官方仓库,协议支持与特性以 README 及官方文档为准
  2. goauthentik/authentik - GitHub — Authentik 仓库,Flows 与 Application Proxy 特性说明见官方文档 goauthentik.io
  3. zitadel/zitadel - GitHub — Zitadel 仓库,多租户模型与 gRPC API 见官方文档
  4. logto-io/logto - GitHub — Logto 仓库,Connectors 与登录体验编辑器见 logto.io
  5. authelia/authelia - GitHub — Authelia 仓库,Forward Auth 工作原理见 authelia.com 文档
  6. sebadob/rauthy 与 Bubka/2fauth — 本期两个千级小仓库,特性细节以各自 README 为准

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入