无法使用keydove admin cli终结点接收客户端机密

mfuanj7w  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(418)

我正在使用以下终结点: http://localhost:8083/auth/admin/realms/Myrealm/clients/ltiobf/client-secret 得到的答复是

{
  "error": "HTTP 401 Unauthorized"
}

我正在使用以下命令从key斗篷获取访问令牌:

curl --location --request POST 'http://localhost:8083/auth/realms/Myrealm/protocol/openid-connect/token' \
    --header 'cache-control: no-cache' \
    --header 'content-type: application/x-www-form-urlencoded' \
    --header 'postman-token: de7d68a0-5b21-1405-ed1a-9b7a6cb0da25' \
    --header 'Cookie: JSESSIONID=Sqb7zNt9Bk8OAx4vEjhjUDKQU_qw6K9B4jjJq69i.magistrate; XSRF-TOKEN=c620bf0f-a46a-41b4-bc30-558e96422123; JSESSIONID=gDz-86p4prmLkl12O7kx-8FdIcSAErBYhKitm5r8; JSESSIONID=Sqb7zNt9Bk8OAx4vEjhjUDKQU_qw6K9B4jjJq69i.magistratehq' \
    --data-urlencode 'client_id=ltiobf' \
    --data-urlencode 'username=sairaj1417' \
    --data-urlencode 'password=sairaj123' \
    --data-urlencode 'grant_type=password'

并在获取客户机机密的请求中将其作为身份验证参数传递。

6bc51xsx

6bc51xsx1#

访问令牌应该是代表具有适当权限的用户请求的令牌,以请求key斗篷省略的令牌:

curl    -d "client_id=admin-cli" \
        -d "username=$ADMIN_NAME" \
        -d "password=$ADMIN_PASSWORD" \
        -d "grant_type=password" \
        https://$KEYCLOAK_IP/auth/realms/master/protocol/openid-connect/token

admin-cli 作为客户 ID . 从该响应(即key斗篷令牌对象)中,提取访问令牌,我们将其命名为 $ACCESS_TOKEN .
如果你有权访问 Admin 你可以很容易地得到 client secret 通过转到:
你的 Realm ;
然后点击 clients 并选择您的 client ;
转到选项卡 credentials 给你。
但是,如果您想使用keydrope restapi来实现这一点,首先您需要知道 ID 可通过以下方式获得:

curl -X GET https://<KEYCLOAK_IP>/auth/admin/realms/<REALM_NAME/clients?clientId=<CLIENT_ID> \ 
            -H "Authorization: bearer $ACCESS_TOKEN"

(the) <CLIENT_ID> 基本上是客户端名称)从该响应中提取所需的 ID 客户的名字。有了这个 ID 你可以提取客户端 secret ,使用:

curl -X GET https://<KEYCLOAK_IP>/auth/admin/realms/<REALM_NAME/clients/<ID of the client>/client-secret \ 
            -H "Authorization: bearer $ACCESS_TOKEN"

相关问题