在iframe中Keycloak SAML请求:No 'AccessControlAllowOrigin' (CORS错误)

2022-01-27 02:57:43 标签 iframecorskeycloaksaml

我正在开发一个工具,嵌入一个外部应用程序的iframe。这个外部应用程序的身份验证是通过SAML和Keycloak。然而,当使用iframe时,SAML请求Keycloak不起作用:“…已经被CORS策略阻塞:没有'Access-Control-Allow-Origin'头在请求的资源上存在。

场景1:使用浏览器访问外部应用程序(正常方式)

我被重定向到key斗篷登录页面,成功认证后,它重定向到外部应用程序,一切工作正常。

场景2:使用iframe加载外部应用程序

加载iframe并显示Keycloak登录页面。然而,在输入凭证之后,由于CORS问题,触发的对key斗篷的SAML请求被阻止(参见)

在iframe中SAML请求Keycloak失败。

一旦我点击失败的URL(以“saml?SAMLRequest=…”开始),并访问它的正常方式(浏览器),一切工作正常。

我在多个网站上读到,例如这里的Keycloak访问控制-允许起源,你必须输入你的网页(在这种情况下localhost:8080)到Keycloak接口内的Web起源字段。这个只在客户端协议中选择openid-connect值时存在。因此,当从openid-connect切换到我使用的SAML时,Web Origin字段消失了。我甚至试图为key斗篷客户端导出配置文件,以手动进入webborigin属性,这也不工作。

我如何改变这个iframe的CORS策略时使用SAML(不是openid-connect),因为我没有访问Web Origin字段?

提前谢谢!

###默认情况下,key斗篷不允许在iframe中加载。

key斗篷管理员必须在域设置->安全防御->报头-> x - frame -选项中明确地允许每个域。在您允许Keycloak进入iframe之前,请确保您了解所有的安全后果。这是一个安全设置。

阅读全文

▼ 版权说明

相关文章也很精彩
推荐内容
更多标签
相关热门
全站排行
随便看看

错说 cuoshuo.com —— 程序员的报错记录

部分内容根据CC版权协议转载;网站内容仅供参考,生产环境使用务必查阅官方文档

辽ICP备19011660号-5

×

扫码关注公众号:职场神器
发送: 1
获取永久解锁本站全部文章的验证码