我已经设置了具有机密访问类型和生成客户端密钥的客户端的Keycloak。现在我需要通过命令行获取客户端密钥。我该如何实现?
Keycloak运行在一个Docker容器中。我尝试适应类似问题,它是针对使用Python的,但我甚至无法首先获得令牌。
Keycloak运行在一个Docker容器中。我尝试适应类似问题,它是针对使用Python的,但我甚至无法首先获得令牌。
您需要使用以下curl命令获取realm为myrealm
的访问令牌
curl http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=password&username=testuser&password=test123&client_id=admin-cli'
从上面的输出中获取access_token
。
使用以下方法获取客户端及其ID:
curl http://localhost:8080/auth/admin/realms/myrealm/clients -H 'Content-Type: application/json' -H 'Authorization: Bearer <<ACCESS_TOKEN>>'
从输出中获取id
,类似于这样的某些内容"id":"e65ba232-08ff-4f9b-84a6-bd6147340dfd"
然后使用以下命令获取客户端密钥
curl http://localhost:8080/auth/admin/realms/myclient/clients/e65ba232-08ff-4f9b-84a6-bd6147340dfd/client-secret -H 'Content-Type: application/json' -H 'Authorization: Bearer <<ACCESS_TOKEN>>'
输出结果会类似于这样
{"type":"secret","value":"9a16ceb5-1f26-4812-ae4d-9e8336efef91"}