第 6 章 使用反向代理
分布式环境通常需要使用反向代理。红帽构建的 Keycloak 提供多个选项来安全地与此类环境集成。
6.1. 配置反向代理标头 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
红帽构建的 Keycloak 将根据 proxy-headers 选项解析反向代理标头,该选项接受几个值:
- 默认情况下,如果没有指定选项,则不会解析反向代理标头。
-
转发启用根据 RFC7239 解析Forwarded标头。 -
X
forwarded启用解析非标准 X-Forwarded114 标头,如、X-Forwarded-ForX-Forwarded-Proto、X-Forwarded-Host、X-Forwarded-Port 和X-Forwarded-Port。
例如:
bin/kc.[sh|bat] start --proxy-headers forwarded
bin/kc.[sh|bat] start --proxy-headers forwarded
警告
如果选择了 转发 或 xforwarded,请确保您的反向代理正确设置并分别覆盖 Forwarded 或 X-Forwarded noted 标头。要设置这些标头,请参阅您的反向代理文档。错误配置会将红帽构建的 Keycloak 暴露给安全漏洞。
采取额外的措施,以确保通过 Forwarded 或 X-Forwarded-For 标头的反向代理正确设置客户端地址。如果这个标头配置不正确,则 rogue 客户端可以设置此标头,并欺骗红帽构建的 Keycloak 认为客户端从与实际地址不同的 IP 地址连接。如果您执行任何拒绝或允许 IP 地址列表,则这种预防措施更为重要。
注意
使用 xforwarded 设置时,X-Forwarded-Port 优先于 X-Forwarded-Host 中包含的任何端口。