第 8 章 配置外部身份验证
通过使用外部身份验证,您可以从外部身份提供程序中的用户组成员资格生成用户和用户组权限。因此,您不必创建这些用户,并在 Satellite 服务器上手动维护其组成员资格。Red Hat Satellite 支持配置外部身份验证的四个常规场景:
- 使用轻量级目录访问协议( LDAP)服务器作为外部身份提供程序。LDAP 是一组用于通过网络访问集中存储信息的开放协议。如需更多信息,请参阅 第 8.1 节 “使用 LDAP”。虽然您可以使用 LDAP 连接到 IdM 或 AD 服务器,但设置不支持服务器发现、跨林信任,或使用 Satellite Web UI 上的 Kerberos 的单点登录。
- 使用 Red Hat Enterprise Linux Identity Management (IdM)服务器作为外部身份提供程序。IdM 涉及管理网络环境中使用的独立身份、其凭证和特权。更多信息请参阅 第 8.2 节 “使用身份管理”。
- 使用通过跨林信任 Kerberos 信任作为外部身份提供程序与 IdM 集成的 活动目录 (AD)。更多信息请参阅 第 8.3.1 节 “将 Active Directory 与 Cross-Forest Trust 搭配使用”。
- 使用直接 AD 作为外部身份提供程序。更多信息请参阅 第 8.3.2 节 “直接使用 Active Directory”。
以上场景关于提供对 Satellite 服务器的访问。此外,通过 Satellite 置备的主机也可以与 IdM 域集成。Red Hat Satellite 有一个域功能,它会自动管理注册到域或域供应商的任何系统的生命周期。请参阅 第 8.5 节 “置备主机的外部身份验证” 了解更多信息。
8.1. 使用 LDAP 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
8.1.1. 为安全 LDAP 配置 TLS (LDAPS) 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
注意
虽然本节中介绍了 LDAP 集成,但红帽建议您使用 SSSD 并根据 IdM、AD 或 LDAP 服务器配置它。本指南的其他地方会解释这些首选配置。
如果您需要 Red Hat Satellite 使用
TLS 建立安全 LDAP 连接(LDAPS),首先获取您要连接的 LDAP 服务器使用的证书,并将其标记为信任的 Satellite 服务器基本操作系统,如下所述。如果您的 LDAP 服务器使用带中间证书颁发机构的证书链,则链中的所有 root 和中间证书都必须被信任,因此请确保获取所有证书。如果您目前不需要安全 LDAP,请继续 过程 8.1, “配置 LDAP 身份验证:”。
从 LDAP 服务器获取证书
如果您使用 Active Directory 证书服务,请使用 Base-64 编码 X.509 格式导出企业 PKI CA 证书。如需有关 从 Active Directory 服务器创建和导出 CA 证书的信息,请参阅 如何在 Satellite 6.2 上使用
TLS 配置 Active Directory 身份验证。
将 LDAP 服务器证书下载到安装 Satellite 服务器的 Red Hat Enterprise Linux 系统上的临时位置,完成后将其删除。例如:
/tmp/example.crt。文件扩展 .cer 和 .crt 只是惯例,可以引用 DER 二进制文件或 PEM ASCII 格式证书。
信任 LDAP 服务器中的证书
Red Hat Satellite Server 要求 LDAP 身份验证的 CA 证书是
/etc/pki/tls/certs/ 目录中的单个文件。
使用 install 命令将导入的证书安装到具有正确权限的
/etc/pki/tls/certs/ 目录中。
# install /tmp/example.crt /etc/pki/tls/certs/
以
root 用户身份输入以下命令信任从 LDAP 服务器获取的 example.crt 证书:
# ln -s example.crt /etc/pki/tls/certs/$(openssl x509 -noout -hash -in /etc/pki/tls/certs/example.crt).0
重启
httpd 服务:
- 在 Red Hat Enterprise Linux 6 中:
# service httpd restart - 在 Red Hat Enterprise Linux 7 上:
# systemctl restart httpd
8.1.2. 配置 Red Hat Satellite 以使用 LDAP 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
按照以下步骤,使用 Web UI 配置 LDAP 身份验证。请注意,如果您需要 Satellite Web UI 上使用 Kerberos 的单点登录功能,您应该改为使用 IdM 和 AD 外部身份验证。有关这些选项的更多信息,请参阅 第 8.2 节 “使用身份管理” 或 第 8.3 节 “使用 Active Directory”。
过程 8.1. 配置 LDAP 身份验证:
- 将允许网络信息系统(NIS)服务布尔值设置为 true,以防止 SELinux 停止传出的 LDAP 连接:
- Red Hat Enterprise Linux 6:
# setsebool -P allow_ypbind on - Red Hat Enterprise Linux 7:
# setsebool -P nis_enabled on
- 导航到
。 - 单击 。
- 在 选项卡中,输入 LDAP 服务器的名称、主机名、端口和服务器类型。默认端口为 389,默认的服务器类型是 POSIX (您可以根据身份验证服务器类型选择 FreeIPA 或 Active Directory)。对于
TLS加密连接,请选中 LDAPS 复选框来启用加密。端口应更改为 636,这是 LDAPS 的默认值。 - 在 选项卡中,输入帐户信息和域名详情。有关描述和示例,请参阅 第 8.1.3 节 “LDAP 设置描述和示例”。
- 在 选项卡中,将 LDAP 属性映射到 Satellite 属性。您可以映射登录名称、名字、Surname、电子邮件地址和 Photo 属性。如需示例,请参阅 第 8.1.3 节 “LDAP 设置描述和示例”。
- 在 选项卡上,从左侧表中选择位置。所选位置将分配给从 LDAP 身份验证源创建的用户,并在首次登录后可用。
- 在 选项卡上,从左侧列表中选择机构。所选机构将分配给从 LDAP 身份验证源创建的用户,并在首次登录后可用。
- 单击 。
Satellite 服务器现在被配置为使用 LDAP 服务器。如果您没有在 Satellite 中选择 Automatically create accounts,请参阅 第 4.1.1 节 “创建用户” 来手动创建用户帐户。如果您选择了 选项,LDAP 用户现在可以使用其 LDAP 帐户和密码登录 Satellite。第一次登录后,Satellite 管理员需要手动分配角色。请参阅 第 4.1.3 节 “为用户分配角色” 在 Satellite 中分配适当的角色。
8.1.3. LDAP 设置描述和示例 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
下表提供了 选项卡中每个设置的描述。
| 设置 | 描述 |
|---|---|
| 帐户用户名 | 对 LDAP 服务器具有读取访问权限的 LDAP 用户。如果服务器允许匿名读取,则不需要用户名,否则使用用户对象的完整路径。例如:
$login 变量将登录页面中输入的用户名存储为字面字符串。在变量扩展时将访问该值。
变量不能与来自 LDAP 源的外部用户组一起使用,因为 Satellite 需要在没有用户登录的情况下检索组列表。使用匿名或专用服务用户。
|
| 帐户密码 |
帐户用户名 字段中定义的用户的 LDAP 密码。如果 帐户用户名 使用
$login 变量,则此字段可以保持空白。
|
| Base DN |
LDAP 目录的顶级域名。
|
| 组基本 DN |
包含组的 LDAP 目录树的顶级域名。
|
| LDAP 过滤器 |
用于限制 LDAP 查询的过滤器。
|
| 在 Satellite 中自动创建帐户 |
如果选择了此选项,则当 LDAP 用户第一次登录 Satellite 时,会自动为其创建 Satellite 用户帐户。用户将看到
权限拒绝 警告,并需要联系其 Satellite 管理员,使其用户帐户与角色相关联。
|
| usergroup 同步 |
如果选择了这个选项,则用户的用户组成员资格会在用户登录时自动同步,这样可确保成员资格始终保持最新状态。如果清除此选项,Satellite 依赖于 Cron 作业来定期同步组成员资格(默认为 30 分钟)。有关更多上下文,请参阅 过程 8.6, “配置外部用户组:”。
|
下表显示了不同类型的 LDAP 连接的示例设置。以下所有示例都使用一个名为 redhat 的专用服务帐户,该帐户对用户和组条目具有绑定、读取和搜索权限。请注意,LDAP 属性名称区分大小写。
| 设置 | 示例值 |
|---|---|
| 帐户用户名 | DOMAIN\redhat |
| 帐户密码 | P@ssword |
| 基础 DN | DC=example,DC=COM |
| 组基本 DN | CN=Users,DC=example,DC=com |
| 登录名称属性 | userPrincipalName |
| 名字属性 | givenName |
| surname 属性 | sn |
| 电子邮件地址属性 |
注意
userPrincipalName 允许在用户名中使用空格。登录名称属性 sAMAccountName (上面表中没有列出)提供与旧的 Microsoft 系统向后兼容。sAMAccountName 不允许在用户名中使用空格。
| 设置 | 示例值 |
|---|---|
| 帐户用户名 | uid=redhat,cn=users,cn=accounts,dc=example,dc=com |
| 基础 DN | dc=example,dc=com |
| 组基本 DN | cn=groups,cn=accounts,dc=example,dc=com |
| 登录名称属性 | uid |
| 名字属性 | givenName |
| surname 属性 | sn |
| 电子邮件地址属性 |
| 设置 | 示例值 |
|---|---|
| 帐户用户名 | uid=redhat,ou=users,dc=example,dc=com |
| 基础 DN | dc=example,dc=com |
| 组基本 DN | cn=employee,ou=userclass,dc=example,dc=com |
| 登录名称属性 | uid |
| 名字属性 | givenName |
| surname 属性 | sn |
| 电子邮件地址属性 |