如何在 keycloak 和 nginx 上配置 cors?

Posted

技术标签:

【中文标题】如何在 keycloak 和 nginx 上配置 cors?【英文标题】:How to configure cors on keycloak and nginx? 【发布时间】:2021-03-24 14:14:24 【问题描述】:

问题是这样的:我们发布了一个带有 Vue 前端和 keycloak 授权服务器的应用程序。 Keycloak 工作在 docker 容器中,应用位于 URL:app.xxxx.xx,授权位于 URL:auth.xxxx.xx。 nginx 用作代理服务器。一切都启动了,但是授权后,应用本身没有加载,出现错误:

在“https://auth.xxxx.xx/auth/realms/Atlas/protocol/openid-connect/token”访问 XMLHttpRequest(重定向自“http://auth.xxxx.xx/auth/realms/ Atlas/protocol/openid-connect/token') 来自来源 'http://app.gxxxx.xx.'已被 CORS 策略阻止:当请求的凭据模式为“包含”时,响应中的“Access-Control-Allow-Origin”标头的值不能是通配符“*”。 XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。

Keycloak config

Nginx config

【问题讨论】:

【参考方案1】:

尝试在客户端配置的“Web origins”中使用“+”?

见Web origins。

【讨论】:

以上是关于如何在 keycloak 和 nginx 上配置 cors?的主要内容,如果未能解决你的问题,请参考以下文章

在nginx入口控制器后启用tls时,keycloak停止工作。

Keycloak NGINX 反向代理问题

keycloak 无效参数:redirect_uri 在反向代理后面

如何解决nginx ingress的路径冲突?

使用 nginx 作为反向代理和 keycloak 作为上游服务器的组合失败

使用 nginx 的 Keycloak 重定向 url 将转到 http 而不是 https