Keycloak:所有 API 响应均为 404

Sar*_*lim 4 keycloak keycloak-services keycloak-rest-api

我按照本教程设置 Keycloak 并创建用户,但响应使用 Keycloak 的 API 404 生成访问令牌的步骤。我使用的是 Keycloak 版本 18.0.0

在keycloak的日志中我发现了这个错误

2022-06-12 23:59:57,177 DEBUG [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-3) Error response 404: javax.ws.rs.NotFoundException: RESTEASY003210: Could not find resource for full path: http://localhost:8080/auth/realms/test/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Abh*_*eet 9

从 keycloak 17+ 开始,资源或令牌 URI 发生了变化。auth尝试从您的请求 URL 中删除。

如果您使用的 Keycloak 版本 < 17

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 http://localhost:8080/auth/realms/yourrealm/protocol/openid-connect/token

如果您使用的Keycloak版本> 17

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 http://localhost:8080/realms/yourrealm/protocol/openid-connect/token


Ben*_*Vue 6

404错误表示该资源的URL不存在。

您确实设置了标题而不是正文。将键和值移至正文。在此输入图像描述

在Keycloak版本18中

您可以通过单击“OpenID 端点配置”链接来验证令牌 URL 在此输入图像描述

它将显示令牌 URL 在此输入图像描述

在Keycloak版本21中

在此输入图像描述

OIDC 知名配置端点

从 Keycloak 的众所周知的配置端点返回 OpenID Connect 配置值

GET /.well-known/openid-configuration
Run Code Online (Sandbox Code Playgroud)
http://localhost:8080/realms/[your realm]/.well-known/openid-configuration
Run Code Online (Sandbox Code Playgroud)

令牌端点

http://localhost:8080/realms/[your realm]/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Access Token通过邮递员 获取。在此输入图像描述