Keycloak vs Authing,单点登录该用开源框架实现吗?

Keycloak是一个开源软件产品,旨在为现代的应用程序和服务,提供包含身份管理和访问管理功能的单点登录工具。Authing 是一款企业级的身份认证产品,集成了所有主流身份认证协议,为企业和开发者提供完善安全的用户认证和访问管理服务。

开源 or 企业级?

开源软件,即免费让人们用于商业用途的软件,由此可见免费即是它最大的优势。使用开源软件,可以降低开发成本,快速推出自己的产品。同时,开源软件也十分灵活,能够定制和修改源代码。每个人都可以访问代码,任何人都可以主动修改 bug,使其变得更好,这使得开源软件在开发者群体中获得不少的青睐。

开源软件虽然存在着不少的优势,但是面对着复杂的商业环境和市场竞争,开源软件也逐渐暴露出它的问题。首先,开源软件并不是完全免费的,开发者根据自己的意愿开发产品并开放源代码,但这不是消费者的需求,从而导致用户体验降低,需要花费额外的时间或费用获得技术帮助。其次,开源软件的安全性低,当一个开源组件存在漏洞时,这个漏洞会被迅速公布,以便开发者可以执行必要的修复。然而,黑客也可以看到这些信息,他们不需要付出任何努力,就能了解哪些组件易受攻击以及如何进行攻击,这不免会对用户造成潜在的威胁。

由于开源软件可以在互联网上免费得到,因此带来大量用户对 bug 修复的建议。这可能会导致大量的补丁,使得源代码更加复杂,甚至出现结构问题,而这些问题往往都会导致高额的维修费用,产生过高的维护成本。开源软件没有商业利润的刺激,必然缺少健康的上下游「生态系统」。想要通过开源软件达到商业上的直接获利,必须进行必要的深度开发才能够实现。

没有一条裤子适合所有人,没有一款软件适用于所有企业,针对企业的软件解决方案和服务永远比软件产品本身重要。因此,为企业量身定制的企业级软件在市场中脱颖而出,受到更多的关注。

企业级软件相较于开源软件,通常是为具有大量特性的大型企业量身定做的。供应商很清楚行业标准和标准公司的需求,并将这些概念包含在他们的编程中,不仅能带来专业的技术支持,还能帮助公司保持竞争力。此外,标准的企业级软件是不需要大量的编程工作的,通常都是「开箱即用」,所以,开放源码的特殊诱惑对企业业务来说是微不足道的,这将大大提升企业效率。此外,企业级软件经常更新,不仅升级功能,也修补了漏洞,安全性上比开源软件更有保障。

开源软件的出现给广大开发者带来了福音,让开发者省去了重写代码的麻烦,而企业级产品的诞生更是直接解放双手,即取即用,用全面的服务为企业提供安全保障。

Keycloak or Authing?

Authing 和 Keycloak 在身份认证和访问管理的解决方案中共同支持许多标准功能,如安全注册和身份验证,OAuth 令牌和 API 密钥管理,单点登录(SSO)和多因素认证(MFA)等等。 它们也都是免费的,并且可以从活跃的用户社区中获得。

为了更好的了解 Keycloak 和 Authing,我们将二者的功能进行了详细的比较,得到了下图的功能对比表。

用户体验 UI/UE

从用户体验角度看,keycloak 控制台是比较传统的工业风格,在交互体验上偏老旧,用户操作不友好。与之相比,Authing 控制台业务逻辑更加友好,业务梳理也更加清晰。

默认支持的标准认证协议

Keycloak 目前只支持 OIDC 和 SAML2.0 协议,Authing 支持 OAuth 2.0, OIDC, SAML, AD/LDAP, WS-Fed 等全部主流认证协议。

Webhooks 和事件

Keycloak 不支持 Webhooks,但可以通过复杂的扩展 SPI 来定制,实现起来很复杂。Authing 支持 Webhooks,用户池管理员可以在控制台配置各类事件的通知地址,当你的平台有用户注册、登录、修改个人资料、修改密码时,会自动通知你的服务器。

商业支持

Keycloak 虽然是基于商业应用友好的 Apache Licence 协议,但是 Keycloak 要想商用仍然有一些工作要做,效率很低。Authing 在商业支持上不仅有多达 3000 次免费的 API 调用,体验所有功能,还具有开发者版、高级版、企业版等不同类型的定制服务,全方位地满足客户的商业需求。

安全补丁

Keycloak 作为开源软件,更新速度比较慢。Authing 作为专业企业级软件,会定期发布功能更新和补丁。 对于有平台依赖需要的公司,Authing 还提供了许多支持和托管选项。

用户迁移无需更改密码

Keycloak 不能实现无需修改密码进行用户迁移。Authing 支持通过函数计算的方式执行自定义的密码加密和解密函数,可以自定义密码校验逻辑,让用户无缝迁移到 Authing。

高级许可和合规管理

Keycloak 不具备完善的高级许可和合规管理,但 Authing 具有国际权威安全认证与成熟的信息安全管理体系,对软件全生命周期进行安全保障,拥有可靠的数据安全保护以及全天候安全应急响应措施。

定制功能开发

Keycloak 不提供定制功能开发。Authing 可以根据客户的需求,为企业定制专属的身份认证平台。

秒级安装部署

Keycloak 提供传统的部署方式,如支持多种容器化部署集群,支持集中化配置管理,支持复杂网络环境私有化部署等等。Authing 也同样支持这些,此外,Authing 针对企业级用户提供私有化部署服务,提供一键部署安装包,能够将 Authing 秒级部署到你的企业内部服务器。

Keycloak 作为一款开源软件,在简单的场景下可以做到开箱即用,但是如果想要配置更加复杂的场景,其操作难度和工作量也会正向递增。Authing 作为企业级的专业产品,顺畅且简单,集成所用的时间也更少。如果企业想要快速提高生产效率、增强安全性、推动业务发展,Authing 一定是更正确的选择。