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

lad*_*rua 6 single-sign-on openid-connect keycloak

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

所以在 Keycloak 我有Realm-1,然后Client-1( application1) 和Client-2( application2) 和user-1user-2

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

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

luk*_*ell 2

如果您使用 SAML:

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

如果您使用 openid,请查看此线程中的评论

  • 如何在Keycloak中创建新的身份验证脚本? (2认同)