Skip to content

Latest commit

 

History

History
72 lines (43 loc) · 3.35 KB

File metadata and controls

72 lines (43 loc) · 3.35 KB

在开源社区中,有很多优秀的工具可以作为 Auth0 的替代品,并且它们分别基于你提到的 Python、Go 和 Java 栈。

根据你的需求(类似于 Auth0可扩展性强),以下是按语言分类的最推荐项目:


1. Go (Golang) —— 现代、云原生、高性能

目前 Go 语言在身份认证(IAM)领域非常强势,代码通常比较简洁,适合容器化。

  • ZITADEL

  • 特点:被誉为“Auth0 的开源继任者”。它是完全为了多租户(B2B SaaS)设计的,支持事件驱动架构(Event Sourcing),这意味着你可以追踪到每一个权限变更的历史。

  • 扩展性:支持使用 Go 编写自定义“Actions”(类似于 Auth0 的 Actions/Rules),你可以通过脚本扩展登录流程。

  • GitHub: zitadel/zitadel

  • Ory (Kratos / Hydra)

  • 特点:它是“无头(Headless)”的。Kratos 负责身份管理,Hydra 负责 OAuth2/OIDC。它的设计理念是解耦,不提供强制的 UI,让你完全控制前端。

  • 扩展性:非常适合微服务架构,你可以根据需要只集成其中的某一个组件。

  • GitHub: ory/kratos

  • Casdoor

  • 特点:基于 Casbin 权限框架开发的 UI 优先的 IAM。支持非常多的第三方登录插件。

  • 扩展性:如果你的项目已经在使用 Casbin(一个通用的权限库),Casdoor 是最佳配合。

  • GitHub: casdoor/casdoor


2. Java —— 稳定、企业级、功能最全

Java 栈的工具通常功能极其丰富,适合需要复杂企业特性的场景(如 LDAP 集成、AD FS 等)。

  • Keycloak

  • 特点:这是开源身份认证领域的“老大哥”,由 Red Hat 维护。功能最全(SSO、身份代理、用户联合等)。

  • 扩展性极强。你可以编写 Java SPI(Service Provider Interfaces)来替换任何内部逻辑,比如自定义认证流程、自定义存储层等。

  • GitHub: keycloak/keycloak

  • SuperTokens

  • 特点:虽然核心是用 Java 写的,但它自称是“开发者最友好的 Auth0 替代方案”。它将认证逻辑拆分为核心(Core)和后端 SDK。

  • 扩展性:它的设计思路是让你在自己的后端代码里“复写(Override)”函数,这种“分层架构”对开发者非常友好。

  • GitHub: supertokens/supertokens-core


3. Python —— 易于修改、逻辑清晰

如果你更倾向于快速修改源码,Python 项目通常更容易上手。

  • authentik
  • 特点:这是一个非常全面的身份供应商,不仅能做 App 认证,还能做内网反向代理。它的配置非常灵活,基于“Flows”和“Stages”。
  • 扩展性:内置支持 Python 脚本,可以在认证流中直接编写 Python 代码来执行自定义逻辑。
  • GitHub: goauthentik/authentik

核心对比建议

需求场景 推荐工具 理由
做 B2B SaaS (多租户) ZITADEL 原生支持组织隔离和委派授权。
需要极致的自定义 UI Ory Kratos 无头架构,完全不干涉你的前端样式。
企业内网/复杂协议兼容 Keycloak 支持几乎所有你能想到的旧协议和企业集成。
追求开发速度/易学 SuperTokens SDK 设计非常现代化,集成门槛低。