跨领域身份验证之后的Keycloak领域特定授权

时间:2019-07-08 14:18:18

标签: java plugins keycloak

是否可以触发任何机制来获取Keycloak中已通过身份验证的用户(跨领域身份验证后为链接用户)的特定于领域的角色?

我的公司拥有自己的公司身份验证和授权服务。 我已经配置了一个单独的“仅身份验证”领域,其中包含一个调用我们公司身份验证服务的用户联盟(插件)。 效果很好-我们在不同的领域(A和B)中都有应用程序,其身份提供者指向上述领域的代理客户端。设置这些ID提供程序(在“首次登录流”上)以创建其迁移的领域用户并将其链接到原始领域,这样我们就可以建立SSO。

现在,我们需要在领域A和B中分配特定于领域的角色。 为此,我尝试添加另一个(特定于授权的)UserFederation插件(尝试从ImportedUserValidation截取“ validate”,以调用我们的授权公司服务)-这次是在领域A和B上,但从未触发过。.由于存在他们的身份提供者,也许吗? 是否应在“登录后流程”下以某种方式设置我的特定授权机制?

有什么建议吗?

非常感谢,问候

1 个答案:

答案 0 :(得分:0)

找到了一种使用User Federation的方法,有点麻烦-如果用户不在领域中,则可以使用。因此,首先我将其缓存策略定义为MAX_LIFESPAN(几分钟),然后在我的插件(实现UserLookupProvider)上的getUserByUsername上,创建一个覆盖

的用户模型(来自AbstractUserAdapterFederatedStorage)
  

公共设置getRoleMappings(){...

通过这种方法,我可以从公司服务中检索我的领域特定用户角色