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