RepoDaily · 2026-08-07 · Infrastructure / Runtime

authentik:覆盖 SAML、OIDC、LDAP 与 RADIUS 的自托管身份提供商

#19 Infrastructure / Runtime Python +123 goauthentik/authentik 打开仓库

一款面向实验室和生产规模自托管的开源身份提供商,提供 Docker Compose、Kubernetes Helm、AWS CloudFormation 和 DigitalOcean 一键部署路径。

项目类型Infrastructure / Runtime
最适合需要自托管身份提供商、覆盖 SAML、OAuth2/OIDC、LDAP、RADIUS 协议并希望避免厂商锁定的工程团队。
风险等级中等——核心采用 MIT 许可并具备文档化的安全流程,但表达式策略可在无沙箱的情况下执行任意 Python 代码。
评估时间使用 Docker Compose 搭建实验室约需 1 到 3 天,硬化 Kubernetes 部署并对接上游 IdP 则需要更长时间。

核心问题: 你的团队是否有能力运维自托管 IdP,并严格限制谁可以创建或修改表达式策略?

87/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 87/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
100证据质量

包含 5 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

100可安装/可试用性

检测到 5 个工作流步骤、4 个下一步动作,以及 5 个命令/安装信号。

60维护可信度

趋势热度为 +123 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

91生产准备度

采纳风险标记为 medium,并包含 5 条安全说明与 3 条跳过条件。

100差异化

3 个机会视角、4 个替代方案,以及 3 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

60Agent / AI 适配度

文章正文和元数据中检测到 2 个 AI/Agent 相关信号。

项目概览

authentik 是一款面向现代单点登录的开源身份提供商(IdP)。仓库 README 将其定义为支持 SAML、OAuth2/OIDC、LDAP、RADIUS 等协议的软件,并面向从小型实验室到大型生产集群的自托管场景。项目将自身定位为 Okta、Auth0、Entra ID 和 Ping Identity 的替代方案,并提供单独授权的企业版,用于大规模身份管理。

项目文档化了四条安装路径。Docker Compose 推荐用于小型或测试环境,Kubernetes Helm 推荐用于较大规模部署,AWS CloudFormation 模板用于在 AWS 上部署,DigitalOcean Marketplace 提供一键部署。Helm Chart 维护在独立的 goauthentik/helm 仓库中,使核心应用代码与部署清单保持分离。

authentik 主要以 Python 编写,围绕 server、outpost 和 web 前端构建。README 中的 CI 徽章引用了三条工作流:ci-main.yml 负责核心构建,ci-outpost.yml 负责 outpost 构建,ci-web.yml 负责 web 构建。代码覆盖率通过 Codecov 追踪,Docker 镜像以 authentik/server 名称发布并使用语义化版本标签。

解决什么问题

  • 被商业 IdP 锁定的组织面临许可成本压力,且对策略逻辑和数据驻留的控制有限。
  • 需要同时使用 SAML、OAuth2/OIDC、LDAP 和 RADIUS 的团队往往不得不拼接多个工具。
  • 如果没有经过整理的模板,在 Docker Compose、Kubernetes 和云原生环境之间一致地部署自托管身份基础设施非常困难。

工作原理

  1. 使用 Docker Compose 部署实验室环境,或使用 Helm Chart 部署基于 Kubernetes 的生产集群。
  2. 配置 outposts,这些组件负责将 LDAP、RADIUS 等协议代理并桥接到核心 authentik server。
  3. 为所需协议定义 provider,例如 SAML、OAuth2/OIDC、LDAP 或 RADIUS,并将其关联到应用。
  4. 通过 flows 和 policies 控制认证、注册和恢复流程,包括可执行 Python 代码的表达式策略。
  5. 通过 authentik 暴露的协议端点集成应用,并通过 CI 徽章监控 core、outpost 和 web 组件的构建状态。

README 中文档化的部署路径

README 列出了四种安装方式。Docker Compose 推荐用于小型和测试环境,文档位于 docs.goauthentik.io 的 install-config/install/docker-compose 路径下。Kubernetes 部署使用维护在 goauthentik/helm 仓库的 Helm Chart,文档位于 install-config/install/kubernetes。AWS 部署使用官方 CloudFormation 模板,文档位于 install-config/install/aws。DigitalOcean 部署使用 marketplace.digitalocean.com/apps/authentik 上的 Marketplace 应用。

协议与构建组件

  • 协议:README 中提到的 SAML、OAuth2/OIDC、LDAP、RADIUS 以及更多协议。
  • 核心构建:通过 ci-main.yml GitHub Actions 工作流追踪。
  • Outpost 构建:通过 ci-outpost.yml 工作流追踪,覆盖协议代理组件。
  • Web 构建:通过 ci-web.yml 工作流追踪,覆盖前端应用。
  • 容器分发:Docker 镜像以 authentik/server 名称发布,使用语义化版本标签。

版本节奏、安全流程与表达式风险

