keycloak客户端ID是否有秘密

王子1*_*986 20 keycloak

keycloak客户端ID是否具有客户端密钥?我试图在keycloak admin中创建一个客户端,但我无法发现客户端密码.

它是自动生成的吗?我在哪里可以得到这个秘密?

dre*_*ash 71

keycloak 客户端 ID 是否有客户端密钥?我尝试在 keycloak 管理中创建客户端,但无法发现客户端密钥。

首先,你应该知道Keycloak实现了OpenID Connect,它

是 OAuth 2.0 协议之上的简单身份层。

根据 OAuth 2.0 协议,客户端可以是机密的,也可以是公开的

主要区别在于应用程序是否能够安全地保存凭据(例如客户端 ID 和机密)。

关于保密客户:

由于机密应用程序使用受信任的后端服务器,因此 它们可以使用授权类型,要求它们 在调用令牌端点时通过指定客户端 ID 和客户端密钥进行身份验证。

有了这些知识,您可以轻松创建一个具有客户端密钥的客户端,如下所示:

旧钥匙斗篷 UI

  1. 创建一个“访问类型”设置为机密的客户端: 在此输入图像描述
  2. 单击“保存”按钮;
  3. 之后将显示一个名为“Credentials”的新选项卡: 在此输入图像描述
  4. 在那里你可以看到客户端秘密: 在此输入图像描述

新的钥匙斗篷用户界面

  1. 前往您的领域和客户
  2. Create单击客户端按钮

在此输入图像描述

  1. 相应地设置clientID、 和剩余字段,然后单击next
  2. 将选项设置Client authenticationON 在此输入图像描述
  3. 点击Save

要检查秘密,请转至客户 > 您的客户 > 选项卡credentials ,然后单击eye

在此输入图像描述

在我的个人Git 存储库中,您可以找到一个用于提取客户端密钥的脚本。该脚本调用端点

GET /{realm}/clients/{id}/client-secret
Run Code Online (Sandbox Code Playgroud)

来自Keycloak 管理 API


Séb*_*anc 39

您的客户需要access-type设置为confidential,然后您将有一个新选项卡credentials,您将看到客户端密码.https://keycloak.gitbooks.io/documentation/content/server_admin/topics/clients/oidc/confidential.html

  • 对于像我这样困惑的人:此"凭据"选项卡仅在保存客户端设置后显示(当前选项卡上的字段将立即显示). (11认同)
  • 仅供参考:对于 KC >v22,设置页面上 UI 中的标签称为“客户端身份验证”,另请参阅 /sf/answers/4880868471/ (2认同)

rav*_*iru 19

客户端需要access-type设置为confidential,您可以在凭据选项卡中看到客户端机密


Pho*_*ong 17

在 keycloak 版本 20 中,access-type 不存在 as 选项。如果要配置的客户端尚未启用身份验证,请将其设置为启用,然后单击“保存”。

将客户端身份验证设置为开

然后,您的客户端顶部将有一个“凭据选项卡”,旁边是“设置”、“密钥”、“角色”等。

凭据选项卡现在可见

单击“凭据”选项卡,即可在该屏幕上找到您的客户端密钥。


小智 7

是的,每个 keycloak 客户端都有一个客户端密钥。但为此,您必须更改访问类型。这与 keycloak 版本不同。在特定版本中,您必须将访问类型公共更改为机密 。在特定版本中,您必须在功能配置下启用客户端身份验证。

客户端认证

保存后,您可以看到凭据选项卡

您可以复制自动生成的客户端密钥。您也可以随时重新生成它

客户秘密