18

我的公司正在使用 Auth0 进行身份管理,我们希望迁移到以下之一:

  • 钥匙斗篷
  • Wso2身份管理

您能建议任何平台有哪些优点和缺点吗?是否有特别突出的功能或与从 Auth0 迁移特别相关的功能?

到目前为止,我能够安装 gluu 服务器、keycloak 和 wso2 似乎非常棘手。

4

3 回答 3

26

我是Gluu的创始人。我可以对设计决策有所了解:

  • 确实,我们利用了良好的开源组件,其中存在一个活跃的社区。我们为什么要重新发明轮子?Shibboleth IDP 是一个出色的综合实施方案。Shibboleth 联盟会迅速解决问题,该联盟资助开发人员研究任何潜在问题,并快速修补软件。我们还使用 Passport-js。对于许多社交网络有 300 多种策略,如果我们自己编写所有内容,我们可能无法涵盖所需的连接器范围。最后,我们分叉了 OpenDJ 的最后一个开源版本,它在我们的生产环境中已经稳定了十多年。你可以说,Gluu 在很多方面都是开源的吸尘器——我们找到好的开源组件,并将它们集成到我们的平台中。这使我们能够专注于开发我们增加最大价值的组件——OAuth2、UMA、OpenID Connect 和 devops 工具。在这些领域,我们不能依靠外部社区来足够快地进行创新。SAML 或 LDAP 中没有什么新东西。但 OAuth 正在迅速发展。所以我们的目标是采用标准非常稳定的软件,并在需要快速创新的地方编写软件。当心那些想要编写整个堆栈的公司——这会导致产品的主要弱点,因为没有公司可以成为所有方面的专家。开源开发方法论的优势在于利用社区。所以我们的目标是采用标准非常稳定的软件,并在需要快速创新的地方编写软件。当心那些想要编写整个堆栈的公司——这会导致产品的主要弱点,因为没有公司可以成为所有方面的专家。开源开发方法论的优势在于利用社区。所以我们的目标是采用标准非常稳定的软件,并在需要快速创新的地方编写软件。当心那些想要编写整个堆栈的公司——这会导致产品的主要弱点,因为没有公司可以成为所有方面的专家。开源开发方法论的优势在于利用社区。

  • 我们非常努力地将组件集成在一起,以降低部署和运营成本。如果您不相信我,请尝试安装 Gluu Server。您所要做的就是安装软件包,运行安装程序,回答大约 10 个问题,然后它就可以启动并运行了。将其与其他 IAM 平台(开源或商业)的部署说明进行比较。你会发现他们会让你在 servlet 容器中删除 war 文件、手动编辑配置文件、配置数据库、启动许多服务、配置 Web 服务器等等。你可以说任何 linux 发行版也是一堆开源软件粘在一起。但就像 linux 发行版一样,Gluu Server 是经过长期集成、测试和支持的。十多年来,我们' 一直在支持金融、政府、电信、医疗保健、零售、大学和更多领域的关键任务部署。此外,随着时间的推移,我们优化了 Gluu 服务器以降低运营成本。随着时间的推移,运营成本是 TCO(总拥有成本)的主要贡献者。运营成本甚至超过了许可成本——因此,如果您认为商业产品的运营成本更低——您应该支付许可费用。我们通过提供管理 GUI 和工具实现了低 TCO。并且通过减少一次性集成和专有安全解决方案(通过仅支持广泛采用的开放安全标准)。一家供应商的快速专有解决方案是明天的支持/升级难题。随着时间的推移,我们优化了 Gluu 服务器以降低运营成本。随着时间的推移,运营成本是 TCO(总拥有成本)的主要贡献者。运营成本甚至超过了许可成本——因此,如果您认为商业产品的运营成本更低——您应该支付许可费用。我们通过提供管理 GUI 和工具实现了低 TCO。并且通过减少一次性集成和专有安全解决方案(通过仅支持广泛采用的开放安全标准)。一家供应商的快速专有解决方案是明天的支持/升级难题。随着时间的推移,我们优化了 Gluu 服务器以降低运营成本。随着时间的推移,运营成本是 TCO(总拥有成本)的主要贡献者。运营成本甚至超过了许可成本——因此,如果您认为商业产品的运营成本更低——您应该支付许可费用。我们通过提供管理 GUI 和工具实现了低 TCO。并且通过减少一次性集成和专有安全解决方案(通过仅支持广泛采用的开放安全标准)。一家供应商的快速专有解决方案是明天的支持/升级难题。运营成本甚至超过了许可成本——因此,如果您认为商业产品的运营成本更低——您应该支付许可费用。我们通过提供管理 GUI 和工具实现了低 TCO。并且通过减少一次性集成和专有安全解决方案(通过仅支持广泛采用的开放安全标准)。一家供应商的快速专有解决方案是明天的支持/升级难题。运营成本甚至超过了许可成本——因此,如果您认为商业产品的运营成本更低——您应该支付许可费用。我们通过提供管理 GUI 和工具实现了低 TCO。并且通过减少一次性集成和专有安全解决方案(通过仅支持广泛采用的开放安全标准)。一家供应商的快速专有解决方案是明天的支持/升级难题。

  • Gluu 在“身份代理”方面进行了巨额投资,我们称之为管理“入站身份”。这就是我们集成 Passport-JS 的原因。您可以接受来自 SAML、OpenID Connect、CAS、Facebook、Microsoft Azure AD、Linkedin 或 300 多个不同社交登录提供商的入站身份。事实上,入站身份是我们业务的驱动力。没有其他平台提供如此多的灵活性来控制围绕如何映射属性、动态注册用户(通过社交登录或 SAML 首次出现在您的网站上)或在断言后实施欺诈检测技术的工作流程。

  • 我们已经使用 OpenJDK 进行了测试。2.4.4 版仅使用 OpenJDK。关于使用哪个开源 JVM 的问题是每个人都一样的行业问题:Keycloak、WS02 和 Gluu 都使用 Java。运营成本、速度、集群、功能:这些是 IAM 平台部署的驱动因素,而不是 JVM。

  • 当您考虑开源 IAM 时,您应该查看四个基本要素:代码、文档、包和支持。如果您考虑所有这些因素,您会发现 Gluu 是唯一在每个类别中都有强大故事的公司。包裹尤为重要。Gluu 为 Centos、Red Hat、Ubuntu 和 Debian 提供软件包。我们还提供了一个 linux 容器发行版、Kubernetes,以及很快的 Helm 图表。系统管理员不想要代码,他们想要易于安装的二进制文件(并且易于升级)。综合文档也是一个问题。最后,社区支持是必不可少的。邮件列表对于 IAM 来说是不够的。问题太复杂了。这就是我们推出支持门户的原因:https: //support.gluu.org Gluu 花费大量时间回答社区问题。虽然总是有限制——我们不会无限期地支持大公司(我们确实以销售支持合同为生)——我们会审查每一个支持问题,并试图帮助社区得到关注,并解决任何阻塞问题.

  • Keycloak 是 Red Hat 的一部分,该公司正在被 IBM 收购。这在产品周围造成了相当多的不确定性,这是不幸的。我希望看到开源 IAM 的强劲市场。然而,现实情况是 IBM 有一个 IAM 平台,而 Keycloak 是否被合并到这个产品中、生命周期结束或分叉是 IBM 或 Red Hat 都没有解决的悬而未决的问题。IBM 不允许工程师从事与他们自己的产品竞争的开源项目。因此,如果 Keycloak 继续下去,当前团队将不得不离开他们的雇主,或者其他人将不得不分叉它。说起来容易做起来难。在 Gluu,我们一直在围绕开源平台开展业务,这确实是一个艰难的市场。有大型竞争对手和强大的 SaaS 产品(如 Okta、Microsoft Azure AD、和谷歌身份)。分叉代码是不够的——鉴于创新和不断增加的安全表面积,IAM 产品需要持续努力以保持其相关性。IAM 基础设施难以替代。确保您了解您安装的内容将存在很长时间。在 Gluu,我们已经做了 10 年。我们是内部资助的,所以我们没有 VC 压着我们的脖子为他们提供退出的机会。我们的长期愿景是通过构建最好的产品并吸引最大的社区使用我们的产品来赢得本地 IAM 市场。这可能需要几十年的时间。但我们是长期的。IAM 基础设施难以替代。确保您了解您安装的内容将存在很长时间。在 Gluu,我们已经做了 10 年。我们是内部资助的,所以我们没有 VC 压着我们的脖子为他们提供退出的机会。我们的长期愿景是通过构建最好的产品并吸引最大的社区使用我们的产品来赢得本地 IAM 市场。这可能需要几十年的时间。但我们是长期的。IAM 基础设施难以替代。确保您了解您安装的内容将存在很长时间。在 Gluu,我们已经做了 10 年。我们是内部资助的,所以我们没有 VC 压着我们的脖子为他们提供退出的机会。我们的长期愿景是通过构建最好的产品并吸引最大的社区使用我们的产品来赢得本地 IAM 市场。这可能需要几十年的时间。但我们是长期的。并通过吸引最大的社区来使用我们的产品。这可能需要几十年的时间。但我们是长期的。并通过吸引最大的社区来使用我们的产品。这可能需要几十年的时间。但我们是长期的。

  • 确保您正在考虑的产品至少通过了 OpenID Connect 认证: https ://openid.net/certification/

  • 尽管 Gluu 服务器做了很多工作,但它仍然只是更大的开源身份/安全社区的一部分。这就是我写一本关于这个主题的书的原因之一,叫做“保护周边”。它涵盖了产品背后的理论(什么是 SAML?),还展示了如何使用 Gluu Server 以及...其他开源产品来实现您的目标的示例。您可以在 Apress 上找到它:https ://gluu.co/book

  • Gluu 服务器的设计考虑了三个目标:1)速度;2)冗余;3) 低总拥有成本。“项目”和“产品”之间有很大的区别。产品包括文档、质量保证、包装、营销、支持、培训、devops 工具——使项目成功所需的所有东西的总和。“产品”和“平台”也有区别。Gluu 服务器不是我们唯一的产品。我们还有:1)Super Gluu(移动 FIDO 2FA 应用程序);2)oxd(OAuth客户端中间件服务器);3)集群管理器(用于部署集群的GUI);4) Casa(凭证管理/同意管理门户网站);5) Gluu Gateway(基于 Kong-CE 的 API 网关)。

    • 您应该考虑的其他一些重要特性是: 1) FIDO 支持——Gluu 服务器具有 FIDO2 和 FIDO U2F 的端点;2) UMA 支持--Gluu 是唯一同时支持 UMA 令牌和 authz 端点的平台,我们也是唯一为 UMA 提供客户端和 RS 软件的平台;3)简单的扩展机制——Gluu拦截脚本可以通过编写Python-syntax业务逻辑来自定义Gluu Server在某些关键时刻的行为;4) 易于备份和恢复(即使使用 linux 软件包,也可以使用简单的 tar 命令备份 Gluu Server);5) 支持多方联邦

