Keycloak 领域 VS Keycloak 客户端

Keycloak Realm VS Keycloak Client

我最近正在为 SSO 开发 Keycloak 6.0.1,用于对组织中的多个应用程序进行身份验证。我对客户和领域之间的差异感到困惑。

如果我要为 SSO 管理 5 个不同的应用程序,那么我是否必须创建 5 个不同的客户端或 5 个不同的领域?

如果我说我必须在 1 个领域下创建 5 个不同的客户端,那么我可以为同一领域中的不同客户端执行不同的身份验证流程吗?

The core concept in Keycloak is a Realm. A realm secures and manages security metadata for a set of users, applications, and registered oauth clients. Users can be created within a specific realm within the Administration console. Roles (permission types) can be defined at the realm level and you can also set up user role mappings to assign these permissions to specific users.

http://www.mastertheboss.com/jboss-frameworks/keycloak/introduction-to-keycloak

一般来说,客户端代表一些用户可以访问的资源。 Keycloak 的内置客户端供 keycloak 内部使用。

应用程序的示例可以是任何移动应用程序。客户端可以是简单的 REST API.

根据 Keycloak 文档

  1. 领域 - 领域管理一组用户、凭据、角色和组。用户属于并登录到一个领域。领域彼此隔离,只能管理和验证他们控制的用户。

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

对于您的方案,您可以在一个领域下创建 5 个不同的客户端。 Keycloak 为单点登录提供开箱即用的支持。有关详细信息,请参阅 Keycloak 文档 keycloak documentation link