第 7 章 使用公共主机名


Red Hat Single Sign-On 使用公共主机名来做多个事项。例如,在令牌签发者字段中,使用密码重置电子邮件发送的 URL。

主机名 SPI 提供为请求配置主机名的方法。默认供应商允许为 frontend 请求设置固定 URL,同时允许后端请求基于请求 URI。如果内置供应商不提供所需的功能,也可以开发您自己的供应商。

7.1. 默认供应商

默认主机名供应商使用配置的 frontendUrl 作为 frontend 请求的基本 URL(来自 user-agents 的requests),并使用请求 URL 作为后端请求(从客户端重定向请求)的基础。

frontend 请求不必与 Keycloak 服务器具有相同的 context-path。这意味着,您可以在 上公开 Keycloak,例如 https://auth.example.orghttps://example.org/keycloak,而内部它的 URL 可能是 https://10.0.0.10:8080/auth。

这样,可以把 user-agents(浏览器)通过公共域名向 Red Hat Single Sign-On 发送请求,而内部客户端则可使用内部域名或 IP 地址。

这反映在 OpenID Connect Discovery 端点中,例如,authorization_endpoint 使用 frontend URL,而 token_endpoint 使用后端 URL。在这里,一个实例的公共客户端会通过公共端点联系 Keycloak,这会导致 authorization_endpointtoken_endpoint 的基础是相同的。

要为 Keycloak 设置 frontendUrl,您可以将 -Dkeycloak.frontendUrl=https://auth.example.org 传递给启动,或者在 standalone.xml 中配置。请参见以下示例:

<spi name="hostname">
    <default-provider>default</default-provider>
    <provider name="default" enabled="true">
        <properties>
            <property name="frontendUrl" value="https://auth.example.com"/>
            <property name="forceBackendUrlToFrontendUrl" value="false"/>
        </properties>
    </provider>
</spi>
Copy to Clipboard Toggle word wrap

要使用 jboss-cli 更新 frontendUrl,请使用以下命令:

/subsystem=keycloak-server/spi=hostname/provider=default:write-attribute(name=properties.frontendUrl,value="https://auth.example.com")
Copy to Clipboard Toggle word wrap

如果您希望所有请求都通过公共域名,您可以强制后端请求使用前端 URL,也可以通过将 forceBackendUrlToFrontendUrl 设置为 true

也可以覆盖单个域的默认前端 URL。这可以在管理控制台中完成。

如果您不想公开公共域中的 admin 端点和控制台,请使用属性 adminUrl 为 admin 控制台设置固定 URL,这与 frontendUrl 不同。还需要阻止外部对 /auth/admin 的访问,有关如何操作 "服务器管理指南" 的详细信息。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat