Keycloak-限制用户对每个客户端/应用程序的访问

时间:2018-08-20 23:10:10

标签: single-sign-on openid-connect keycloak

我刚刚设置了我的第一台Keycloak服务器,以在两个应用程序之间提供SSO。这些不是Java应用程序,一个与SAML-2连接,另一个与OpenID Connect连接。

因此在Keycloak中,我有Realm-1,然后有Client-1application1)和Client-2application2)以及user-1和{{ 1}}。

现在,我只希望user-2被允许访问user-1,并且希望Client-1被允许访问user-2Client-1。应该足够简单。

我试图阅读有关“角色和授权”的内容,但是我发现文档(或者可能只是主题)非常混乱。我一直在玩它,但没有成功。我期望界面仅将组映射到客户端,并通过在组中添加/删除用户来限制对客户端的访问。

1 个答案:

答案 0 :(得分:2)

如果您使用的是SAML:

  1. 在Keycloak中创建一个新角色。
  2. 将此角色分配给该组。
  3. 在Keycloak中创建新的身份验证脚本。配置登录时允许使用的角色(例如user.hasRole(realm.getRole("yourRoleName")))。
  4. 在客户端设置中的“身份验证流替代”下,选择创建的身份验证(从步骤3开始)。

如果您使用的是openid,look at the comment in this thread