我希望您发现这些要点对您的评估有用。决定使用哪个 IAM 平台是一个重大决定——它可能会伴随您十年或更长时间。如果您决定使用 Gluu 服务器,我们将非常欢迎您加入社区。而且我认为您会发现未来会有很多很棒的功能将巩固我们作为开源 IAM 市场领导者的地位。

于 2019-01-09T08:06:59.560 回答
24

我正在进行类似的搜索,总体而言它们看起来非常相似,这意味着它们中的任何一个都可能不是一个糟糕的选择:

  • 支持类似的协议(OpenID Connect、OAuth2、SAML 2)
  • 管理界面
  • 支持多因素身份验证
  • 支持身份代理/委托
  • 提供商业支持的开源

我在这里记录我的结果,但我会尽量强调我的主要收获:

WSO2 身份服务器

不幸的是,让我与众不同的是当我查看它时弹出的危险信号:

  • 他们网站上的可下载二进制文件似乎不包含最新的安全补丁。虽然您可以从源代码自行编译和打包,但尚不清楚最新的安全补丁是否开源。(http://lists.jboss.org/pipermail/keycloak-user/2016-August/007281.html
  • 它似乎在自己的中间件 (WSO2 Carbon) 上运行,这意味着您将无法利用 Tomcat、WildFly、Jetty 等现有的专业知识。(WSO2 Carbon 似乎基于 Tomcat)
  • 不支持 OpenJDK(由于最近对 Oracle Java 可用性的更改,这已成为一个问题)
  • 最新版本未经服务器操作系统测试
    • 根据他们的兼容性矩阵,它在 Windows 8、10、Ubuntu、Fedora(所有桌面操作系统)上进行了测试
    • 情况似乎仍然如此,但我认为没有任何理由相信 WSO2 Identity Server 不能在服务器操作系统上运行。

Gluu 与许多其他产品的不同之处在于,他们采用了许多其他开源产品,添加了一些自己的部分,并将它们打包在一起。我什至都犹豫要不要尝试它,因为我担心所有部分的交互效果以及 Gluu 能够支持其他人构建的组件的效果如何。

其中一个组件是 Shibboleth IdP,Gluu 依赖于 SAML。在我最初询问的时候,Shibboleth IdP 不支持 OpenJDK,所以我担心 Gluu 也会有同样的限制。虽然 Shibboleth IdP 现在为 OpenJDK 提供部分支持,但 Gluu 似乎还不支持它:

我们不对 OpenJDK 进行 QA。因此,如果您进行此切换,我们将无法支持。

https://support.gluu.org/installation/7035/replace-oracle-java-with-openjdk/

我的担忧导致我在自己的调查中传递了 Gluu,但我鼓励您阅读Mike Schwartz 的回答以换一种视角。

钥匙斗篷

与 Gluu 不同,Keycloak 是从头开始设计为单一产品的。它也是 3 中唯一支持 OpenJDK 的产品。(如前所述,这不再是真的)

Keycloak 似乎最适合我的情况,所以它是我实际尝试过的三个中唯一的一个。

我遇到了几个小错误,并且有几次注意到文档不够具体,无法完全引导我完成手头的任务。这可能是其相对不成熟的结果(第一个版本是 2014 年 9 月),但尽管如此,它总体上感觉还是一款可靠的产品。

其他

我没有这方面的专业知识,但根据您列出的其他产品,您可能也会感兴趣:

于 2018-07-03T16:35:49.977 回答
3

如果产品之间在功能方面的差距不大,那么可以考虑一些建议:

  • 询问您的公司,看看是否有内部知识。
  • 围绕您的核心用例(包括技术堆栈)或您认为最难了解的用例尝试一些 PoC。
  • 确定您的关键技术堆栈并找到具有类似技术堆栈的开源项目 - 看看他们正在使用哪些。
  • 由于这些项目本身是开源的,因此请查看其 GitHub 存储库的活跃程度。
  • 查看他们的支持论坛或堆栈溢出标签,看看他们有多活跃。你想知道你能得到帮助。
  • 尝试衡量哪个最受欢迎或增长最快

这些建议可能或多或少都适用于您——它们没有按重要性排序。关键是您想要最适合您情况的解决方案,权衡快速入门和长期增长

于 2019-01-09T09:01:24.110 回答