<!-- title: 自建登录大门：8个开源认证神器 -->

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

## 概述

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

---

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

**仓库**：[keycloak/keycloak](https://github.com/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](https://github.com/goauthentik/authentik) | Star 约 1.7 万 | 活跃维护

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

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

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

**上手难度**：⭐⭐⭐

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

---

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

**仓库**：[authelia/authelia](https://github.com/authelia/authelia) | Star 2 万+ | 活跃维护

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

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

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

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

**上手难度**：⭐⭐⭐

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

---

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

**仓库**：[zitadel/zitadel](https://github.com/zitadel/zitadel) | Star 1.4 万+ | 活跃维护

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

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

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

**上手难度**：⭐⭐⭐

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

---

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

**仓库**：[logto-io/logto](https://github.com/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](https://github.com/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](https://github.com/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](https://github.com/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 | 自托管验证码管理 | 千级 | ⭐ | 所有两步验证用户 |

## 生态全景

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

## 本期之最

- **最值得立即尝试：Pocket ID** — 五分钟给全家桶服务装上一把 Passkey 锁，回报/成本比无出其右。
- **最有商业潜力：Zitadel** — 多租户是 IAM 里最值钱的难题，它把答案做成了产品底座，二开即生意；Logto 可作为出海方向备选。
- **最被低估：Rauthy** — 单人维护、工程质量过硬、资源占用吊打同行，只差一次社区曝光。

## 参考来源

1. [keycloak/keycloak - GitHub](https://github.com/keycloak/keycloak) — Keycloak 官方仓库，协议支持与特性以 README 及官方文档为准
2. [goauthentik/authentik - GitHub](https://github.com/goauthentik/authentik) — Authentik 仓库，Flows 与 Application Proxy 特性说明见官方文档 goauthentik.io
3. [zitadel/zitadel - GitHub](https://github.com/zitadel/zitadel) — Zitadel 仓库，多租户模型与 gRPC API 见官方文档
4. [logto-io/logto - GitHub](https://github.com/logto-io/logto) — Logto 仓库，Connectors 与登录体验编辑器见 logto.io
5. [authelia/authelia - GitHub](https://github.com/authelia/authelia) — Authelia 仓库，Forward Auth 工作原理见 authelia.com 文档
6. [sebadob/rauthy](https://github.com/sebadob/rauthy) 与 [Bubka/2fauth](https://github.com/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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
