当前位置: 首页 > 知识库问答 >
问题:

Kubernetes上traefik背后的Keycloak CORS

东方俊杰
2023-03-14

对于使用Keycloak作为Traefik1.7背后的IDP的Webapplication,我们目前面临以下问题:

Chrome控制台告诉我们:

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中,我们在myrealm域中为client myclient设置Web Origins=*。

ingress.kubernetes.io/cors-allow-origin: https://myfrontend.dev.example.com
ingress.kubernetes.io/enable-cors: "true"

共有1个答案

羊舌高峰
2023-03-14

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

  • 将Web起源设置为*是可以的,但我建议将其显式设置为正确的起源,这里:https://myfrontend.dev.example.com(不像卡住的答案那样使用/*)
  • 如果我们检查跨源请求中使用的/tokenendpoint,它可以工作,因为设置了预期的响应头
  • 但是:这里的问题发生在/authendpoint

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

 类似资料:
  • 我正在尝试将Traefik部署为GKE集群上的入口控制器。它是一个具有3个节点的基本集群。 我习惯于使用库伯内特斯集群上的清单部署Traefik,但我们正在将一些基础设施迁移到GCP。 因此,我尝试使用社区掌舵图部署Traefik,配置如下: 然后使用以下命令启动它: 在我的 K8S 集群上部署得很好,除了仪表板入口并出现以下错误: 知道我的错误在哪里吗? 非常谢谢!

  • 我已经按照用户指南在库伯内特斯上实现了Traefik。这给了我一个入口控制器,我能够在80和8080上创建一个入口和traefik-ingress-service监听。 我还设置了“gce”入口: 这样做的目的是创建一个GCE负载平衡器,它终止我的TLS,并将所有请求转发给NodePort类型的traefik入口服务。 GCE负载平衡器需要进行健康检查。默认为路径“/”。我以为traefik有个“

  • 问题内容: 我正在尝试将所有传入的Traefik从http重定向到https,用于Web应用程序,该应用程序从具有自定义端口的docker容器中获取。 如果我构建了这个docker compose文件,并扩展了应用程序,一切将按预期工作。我可以请求应用程序的http和https,但是我尝试实现仅提供https并将http重定向到https的目的。 由于我使用的是Docker-Compose文件,因

  • 我正在云中的AWS EKS服务上运行我的工作负载。我可以看到没有默认的入口控制器可用(因为它可用于GKE),我们必须选择第三方。 我决定使用Traefik。在跟踪文档和其他资源(像这样)之后,我觉得使用Traefik作为IngresController不会自动在云中创建LoadBalancer。我们必须手动完成它来设置所有内容。 如何使用Traefik作为Kubernetes入口,就像其他入口控制

  • 我正在AKS(Azure Kubernetes服务)集群中运行Traefik v2.3.0,目前正在尝试在Traefik UI上设置基本身份验证。 仪表板(TraefikUI)在没有任何身份验证的情况下工作正常,但当我尝试使用基本身份验证访问时,我得到了服务器未找到页面。 这是我的配置。 IngressRoute,BasicAuth中间件,秘密和服务: 守护程序和服务: 使用此配置:kubectl