5.2. 使用示例
以下是更多示例场景以及设置主机名的对应命令。
请注意,start
命令需要设置 TLS。例如,不会显示对应的选项。如需了解更多详细信息,请参阅配置 TLS。
5.2.1. 在 TLS 终止代理后面公开服务器
在这个示例中,服务器在 TLS 终止代理后面运行,并从 https://mykeycloak
公开。
配置:
bin/kc.[sh|bat] start --hostname=mykeycloak --proxy=edge
5.2.2. 在没有代理的情况下公开服务器
在本例中,服务器在没有代理的情况下运行,并使用 HTTPS 使用 URL 公开。
红帽构建的 Keycloak 配置:
bin/kc.[sh|bat] start --hostname-url=https://mykeycloak
出于安全性和可用性的原因,强烈建议在服务器前面使用 TLS 终止代理。如需了解更多详细信息 ,请参阅使用反向代理。
5.2.3. 强制后端端点使用服务器公开的相同 URL
在本例中,后端端点使用服务器使用的同一 URL 来公开,以便无论请求的来源如何,客户端始终获取相同的 URL。
红帽构建的 Keycloak 配置:
bin/kc.[sh|bat] start --hostname=mykeycloak --hostname-strict-backchannel=true
5.2.4. 使用默认端口以外的端口公开服务器
在本例中,服务器可以通过默认端口以外的端口访问。
红帽构建的 Keycloak 配置:
bin/kc.[sh|bat] start --hostname-url=https://mykeycloak:8989
5.2.5. 使用不同端口在 TLS 重新加密代理后公开红帽构建的 Keycloak
在本例中,服务器在代理后面运行,服务器和代理都使用自己的证书,因此红帽构建的 Keycloak 和代理之间的通信是加密的。因为我们希望代理使用自己的证书,所以将使用代理 模式
重新加密。我们需要记住代理配置选项(以及主机名配置选项)不会更改服务器实际侦听的端口(它只更改 JavaScript 和 CSS 链接、OIDC 已知端点、重定向 URI 等)。因此,我们需要使用 HTTP 配置选项将红帽构建的 Keycloak 服务器更改为内部侦听不同的端口,如 8543。代理将侦听端口 8443 (通过浏览器访问控制台时可见的端口)。示例主机名 my-keycloak.org
将用于服务器,类似管理控制台将可通过 admin.my-keycloak.org
子域访问。
红帽构建的 Keycloak 配置:
bin/kc.[sh|bat] start --proxy=reencrypt --https-port=8543 --hostname-url=https://my-keycloak.org:8443 --hostname-admin-url=https://admin.my-keycloak.org:8443
注意: 目前 passthrough
和 reencrypt
模式之间没有区别。现在,这的目的是为了实现未来的配置兼容性。唯一的区别在于,当使用 边缘
代理模式时,HTTP 会隐式启用(如上所述,这不会影响服务器的行为)。
使用任何代理模式使红帽构建 Keycloak 依赖于 Forwarded 和 X-Forwarded114 标头。错误配置可能会使红帽构建的 Keycloak 暴露给安全问题。如需了解更多详细信息 ,请参阅使用反向代理。