Keycloak 客户端与用户

Posted

技术标签:

【中文标题】Keycloak 客户端与用户【英文标题】:Keycloak client vs user 【发布时间】:2018-08-12 22:41:23 【问题描述】:

我知道 keycloak 有内置客户端,我们稍后会添加用户。

但总的来说,Keycloak 中的客户端和用户有什么区别?

【问题讨论】:

【参考方案1】:

简而言之,不仅对于 keycloak,对于 OAuth 和 OpenId Connect 也是如此,客户端代表了一些用户可以访问的资源。 keycloak 的内置客户端代表了 keycloak 本身的一些资源。

【讨论】:

那么我们可以说如果一个允许通过谷歌登录的应用程序是客户端,谷歌本身是服务器吗?我们可以说每个领域都是针对新客户的吗?而 KeyCloak 本身就是一个 OAuth 服务器? 1.谷歌将成为身份提供者。 2.这取决于idp如何对待客户。 3. Keycloak是一个身份提供者,它支持openid connect(基于oauth)和saml授权协议。 @arpit,请提出一个单独的问题。 客户端不是一个第三方应用程序,一旦提供授权,它想代表用户(资源所有者)访问某个资源吗?【参考方案2】:

客户端和用户是 keycloak 中两个完全不同的结构。

在简单的英语中,客户端是一个应用程序。应用程序的示例可以是例如yelp.com 或任何移动应用程序。客户端可以是一个简单的 REST API。 Keycloak 的内置客户端供 keycloak 内部使用,但任何用户定义的应用程序都必须在 keycloak 中注册为客户端。

用户是通过 keycloak 进行身份验证以访问这些应用程序/客户端的人。用户存储在 keycloak 数据库或任何外部托管的 LDAP 中,但与 keycloak 同步。

【讨论】:

【参考方案3】:

根据 Keycloak 文档

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

【讨论】:

以上是关于Keycloak 客户端与用户的主要内容,如果未能解决你的问题,请参考以下文章

通过 keycloak admin 客户端在 keycloak 中创建用户返回 IllegalArgumentException

Keycloak 前端和后端客户端

Keycloak:使用新创建的客户端和用户获取 JWT

Keycloak:用户基于角色的客户端登录访问限制

Keycloak 使用不同的客户端重新验证经过身份验证的用户

Keycloak:我可以为每个客户端/用户/角色设置令牌的到期时间吗?