8.4.5. 跨域信任
在 Kerberos 协议中,realm
是一组 Kerberos 主体。这些主体的定义存在于 Kerberos 数据库中,通常是 LDAP 服务器。
Kerberos 协议允许跨域信任。例如,如果存在 2 个 Kerberos 域、A 和 B,那么跨域信任将允许 realm A 的用户访问 realm B 的资源。realm B 信任域 A.
Kerberos 跨域信任
Red Hat Single Sign-On 服务器支持跨域信任。要做到这一点,请执行以下操作:
-
为跨域信任配置 Kerberos 服务器。实施此步骤取决于 Kerberos 服务器实现。此步骤是将 Kerberos 主体
krbtgt/B@A
添加到 realm A 和 B 的 Kerberos 数据库中。这个主体必须在 Kerberos 域上都有相同的密钥。主体必须在两个域中都有相同的密码、密钥版本号和密码。详情请查看 Kerberos 服务器文档。
默认情况下,跨域信任是单向。您必须将主体 krbtgt/A@B
添加到 Kerberos 数据库,以便在域 A 和域 B 之间进行双向信任。但是,默认情况下信任是传输的。如果 realm B 信任域 A 和 realm C 信任域 B,那么 realm C 信任域 A 不使用主体 krbtgt/C@A
,可用。Kerberos 客户端中可能需要其他配置(例如 capaths
),以便客户端能够找到信任路径。详情请查看 Kerberos 文档。
配置红帽单点登录服务器
-
当使用带有 Kerberos 支持的 LDAP 存储供应商时,为域 B 配置服务器主体,如下例所示:
HTTP/mydomain.com@B
。如果域 A 中的用户成功向 Red Hat Single Sign-On 进行身份验证,LDAP 服务器必须查找来自 realm A 的用户,因为红帽单点登录必须执行 SPNEGO 流,然后查找用户。
-
当使用带有 Kerberos 支持的 LDAP 存储供应商时,为域 B 配置服务器主体,如下例所示:
例如,在 LDAP DN 的 LDAP 中必须有 Kerberos 主体用户 john@A
,如 uid=john,ou=People,dc=example,dc=com
。如果您希望域 A 和 B 中的用户进行身份验证,请确保 LDAP 可以从 realms A 和 B 中查找用户。
-
当使用 Kerberos 用户存储供应商(通常是没有 LDAP 集成)时,将服务器主体配置为
HTTP/mydomain.com@B
,并且来自 Kerberos 域 A 和 B 的用户必须能够进行身份验证。
在使用 Kerberos 用户存储供应商时,Kerberos 域中不能有冲突的用户。如果存在冲突的用户,Red Hat Single Sign-On 会将它们映射到同一用户。