目前,我们的We应用程序使用Keycloak作为Traefik 1.7后面的IDP,面临以下问题:
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中,我们将Web =*设置为myclient领域内的客户端myclient。
我们已经尝试将https://myfrontend.dev.example.com设置为网络起源。这没什么用。
我们在部署keycloak的名称空间中配置了inside。添加注释:
ingress.kubernetes.io/cors-allow-origin: https://myfrontend.dev.example.com
ingress.kubernetes.io/enable-cors: "true"这没什么用。
在过去,我们只使用相同的子域来设置IDP。这将防止任何CORS问题,但我们想分开这一点。
对于在何处添加配置以应用与CORS相关的标头有任何建议吗?谢谢。
发布于 2020-10-26 21:34:17
经过几个小时的分析,不了解这里发生了什么:
中出现。
因此,无论是谁遇到了这个问题,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
发布于 2020-10-26 20:56:18
在此场景中不允许使用AFAIK *。在设置前端域时,尝试在最后添加/*:
https://myfrontend.dev.example.com/*如果这仍然不起作用,请查看中的keycloak日志和响应头,并将它们发布到您的问题中。
https://stackoverflow.com/questions/64539015
复制相似问题