AWS Cognito 代替 Keycloak

AWS Cognito in place of Keycloak

我们正在构建一个需要一些用户管理功能的 Web 应用程序:管理员用户、管理员组、业务团队组、public 用户、基本用户等。具有不同权限的不同资源访问权限我们的应用程序基于他们的角色,组。

为此考虑了几个选项: 1/具体发展 2/ 使用开源:Keycloak 3/ 使用商业解决方案:AWS cognito,因为我们使用大量 AWS 资源进行开发。

由于我们对该项目的预算有限,我正在权衡优化开发工作、基础设施和技术支持成本的选项。 问题:

Is Keycloak is a good option for a small project as we have a very limit resource to do technical support ?

我认为 Keycloak 比 Cognito 需要更多的技术支持。 Cognito 是 SAAS,因此您可以在几分钟内完成设置,而且无需担心扩展、监控等问题。但另一方面,Keycloak 在配置和定制方面提供了更大的灵活性。

is AWS Cognito mature enough to use for a commercial application ?

是的,Cognito 足够成熟,它有很好的文档并遵循标准(如 GDPR、HIPAA 等)

is it easy to migrate to open source later Keycloak?

这取决于您系统的复杂程度。 Keycloak 具有 import/export 功能,但它更适用于简单的情况。 AWS Cognito 和 Keycloak 都提供 REST API(和库)来使用它们。它们允许编写可以在迁移期间执行复杂逻辑的应用程序。

I saw some comment via google search that some projects have roll backed their choice on AWS Cognito because the complexity of integration with their application, and documentation issues. Does AWS Cognito improve the features ?

文档很好。至于集成,则取决于应用程序和要求。 Cognito 有一堆 limitations。 检查它们是否适合您的情况。例如,在我们的案例中,Cognito 没有提供足够的选项来自定义 Hosted UI(登录页面)。此外,尝试使用 Cognito 以确保它可以实现您的 groups/roles/permissions 模型。因为与 Keycloak 相比,它允许更简单的关系。

Any alternative option to go with ? ( Auth0, Okta) ?

很难比较所有功能。但是 price-wise:Keycloak 是免费的,Cognito 是 free 对于少于 50k 的用户,Auth0 比 Cognito 贵,Okta 比 Auth0 贵。所以这取决于你的项目和预算的大小。

我倾向于在组织控制中更喜欢 IdP,例如,拥有 keycloak-onprem,然后根据需要与不同的云同步——是的,为这种自由做一些额外的工作。

该机制将为组织提供灵活性,使其可以脱离一个云、与另一个云结合或拥有多云联盟。