第 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
警告
如果选择了 转发
或 xforwarded
,请确保您的反向代理正确设置并分别覆盖 Forwarded
或 X-Forwarded noted
标头。要设置这些标头,请参阅您的反向代理文档。错误配置会将红帽构建的 Keycloak 暴露给安全漏洞。
采取额外的措施,以确保通过 Forwarded
或 X-Forwarded-For
标头的反向代理正确设置客户端地址。如果这个标头配置不正确,则 rogue 客户端可以设置此标头,并欺骗红帽构建的 Keycloak 认为客户端从与实际地址不同的 IP 地址连接。如果您执行任何拒绝或允许 IP 地址列表,则这种预防措施更为重要。
注意
使用 xforwarded
设置时,X-Forwarded-Port
优先于 X-Forwarded-Host
中包含的任何端口。