第 8 章 使用反向代理


分布式环境通常需要使用反向代理。红帽构建的 Keycloak 提供多个选项来安全地与此类环境集成。

8.1. 配置反向代理标头

红帽构建的 Keycloak 将根据 proxy-headers 选项解析反向代理标头,该选项接受几个值:

  • 默认情况下,如果没有指定 选项,则不会解析反向代理标头。
  • 转发 启用根据 RFC7239 解析 Forwarded 标头。
  • X forwarded 启用解析非标准 X-Forwarded输入 标头,如 X-Forwarded-ForX-Forwarded-ProtoX-Forwarded-HostX-Forwarded-Port
注意

如果您在 https passthrough 之外使用反向代理且没有设置 proxy-headers 选项,则默认情况下,您将看到通过执行原始检查的代理对请求的 403 Forbidden 响应。

例如:

bin/kc.[sh|bat] start --proxy-headers forwarded
警告

如果选择了 转发xforwarded,请确保您的反向代理正确设置并分别覆盖 ForwardedX-Forwarded EgressIP 标头。要设置这些标头,请查阅您的反向代理文档。错误配置会使红帽构建 Keycloak 暴露于安全漏洞。

采取额外的预防措施,确保客户端地址由您的反向代理通过 ForwardedX-Forwarded-For 标头正确设置。如果正确配置了此标头,则恶意客户端可以设置此标头并欺骗红帽构建的 Keycloak,以认为客户端从与实际地址不同的 IP 地址连接。如果您执行任何拒绝或允许 IP 地址列表,则此预防措施可能更为重要。

注意

使用 xforwarded 设置时,X-Forwarded-Port 优先于 X-Forwarded-Host 中包含的任何端口。

注意

如果在反向代理(边缘终止)终止 TLS 连接,则需要通过 'http-enabled' 设置启用 HTTP。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.