Keycloak Realm与Keycloak Client的区别

29
我最近在为组织中的多个应用程序进行SSO身份验证的Keycloak 6.0.1上工作。 我对客户端和领域之间的区别感到困惑。
如果我有5个不同的应用程序要进行SSO管理,那么我是需要创建5个不同的客户端还是5个不同的领域?
如果我说我需要在一个领域下创建5个不同的客户端,那么我可以为同一领域的不同客户端执行不同的身份验证流吗?

2
是的,您需要在一个领域下创建5个客户端,并可以执行不同的身份验证流程。 - ravthiru
3个回答

33

根据Keycloak文档:

  1. 领域 - 领域管理一组用户、凭证、角色和组。用户属于并登录到一个领域中。领域相互隔离,只能管理和验证它们所控制的用户。

  2. 客户端是可以请求Keycloak对用户进行身份验证的实体。通常,客户端是希望使用Keycloak来保护自身并提供单点登录解决方案的应用程序和服务。客户端也可以是仅需请求身份信息或访问令牌的实体,以便它们可以安全地调用由Keycloak保护的网络上的其他服务。

针对您的场景,您可以在一个领域下创建5个不同的客户端。Keycloak为单点登录提供了开箱即用的支持。有关更多信息,请参考Keycloak文档keycloak documentation link


10
Keycloak 的核心概念是 Realm。一个 Realm 用于为一组用户、应用程序和注册的 OAuth 客户端提供安全元数据管理和保护。可以在管理控制台中的特定 Realm 中创建用户。权限类型角色可以在 Realm 级别上定义,并且您还可以设置用户角色映射以将这些权限分配给特定用户。
通常来说,客户端代表某些用户可以访问的资源。Keycloak 内置的客户端是 Keycloak 内部使用的。一个应用程序的示例可以是任何移动应用程序。客户端可以是一个简单的 REST API。
参考链接:http://www.mastertheboss.com/jboss-frameworks/keycloak/introduction-to-keycloak

0

领域

领域管理一组用户、凭据、角色和组。用户属于并登录到一个领域。领域相互隔离,只能管理和验证它们所控制的用户。

客户端

客户端是可以请求Keycloak对用户进行身份验证的实体。通常,客户端是希望使用Keycloak来保护自己并提供单点登录解决方案的应用程序和服务。客户端也可以是仅想请求身份信息或访问令牌的实体,以便它们可以安全地调用由Keycloak保护的网络上的其他服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接