Docker部署Keycloak Token端点返回404错误求助
解决Keycloak 20.1.0 Token端点404错误的方案
核心问题:缺失/auth路径前缀
你使用的quay.io/keycloak/keycloak:legacy镜像属于Keycloak传统WildFly架构发行版,所有API端点(包括OpenID Connect的Token端点)都需要以/auth作为路径前缀。你的curl命令URL缺少该前缀,这是导致404错误的直接原因——从你能正常访问http://192.168.0.112:8085/auth/admin/也能验证这一点,管理控制台同样依赖/auth前缀。
修正后的curl命令
curl --request POST \ --url http://192.168.0.112:8085/auth/realms/hasura-app/protocol/openid-connect/token \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data username=test \ --data password=testtest \ --data grant_type=password \ --data client_id=hasura-app
额外排查校验点
- 客户端授权类型配置:登录Keycloak管理控制台,进入
hasura-app客户端的设置页面,确认Direct Access Grants Enabled(对应password授权类型)已勾选;若客户端访问类型为confidential,需确保已生成有效凭证(password授权在public客户端也可正常使用)。 - 验证Realm有效性:访问
http://192.168.0.112:8085/auth/realms/hasura-app/.well-known/openid-configuration,若返回JSON格式的OpenID配置信息,说明Realm路径和名称完全正确;若仍返回404,需重新检查Realm是否正确创建。 - 查看容器日志:执行
docker-compose logs keycloak查看Keycloak容器日志,排查是否存在Realm初始化失败、客户端配置错误等异常信息,定位隐藏问题。
内容的提问来源于stack exchange,提问作者Blaž
相关产品推荐
相关产品推荐

