18

我在 docker 中使用最新的 keycloak 映像,并且可以在http://localhost:9080访问标准管理控制台。但是,我似乎无法访问Admin REST api文档中指定的任何路径。例如,基本路径/auth和 Resource Get 属于该领域的客户端返回属于该领域的客户端列表: /{realm}/clients我得到一个 404。对于文档中的任何其他方法也是如此。返回有效 200 json 响应的唯一路径是http://localhost:9080/auth/realms/ {realm-name}/根据文档,可以在 basepath + "/{realm-name}" 访问。我是否遗漏了某些内容或尝试使用错误的基本路径进行访问。docker 中的 keycloak 版本是 3.4.3.Final,根据文档,这是 keycloak 的最新版本。

4

1 回答 1

26

我几乎可以肯定您正在尝试像这样调用端点:

http://localhost:9080/auth/admin/realms/demo/clients

但是,你错过了这部分/auth/admin/realms

请不要忘记首先授权您的通话,如此处所述

更新

这是我查看结果的步骤:

$ docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak

得到access_token

$ curl -X POST \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    -d 'username=admin&password=admin&client_id=admin-cli&grant_type=password' \
    http://localhost:9080/auth/realms/master/protocol/openid-connect/token  

复制并粘贴access_tokenAuthorization标题:

$ curl -X GET \
    -H 'Authorization: Bearer <access_token_goes_here>' \
    http://localhost:9080/auth/admin/realms/master/clients
于 2018-01-30T10:35:50.987 回答