SECURITY.md 将 2026.2.x 和 2026.5.x 列为当前支持版本,每个版本的最新补丁版本获得支持。项目声明致力于定期进行渗透测试和外部审计,详细信息见其安全文档。CVE 分级遵循 NVD CVSS 评分,严重性类别从 0.0 的 None 到 9.0 至 10.0 的 Critical。

一个值得关注的维护风险记录在 SECURITY.md 的 Intended Functionality 部分:property mappings、policies 和 prompts 中的表达式可在无沙箱的情况下执行任意 Python 代码。项目明确表示这是预期行为,任何拥有创建或修改含表达式字段对象权限的用户都可以编写在 authentik 内执行的代码。这一设计选择将运维责任交给管理员,要求其限制对支持表达式对象的写入权限。

谁适合关注

适合关注

  • 希望用一个产品替代商业 IdP、获取自托管 SAML、OIDC、LDAP 和 RADIUS 的团队。
  • 以 Kubernetes 为标准平台、能够使用 goauthentik/helm Chart 的平台工程师。
  • 能够限制管理员对表达式策略字段访问权限的组织。

可以先跳过

  • 没有人力运维和补丁自托管身份服务的团队。
  • 要求每个身份功能都附带厂商 SLA 和金钱赏金的环境。
  • 要求终端用户或低信任管理员也能安全编辑策略表达式而不产生代码级风险的场景。

风险与注意事项

核心产品采用 MIT 许可、文档完善,并通过多条官方路径部署,但表达式策略可执行任意 Python 代码的设计意味着必须严格控制管理员访问权限。

  • SECURITY.md 文档化了 property mappings、policies 和 prompts 中的表达式可在无沙箱情况下执行任意 Python 代码。
  • 不对有效漏洞报告提供金钱赏金,可能降低外部研究者的参与动力。
  • 支持版本矩阵仅覆盖最近两个命名版本,要求组织跟上升级节奏。
  • 自托管部署引入了对身份基础设施可用性、补丁和备份的运维责任。
  • SECURITY.md 声明项目遵循负责任披露,并要求研究者避免公开报告。
  • 漏洞报告通过 security@goauthentik.io 或 GitHub 私有安全通告门户提交。
  • 项目承诺定期进行渗透测试和外部审计,详细信息见其安全文档。
  • CVE 资格使用 NVD CVSS 评分确定,严重性区间从 None 到 Critical。
  • 基于表达式的策略被归类为预期功能而非漏洞,因为其依赖管理员信任。

替代方案比较

方案适用场景代价
Keycloak
当你希望使用广泛采用的开源 IdP,覆盖 SAML 和 OIDC,并拥有庞大社区。Apache 2.0 许可下免费。
Zitadel
当你希望使用专注于多租户云原生部署的开源身份平台。Apache 2.0 许可下免费,并提供托管云版本。
Okta
当你需要完全托管的商业 IdP 并附带厂商 SLA。商业订阅。
Auth0
当你希望使用面向开发者、集成库丰富的托管身份服务。商业订阅,提供免费层级。

这个趋势说明了什么

将协议覆盖整合到一个 IdP

authentik 在单一产品中支持 SAML、OAuth2/OIDC、LDAP 和 RADIUS,免去了分别运行 LDAP 代理和 SAML 桥接器的需要。

通过针对代表性应用测试每种 provider 类型,确认协议覆盖符合你的应用清单。

基于 Helm Chart 标准化部署

goauthentik/helm Chart 为生产集群提供 Kubernetes 原生部署路径,减少自定义清单的需要。

将 Chart 部署到预发布集群,并在生产推广前验证 LDAP 和 RADIUS 的 outpost 连接。

降低 IdP 厂商支出

README 将 authentik 定位为 Okta、Auth0、Entra ID 和 Ping Identity 的替代方案,对于能够自托管的组织可能降低许可成本。

将包含运维人力在内的总拥有成本与当前商业 IdP 合同进行比较。

下一步建议

使用 Docker Compose 搭建实验室,并测试一个 OIDC 和一个 SAML 应用

README 推荐使用 Docker Compose 进行小型和测试环境部署,这是评估协议覆盖和管理界面的最快路径。

  1. 按照 docs.goauthentik.io 下 install-config/install/docker-compose 的 Docker Compose 文档操作。
  2. 创建一个 OIDC provider,并连接一个测试应用以验证 OAuth2/OIDC 流程。
  3. 创建一个 SAML provider,并连接第二个测试应用以验证断言行为。
  4. 审阅 SECURITY.md 的 Intended Functionality 部分,并记录组织中允许编辑表达式字段的人员。

RepoDaily 判断

对于需要在一个产品中获取 SAML、OAuth2/OIDC、LDAP 和 RADIUS 的自托管团队,authentik 是一个值得认真评估的身份提供商,前提是团队能够控制对表达式策略的管理访问,并跟上支持版本矩阵的升级节奏。

信息来源