我在docker中使用最新的keycloak图像,可以在http://localhost:9080访问标准管理控制台。但是,我似乎无法访问管理员REST api的documentation中指定的任何路径。例如,基本路径 / auth 和资源获取属于该领域的客户端返回属于该领域的客户端列表: / {realm} / clients < / strong>我得到的是404. documentation中的任何其他方法也是如此。返回有效的200 json响应的唯一路径是 http://localhost:9080/auth/realms/ {realm-name} / ,根据文档可以在basepath +&#34; / {realm-name}&# 34 ;.我错过了什么或尝试使用错误的基本路径访问。 docker中的keycloak版本是3.4.3.Final,这是根据文档的最新版keycloak。
答案 0 :(得分:6)
我几乎可以肯定你试图像这样调用端点:
但是,您已经错过了这部分/auth/admin/realms
请注意,不要忘记按照here
的规定授权您的电话<强>更新强>
以下是查看结果的步骤:
$ 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_token
复制并粘贴到Authorization
标题:
$ curl -X GET \
-H 'Authorization: Bearer <access_token_goes_here>' \
http://localhost:9080/auth/admin/realms/master/clients