【发布时间】:2020-06-05 22:21:45
【问题描述】:
我们正在构建一个应用程序,多个客户可以在其中注册并拥有自己的用户群。例如,客户“CompanyA”可以注册,然后允许他们的用户使用他们自己的用户名(一些来自 LDAP)访问我们的系统。 “CompanyB”也可以这样做,用户名对于一个客户来说是唯一的,但可以在不同客户之间重复。
我们为此使用 keycloak,并使用领域的概念来实现这一点。当新客户注册时,我们为他们创建一个新领域并进行所需的配置。这按预期工作,但我们的中间件有问题。
我们的中间件是 Kong,它有一个 OIDC 插件,我们与 keycloak 集成,但是该插件需要域名,在我们的例子中实际上是动态的。
例如: 当用户从我们的 UI 登录时,他会收到来自其客户端领域的令牌。现在,当用户从我们的后端请求资源时,该请求将通过 kong。
Kong 将使用其配置的客户端和领域来内省此令牌,但是这不能动态选择,因此理想情况下,我希望在主领域上为每个客户端领域配置一个客户端,并使用此魔术客户端来内省他们的令牌。
有这样的可能性吗?如果不是,我还可以研究哪些其他途径?
【问题讨论】: