Keycloak - 设置静态客户端密钥

4
我正在配置带有访问类型为“confidential”的客户端的keycloak身份验证。我具有使用客户端ID和客户端密钥的凭据。
我想知道是否可以定义一个静态的客户端密钥,它不会随时间改变。这样它就可以在引导时进行配置,例如使用docker。
这可行吗?

使用curl足够好吗? - dreamcrash
不,我想设置一个静态的client_secret,它不会随时间变化。 - PRVS
你解决了这个问题吗? - dreamcrash
不。Grep可以设置客户端密钥,没问题。但是当我在Keycloak上进行一些请求/登录时,它会发生变化。 - PRVS
除非您每次重新创建客户端,否则默认情况下不应更改它。否则,在客户端创建后,密钥将保持不变。 - dreamcrash
显示剩余4条评论
2个回答

5
由于无法设置密钥,这可能有助于解决问题:
  • 导出客户端
  • 在文件中设置密钥
  • 删除现有客户端
  • 导入客户端

导出客户端

选择您的客户端,选择“操作”菜单中的“导出”: enter image description here

在文件中设置密钥

打开导出的 .json 文件并设置您的密钥

enter image description here

删除现有客户。

enter image description here

导入客户端

在客户端概述中,导入客户端enter image description here

使用预定义的密钥的Docker

如果您正在使用Docker,准备一个带有相应密钥的导出领域可能是有意义的(请注意,出于安全原因,Keycloak不导出密钥,需要手动添加密钥)。
使用导入机制自动导入您的领域:导入和导出领域

bin/kc.[sh|bat] import --file <file>

或者

bin/kc.[sh|bat] start --import-realm

当您设置--import-realm选项时,服务器将尝试从data/import目录导入任何领域配置文件。该目录中的每个文件应包含一个单独的领域配置。仅从此目录读取使用.json扩展名的普通文件,子目录将被忽略。

1
您可以在创建 Access Type = confidential 的客户端之后,在 Keycloak 中生成静态客户端密钥。您可以在此客户端类型的凭据选项卡中执行此操作。请注意,公共客户端类型不提供或显示凭据选项卡。为了增加安全性,Keycloak 不允许通过 UI 手动设置密钥。一旦您生成了密钥,它将保持固定状态,直到再次通过 UI 手动重新生成为止。

Keycloak v16.10 - Generating a Client Secret


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接