首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubernetes上traefik后面的Keycloak CORS

Kubernetes上traefik后面的Keycloak CORS
EN

Stack Overflow用户
提问于 2020-10-26 14:23:11
回答 2查看 953关注 0票数 0

目前,我们的We应用程序使用Keycloak作为Traefik 1.7后面的IDP,面临以下问题:

Chrome控制台告诉我们:

代码语言:javascript
运行
复制
Access to manifest at 'https://keycloak.dev.example.com/auth/realms/myrealm/protocol/openid-connect/auth?client_id=myclient&redirect_uri=...' (redirected from 'https://myfrontend.dev.example.com/manifest.json') from origin 'https://myfrontend.dev.example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

在keycloak中,我们将Web =*设置为myclient领域内的客户端myclient。

我们已经尝试将https://myfrontend.dev.example.com设置为网络起源。这没什么用。

我们在部署keycloak的名称空间中配置了inside。添加注释:

代码语言:javascript
运行
复制
ingress.kubernetes.io/cors-allow-origin: https://myfrontend.dev.example.com
ingress.kubernetes.io/enable-cors: "true"

这没什么用。

在过去,我们只使用相同的子域来设置IDP。这将防止任何CORS问题,但我们想分开这一点。

对于在何处添加配置以应用与CORS相关的标头有任何建议吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-26 21:34:17

经过几个小时的分析,不了解这里发生了什么:

  • 将works设置为*是可以的,而我建议将其显式地设置为正确的起源,在这里:https://myfrontend.dev.example.com (没有/*,如卡住的答案)
  • ,如果我们在跨源请求中检查/token端点,它会工作,因为预期的响应头被设置为
  • ,但是:这里的问题在/auth端点

中出现。

因此,无论是谁遇到了这个问题,Keycloak就像在10/2020版本的11.x版本中一样,根本不支持/auth OpenID-connect端点上的CORS。这不是OIDC规范的要求,所以Keycloak (和其他工具)在这里不支持CORS。

如果我们设置work并启用CORS,那么它将适用于某些端点,例如/token,但对于一些不适用的端点,例如/auth。这是因为/auth被算作只有用户的端点,用户会显式地请求,或者用户将被重定向到而不是前端应该以某种方式在后台发送请求。

我们在应用程序的一部分中实现了错误的工作流。没有钥匙斗篷(或traefik或kubernetes)问题。

请查看这里的讨论以获得任何功能更新:https://keycloak.discourse.group/t/authorizationendpoint-does-not-support-cors/3495

票数 1
EN

Stack Overflow用户

发布于 2020-10-26 20:56:18

在此场景中不允许使用AFAIK *。在设置前端域时,尝试在最后添加/*

代码语言:javascript
运行
复制
https://myfrontend.dev.example.com/*

如果这仍然不起作用,请查看中的keycloak日志和响应头,并将它们发布到您的问题中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64539015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档