Keycloak:找不到完整路径的资源

flo*_*lan 31 keycloak keycloak-rest-api

我正在尝试让 keycloak 的 REST API 正常工作。

感谢这篇文章,我能够获得令牌。但是,当尝试第一个答案中的用户列表示例时,我收到错误:

"error": "RESTEASY003210: Could not find resource for full path: http://PATHTOCEAKLOAK:81/auth/user/realms/master/users"
Run Code Online (Sandbox Code Playgroud)

这是我对邮差的要求:

在此输入图像描述

由于我使用的是 Bitnami 容器,管理员称为用户,这就是为什么我使用/auth/user/而不是/auth/admin /

小智 90

对于那些仍然面临此错误并使用 17.0+ 版本 Keycloak 的人来说,根据官方文档,端点发生了变化。我通过在两者之间使用{realm}/user和省略来解决这个问题/auth。

  • @Kostanos 设置 `KC_HTTP_RELAITVE_PATH=/auth` 使其行为与旧的 Wildfly 发行版上的行为相同。从 Wildfly 切换到 quarkus 时,我们决定不使用旧的“auth”基本路径,而是使用“/”,因为它更干净,并允许选择使用“/<path>”以保持向后兼容。请参阅 https://www.keycloak.org/server/all-config?q=relative - 您必须运行构建才能使其生效,因此要么使用优化的 docker 映像(请参阅容器指南),要么使用 ` --自动构建`标志。或者,当本地/未容器化时,首先使用 cmd 运行“构建”命令。 (4认同)

小智 12

除了@Akanksha_p 的答案之外,这里还有一个使用以下命令获取令牌的命令curl:

curl -k -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=your-client" -d "username=some-user" -d "password=hardpassword" -d "grant_type=password" -X POST https://your.fqdn.server:8443/realms/yourrealm/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)


dri*_*ino 5

如果您想知道当前领域可用的 url,您可以进入领域 -> 设置,然后单击“Ednpoints”链接。

或者直接访问以下网址:http://{host}:{port}/realms/{your_realm}/.well-known/openid-configuration。