Keycloak Java Adapter 属性“public-client”是啥意思?

Posted

技术标签:

【中文标题】Keycloak Java Adapter 属性“public-client”是啥意思?【英文标题】:What does Keycloak Java Adapter property "public-client" mean?Keycloak Java Adapter 属性“public-client”是什么意思? 【发布时间】:2021-05-23 21:15:36 【问题描述】:

根据 Keycloak documentation,Java 适配器具有名为 public-client 的属性,描述为

如果设置为 true,适配器将不会将客户端的凭据发送到 Keycloak

“不会向 Keycloak 发送凭据”实际上是什么意思?

【问题讨论】:

【参考方案1】:

在 Keycloak 中,您可以将客户端设置为公开或机密(或仅承载):

从OAuth 2.0可以阅读:

OAuth 定义了两种类型的客户端:机密客户端和公共客户端 客户。

机密客户端是能够安全地 与授权服务器进行身份验证,例如能够 为他们注册的客户保密。

公共客户端无法使用已注册的客户端机密,例如 在浏览器或移动设备上运行的应用程序。

更详细的来自source 可以阅读:

根据 OAuth 2.0 规范,应用程序可以分类为 无论是保密的还是公开的。 主要区别在于是否 应用程序是否能够保存凭据(例如客户端 ID 和秘密)安全。 这会影响身份验证的类型 应用程序可以使用。

机密应用程序可以以安全的方式保存凭据,而不会将其暴露给未经授权的各方。

如果客户端是机密的,那么它将包含一个客户端机密:

这“不会向 Keycloak 发送凭据”是什么意思

In 表示在请求中不会发送客户端密码。

【讨论】:

以上是关于Keycloak Java Adapter 属性“public-client”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

HttpSecurity 配置不适用于 Spring 上的 Keycloak Adapter

Spring Keycloak Adapter 为每个请求加载 Open-ID 配置

了解 Keycloak Adapter(Spring-Security 和 Spring Boot)会话要求

Keycloak 注销不会结束会话

JBoss 没有重定向到 Keycloak

如何使用 Java API 从 keycloak 获取用户的名字、姓氏和属性?