我试图了解如何在大规模多租户场景中使用 Keycloak。
标准方法似乎是为每个租户使用一个领域。这隔离了每个租户的用户和设置,很有意义。
在多租户的Keycloak 示例中,它说它“展示了Keycloak 多租户支持的最简单可能的场景”(强调我的)。我可能对此读得太多了,但对我来说这意味着还有其他标准方法。尽管如此,我还没有找到关于这些选项的太多讨论。
我还读到,超过 100 个领域存在潜在的性能问题。可能是这些性能问题已得到修复,但这也向我表明 Keycloak 不会处理具有 1,000 多个租户的大规模多租户场景。
所以我的问题是:
我们正在开发一个基于 keycloak(5.0.0) 的解决方案,我们的客户可以在其中创建他们的帐户并管理他们自己的用户 - 并且只有他们的用户。
最初认为我们可以为此使用领域。每个客户都有自己的领域。经过初步测试,我们认为这可能不是一个好的解决方案,因为在创建约 500 个领域后,应用程序变得无响应(https://issues.jboss.org/browse/KEYCLOAK-4593)。
我们决定尝试使用 Groups 来模拟租户。我们的目标是在外部过程(keycloak REST API)中创建一个具有管理员用户的组。目前找不到如何限制此管理员只能管理他们自己的组(创建子组、管理用户并赋予他们角色)的方法。
我注意到有几封电子邮件提到了这些功能,但我找不到实际的例子来完成这项工作。
第二个链接准确显示了我们想要实现的目标。
我可以看到的当前替代方案是实现一个外观(客户端或单独的 Web 应用程序),它会限制对其他组的可见性和访问权限。
还有其他选择吗?