【问题标题】:How to get client secret from Keycloak using curl?如何使用 curl 从 Keycloak 获取客户端密码?
【发布时间】:2019-07-30 06:43:53
【问题描述】:

我已经用一个客户端设置了 Keycloak,它具有机密的访问类型并生成了一个客户端机密。现在我需要通过命令行获取客户端密码。我怎样才能做到这一点?

Keycloak 在 docker 容器中运行。我试图改编一个similar question,它以python为目标,但我什至没有先获得令牌。

【问题讨论】:

    标签: curl oauth-2.0 keycloak


    【解决方案1】:

    您需要使用以下 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"}
    

    【讨论】:

    • 管理员令牌需要通过以下命令获取:/auth/realms/master/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' \ - -data-urlencode 'client_id=admin-cli' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'scope=openid' \ --data-urlencode 'username=admin' \ --data-urlencode '密码='
    猜你喜欢
    • 2019-05-01
    • 2017-11-28
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 2016-02-13
    相关资源
    最近更新 更多