所以我希望在使用auth服务器的所有产品中进行单点登录,但这不仅适用于员工,还应该像auth0一样使用keycloak?
答案 0 :(得分:6)
Keycloak还有一些优势:
如果您购买JBoss EAP,Keycloak 也可以获得支持(请参阅http://www.keycloak.org/support.html)。这可能比企业版的Auth0便宜。如果要使用自定义数据库,则无论如何都需要企业版的Auth0。
Keycloak具有Auth0中没有的功能: 细粒度权限和基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)可通过Web管理控制台或自定义代码进行配置,或者您可以编写自己的Java和JavaScript策略。这也可以通过用户规则(自定义JavaScript)或授权插件(无代码,更少可能性)在Auth0中实现。在Keycloak中,您可以在没有代码的情况下完成更多工作(开箱即用的安全策略类型更多,例如基于角色,组,当前时间,请求的来源),并且对自定义开发的访问控制模块有很好的支持。在这里,一些更详细的研究将有趣的比较它们。
Keycloak还提供了一个策略实施器组件 - 您可以从后端连接到该组件,并验证访问令牌是否足以访问给定资源。它最适用于Java Web服务器,或者您可以使用Keycloak适配器部署额外的Java服务器,该适配器将作为网守使用并决定哪个请求通过以及哪些请求被阻止。所有这些都是基于您可以通过Keycloak Web界面配置的规则发生的。我不确定Auth0中是否包含此类策略实施器。最重要的是,当您想要访问给定资源时,Keycloak可以告诉您的客户端应用程序您需要哪些权限,因此您无需在客户端中对此进行编码。工作流程可以是:
因此,可以在Keycloak中集中和配置更多。通过此工作流,您的客户端和资源服务器可以将更多安全逻辑和代码外包给Keycloak。在Auth0中,您可能需要自己实施步骤2,3,6。
答案 1 :(得分:3)
Auth0和Keycloak都应该能够实现您的目标 - 假设您只想要社交(facebook,google等),和/或用户名&密码验证?
Auth0是风险较低的选择,keycloak适用于非商业和非商业用途。在没有全球24x7全天候支持团队的情况下,您可以负担生产中断。这里有一些我推荐Auth0的原因 - 文档是世界级的,它们有快速入门示例,因此您可以在几分钟内启动并运行,并轻松访问更高级的选项 - 无密码,身份验证,MFA,异常检测,x9的可靠性,速率限制,广泛的管理API,一切扩展,例如将日志导出到日志聚合器,等等。无论如何,祝你的项目好运,显然最适合你的项目可能仅仅取决于你自己的项目要求。
如果您正在进行移动,那么Auth0应该添加大量精力来为目标移动(本机/混合)应用添加必要的专用安全流。例如,使用/authorize
端点时的PKCE使用情况。请记住这一点,因为不确定如何实现keycloak来处理这个问题 - 很多IDM今天仍然不正确地做到这一点。