【问题标题】:Cant access keycloak rest API methods *404*无法访问 keycloak REST API 方法 *404*
【发布时间】:2018-07-08 12:00:50
【问题描述】:

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

【问题讨论】:

  • 你试过http://localhost:9080/auth/admin/realms/{realm}/clients吗?

标签: keycloak keycloak-services


【解决方案1】:

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

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

但是,你错过了这部分/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 header:

$ curl -X GET \
    -H 'Authorization: Bearer <access_token_goes_here>' \
    http://localhost:9080/auth/admin/realms/master/clients

【讨论】:

  • 不起作用(即使在将 demo 替换为有效领域后)。我尝试使用 AdvancedRESTClient 发送与管理控制台相同的授权标头,但仍然收到 404。我已经尝试使用 dockerized keycloak 和独立的。
  • 您的另一点“缺少授权”对我来说很有帮助,因为奇怪的是,从浏览器访问相同的 url 对我不起作用(在身份验证之后)。但是当我通过邮递员将不记名令牌发送到相同的URL时,它是成功的。
  • @TahaRehmanSiddiqui,它可以帮助 9 个人。也许是时候接受答案了;-)
  • @AlexKarasev 谢谢。但我的问题是针对不同的 API。使用此 URL POST /auth/admin/realms/master/clients/7534ac42-fe8b-4cde-b6c6-c385f4958e3b/roles 创建新客户端角色时,我得到 400 ...我在服务器上看不到任何错误。在 KC 文档中,URL 是 /{realm}/clients/{client}/roles,但该 URL 返回 404。文档:keycloak.org/docs-api/14.0/rest-api
猜你喜欢
  • 2016-04-12
  • 2019-01-28
  • 2023-03-09
  • 2014-01-28
  • 1970-01-01
  • 2013-04-12
  • 2019-08-16
  • 2020-10-30
  • 1970-01-01
相关资源
最近更新 更多