You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Keycloak设置Web Origins为*后仍出现的CORS问题?

Keycloak Token Endpoint CORS 问题

错误信息

Access to fetch at 'http://localhost:9090/realms/XXX/protocol/openid-connect/token' from origin 'https://localhost:7001' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

问题描述

调用Keycloak的Token Endpoint时触发上述CORS错误,已将客户端设置中的Web Origins设为*(截图如下),但问题未解决。

访问设置截图

排查与解决方案

  • 确认客户端类型:如果客户端是confidential类型,Web Origins的CORS配置不会生效——这类客户端设计为服务端调用,不支持浏览器跨域请求,需改为public类型。
  • 替换通配符为具体Origin:浏览器对带凭证的跨域请求会限制通配符*的使用,直接将https://localhost:7001添加到Web Origins列表中,删除通配符。
  • 检查凭证相关配置:若请求携带cookie或其他凭证,需在客户端Advanced标签下开启Access-Control-Allow-Credentials,此时Web Origins必须指定具体域名,不能用*。
  • 验证响应头是否生效:用curl命令检查Token Endpoint的响应头,确认是否包含Access-Control-Allow-Origin:
    curl -I http://localhost:9090/realms/XXX/protocol/openid-connect/token
    
    若未返回该头,尝试重启Keycloak服务,或检查反向代理(如Nginx)是否覆盖了响应头配置。
  • 适配请求内容类型:如果前端请求用了application/json类型,需在客户端Advanced->Access-Control-Allow-Headers中添加Content-Type字段,默认Token Endpoint仅支持application/x-www-form-urlencoded。

内容的提问来源于stack exchange,提问作者acmoune

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:53:15