You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak的step1.html页面缺失X-FRAME-OPTIONS头问题咨询

Keycloak 21.1.2中/auth/realms//protocol/openid-connect/3p-cookies/step1.html缺失X-Frame-Options头的问题分析与解决

原因分析

  • 这个step1.html属于Keycloak第三方Cookie处理流程里的静态页面,是硬编码在核心代码中的,默认不会继承你在领域安全防护里配置的头信息。
  • 领域级的安全防护设置只覆盖常规认证页面、控制台等动态生成的内容,这类特定的静态辅助页面不在默认生效范围内,是21.1.2版本的一个已知小问题。

解决建议

1. 反向代理层面添加(推荐,无需修改Keycloak)

如果你的Keycloak前端有反向代理(比如Nginx、Apache),直接针对这个路径添加响应头:

  • Nginx配置示例:
    location ~* /auth/realms//protocol/openid-connect/3p-cookies/step1.html {
        add_header X-Frame-Options "DENY" always;
        # 若允许同域名嵌入,可改为"SAMEORIGIN"
    }
    
  • Apache配置示例:
    <LocationMatch "/auth/realms//protocol/openid-connect/3p-cookies/step1.html">
        Header always set X-Frame-Options "DENY"
    </LocationMatch>
    

2. 定制修改Keycloak源码(适合有开发能力的场景)

  • 找到源码中该页面的路径:services/src/main/resources/theme/base/admin/resources/partials/3p-cookies/step1.html
  • 在页面的<head>标签内直接添加元标签:
    <meta http-equiv="X-Frame-Options" content="DENY">
    
  • 重新编译打包Keycloak服务并部署。

3. 升级Keycloak版本

Keycloak 22及以上版本已经修复了这个问题,官方将这类静态辅助页面纳入了领域安全头的生效范围,升级到最新稳定版即可彻底解决。

内容的提问来源于stack exchange,提问作者Krishna Kumar Akurathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 02:32:41