这个工具搞定了全栈认证难题 (Authentik)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00在遇到登录页面之前,你的技术栈看起来可能很整洁。
00:00:03一个服务用于本地认证,另一个没有多因素认证,还有一个拥有完全不同的
00:00:08用户系统。现在你还得管理 Docker 或 Kubernetes 中不同的登录信息。这在出问题之前
00:00:14运行得还行。这就是 Authentic。一个自托管工具,为你提供 SSO、MFA、
00:00:20通行密钥,以及跨一切应用的中央控制。我会在接下来的几分钟里向你展示如何部署
00:00:25以及如何进行设置。
00:00:30[音乐]
00:00:32Authentic 是一个开源的自托管身份提供商。基本上,它成为了你所有应用的
00:00:39登录系统。与其让每个服务各自糟糕地处理认证,或者我们自己把它们
00:00:44拼凑在一起,Authentic 在一个地方处理这一切。我获得了 SSO、多因素认证、
00:00:50用户管理和访问控制。就像 Okta,但因为它是开源的,所以你真正拥有它。
00:00:56它支持你所期望的一切,但这里有很大的不同。与其与
00:01:01XML 配置作斗争,或者被困在 SaaS 规则中,Authentic 使用流程、阶段和 Python 策略。
00:01:08所以你可以像开发人员一样构建认证逻辑。这就是赢面所在。这确实减少了碎片化,
00:01:14更好的安全性,且没有厂商锁定。如果你喜欢能加速工作流的工具,
00:01:18请务必订阅。我们一直在发布视频。
00:01:21越来越多的开发者正在远离笨拙的设置和云 IDP,不是因为 Authentic 更小,
00:01:28而是因为它的可用性更高。让我向你展示它实际是什么样子的。
00:01:32现在我用的是一台全新的服务器,只需一个命令 "docker compose up",Authentic 就运行起来了。
00:01:39这真的是我们需要做的全部。现在我可以打开管理界面,创建一个应用,
00:01:44并且可以将 OAuth 作为提供商添加进去,或者在这里选择任何其他方式。这花不到 30 秒。
00:01:50接下来,我启动一个演示应用。这里并没有什么复杂的东西。我只是要设置
00:01:54重定向 URL 为 localhost,填入我从 Authentic 获得的客户端 ID 和密钥,然后登录。
00:02:01真的就是这样。我可以在这里添加新用户并用它们来登录,
00:02:07所以现在我以用户身份而不是管理员身份拥有了访问权限。我没有自定义登录页面,
00:02:13没有需要尝试维护的密码系统,也没有跨服务的拼凑式认证。
00:02:19这大约花了 90 秒,而这个应用现在有了更具生产级别的身份验证。
00:02:24这就是一切豁然开朗的时刻。看起来它应该很复杂,
00:02:27但实际上它相当简单。我可以在这里链接起整个认证系统,
00:02:32选择我想在 Authentic 上如何操作。但现在这该如何比较呢?因为还有其他选择。
00:02:38我们有 Keycloak。Keycloak 很棒,但它仍然感觉沉重且老旧,更偏向企业级。
00:02:45Authelia 很轻量,但你很快就会超出它的适用范围。然后我之前提到的 Okta,
00:02:50或者 Auth0。这些很精致,但我们得花钱,尤其是当你用户多了以后。
00:02:56Authentic 算是介于这一切之间,对吧?有完整的身份管理,
00:03:01有一个可视化的流程构建器,它非常灵活,我们不必支付所有这些昂贵的
00:03:05SaaS 费用。现在它确实有一个付费版本,好吧,我一点也不喜欢这样,但开源版本对
00:03:12我们很多人来说,已经可以做很多事情了。如果你在大规模扩展,那么你确实需要为此
00:03:16付费。再说一次,我喜欢开源工具。这确实是开源的,但如果你要大规模扩展,我们确实得付点钱。
00:03:22用户界面现代且直观。流程图让你能可视化地
00:03:27构建登录逻辑。所以所有这些都很棒。而且拥有那些 Python 策略让你在配置不够用时
00:03:33能进行详细的自定义。它不仅适用于 Kubernetes,而且是 API 驱动的。
00:03:40所有这些都非常好。此外,你可以在一个地方获得集中的 MFA 用户管理和服务
00:03:47门户。现在,它也有缺点。首先,是的,它是开源的。对于我们中的许多人来说,
00:03:52这很棒。但正如我提到的,随着你成长,你需要付费,我想这和任何服务一样,肯定。
00:03:58但你仍然不喜欢在达到一定限制后不得不付费。我不喜欢
00:04:04那样,对吧?它有学习曲线。老实说,安装它确实让人困惑,
00:04:09但一旦运行起来,它的效果非常好。它比超轻量工具
00:04:13要重一些。大约需要 2GB 的内存。而且如果你不运行高可用性架构,它就成了
00:04:19单点故障。所以它并不完美,但对于大多数开发者,我们得出了相同的结论,
00:04:26对吧?起初很难学习,但一旦上手,它确实非常有用。
00:04:30它真的很棒。它把很多不同的东西连接在一起。那么,它值得吗?好吧,
00:04:35你们自己判断吧。我的意思是,如果你运行自托管栈,比如家庭实验室、
00:04:40内部工具、SaaS、本地应用,那它会很棒。它对于这些非常有用。
00:04:45如果你想要到处都有真正的 SSO 和 MFA,它解决了你已经有的问题。如果你想要
00:04:50控制权而不是受困于定价,它就更有意义了。如果你需要自定义认证逻辑,
00:04:56这正是它表现出色的地方。现在,它做得很好,但如果你想要
00:05:00几乎无需设置的超轻量工具,它就不适合你了。你需要设置这个。或者如果你
00:05:06真的在进行大规模扩展,那么老实说,其他付费提供商会更好。但对我们大多数人来说,
00:05:11一旦你设置好了,事情就会发生改变,认证不再分散在每个应用中,
00:05:16而变成了一个你真正控制的系统。一旦你习惯了它,就很难回去了。至少这很有意义。
00:05:22这是一个很好的工具,可以纳入我们的工作流中。如果你喜欢开源工具
00:05:27和能加速工作流的编码技巧,请务必订阅 Better Stack 频道。
00:05:32我们下个视频见。

Key Takeaway

Authentik 通过自托管的可视化流程构建器和 Python 策略,取代了分散且复杂的认证系统,为开发者提供了具备生产级安全性及高度控制权的中央身份管理平台。

Highlights

  • Authentik 是一个开源的自托管身份提供商,支持 SSO、MFA、通行密钥及跨应用的中央认证控制。

  • Authentik 使用 Python 策略、流程和阶段来定义认证逻辑,而非传统的 XML 配置或受限的 SaaS 规则。

  • 只需一条 "docker compose up" 命令即可完成部署,应用集成通常可在 90 秒内实现。

  • 相比于 Keycloak(沉重)和 Authelia(功能受限),Authentik 在企业级功能与轻量化之间取得了平衡。

  • 运行 Authentik 基础配置需要大约 2GB 内存,且在非高可用架构下存在单点故障风险。

  • Authentik 提供免费的开源版本,但在大规模扩展场景下需要付费购买企业版。

Timeline

身份认证管理的痛点

  • 不同服务通常存在碎片化的用户系统和认证逻辑。
  • 本地认证与多因素认证(MFA)的不统一增加了运维难度。

本地认证、缺乏 MFA 的服务以及各异的用户系统,在 Docker 或 Kubernetes 环境下难以维护。Authentik 旨在将 SSO、MFA 和通行密钥集中化处理,解决认证分散的问题。

Authentik 的核心优势

  • Authentik 采用基于流程、阶段和 Python 策略的构建方式,支持自定义认证逻辑。
  • 开源属性消除了厂商锁定,且在灵活性上优于传统的 SaaS 认证解决方案。

Authentik 允许开发者像编写代码一样处理认证逻辑,不再局限于笨拙的配置或云 IDP 的限制。这种方法减少了技术碎片化,并提升了整体安全性。

部署与应用集成

  • 通过 "docker compose up" 命令即可快速部署。
  • 应用集成过程仅需配置重定向 URL、客户端 ID 和密钥,用时不到 90 秒。

管理界面支持 OAuth 等多种提供商协议,用户可快速将应用接入中央管理系统。无需维护自定义密码系统或拼凑认证逻辑,即可获得生产级别的认证环境。

市场对比与局限性

  • Keycloak 过于沉重且偏向企业级,Authelia 则功能较局限。
  • Authentik 运行需要约 2GB 内存,且在单一实例下存在单点故障风险。
  • 开源版本足以满足大多数需求,但大规模扩展时需考虑付费升级。

Authentik 填补了轻量级工具与昂贵 SaaS 服务之间的空白。尽管拥有现代化的界面和 API 驱动的架构,但较高的资源占用和学习曲线是其主要技术挑战。对于需要中央 SSO 与 MFA 的自托管环境,它是极佳的替代方案。

Community Posts

View all posts