如何使用 curl 从 Keycloak 获取客户端机密?
How to get client secret from Keycloak using curl?
我已经为客户端设置了 Keycloak,其访问类型为机密并生成了客户端机密。现在我需要通过命令行获取客户端密码。我怎样才能做到这一点?
Keycloak 运行 在 docker 容器中。我尝试改编 ,目标是使用 python,但我什至无法先获得令牌。
您需要使用以下 curl 命令为领域 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"}
我已经为客户端设置了 Keycloak,其访问类型为机密并生成了客户端机密。现在我需要通过命令行获取客户端密码。我怎样才能做到这一点?
Keycloak 运行 在 docker 容器中。我尝试改编
您需要使用以下 curl 命令为领域 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
。
使用
获取客户及其 IDcurl 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"}