第 14 章 配置外部身份验证


通过使用外部身份验证,您可以从外部身份提供程序中的用户组成员资格生成用户和用户组权限。使用外部身份验证时,您不必创建这些用户并在 Satellite 服务器上手动维护其组成员资格。如果外部源不提供电子邮件,它将在第一次通过 Satellite Web UI 登录期间请求。

重要用户和组帐户信息

所有用户和组群帐户都必须是本地帐户。这是为了确保 Satellite 服务器中的本地帐户和 Active Directory 域中的帐户之间没有身份验证冲突。

如果您的用户和组帐户存在于 /etc/passwd/etc/group 文件中,则您的系统不受此冲突的影响。例如,要检查 /etc/passwd/etc/group 文件中是否存在 puppetapache、apache 和 foreman -proxy 组的条目,请输入以下命令:

# cat /etc/passwd | grep 'puppet\|apache\|foreman\|foreman-proxy'
# cat /etc/group | grep 'puppet\|apache\|foreman\|foreman-proxy'
Copy to Clipboard Toggle word wrap

配置外部身份验证的情况

Red Hat Satellite 支持以下常规场景来配置外部身份验证:

  • 使用轻量级目录访问协议( LDAP)服务器作为外部身份提供程序。LDAP 是一组开放协议,用于通过网络访问集中存储的信息。借助 Satellite,您可以通过 Satellite Web UI 完全管理 LDAP。如需更多信息,请参阅 第 14.1 节 “使用 LDAP”。虽然您可以使用 LDAP 连接到红帽身份管理或 AD 服务器,但设置不支持在 Satellite Web UI 中使用 Kerberos 进行服务器发现、跨林信任或单点登录。
  • 使用红帽身份管理服务器作为外部身份提供程序。红帽身份管理涉及管理各个身份、网络环境中使用的凭证和特权。使用 Red Hat Identity Management 的配置只能使用 Satellite Web UI 完成,且需要与 CLI 进行一些交互。如需更多信息,请参阅 第 14.2 节 “使用红帽身份管理”
  • 通过跨林信任 Kerberos 信任作为外部身份提供程序,将与 Red Hat Identity Management 集成的 Active Directory (AD)集成。如需更多信息,请参阅 第 14.3.5 节 “带有跨信任的活动目录”
  • 使用红帽单点登录作为对 Satellite 外部身份验证的 OpenID 供应商。更多信息请参阅 第 14.8 节 “使用红帽单点登录身份验证配置 Satellite”
  • 使用红帽单点登录作为 OpenID 供应商,用于使用 TOTP 对 Satellite 进行外部身份验证。更多信息请参阅 第 14.9 节 “使用 TOTP 配置红帽单点登录身份验证”

除了提供对 Satellite 服务器的访问外,通过 Satellite 置备的主机也可以与红帽身份管理域集成。Red Hat Satellite 有一个域功能,它会自动管理注册到域或域提供程序的任何系统的生命周期。如需更多信息,请参阅 第 14.7 节 “置备主机的外部身份验证”

Expand
表 14.1. 身份验证概述
类型身份验证用户组

Red Hat Identity Management

Kerberos 或 LDAP

Active Directory

Kerberos 或 LDAP

POSIX

LDAP

14.1. 使用 LDAP

Satellite 支持使用一个或多个 LDAP 目录的 LDAP 身份验证。

如果您需要 Red Hat Satellite 使用 TLS 建立安全 LDAP 连接(LDAPS),首先获取您要连接的 LDAP 服务器使用的证书,并将它们标记为 Satellite 服务器的基本操作系统上的信任,如下所述。如果您的 LDAP 服务器使用带有中间证书颁发机构的证书链,则链中的所有 root 和中间证书都必须被信任,因此请确保获取所有证书。如果您目前不需要安全的 LDAP,请继续 第 14.1.2 节 “将 Red Hat Satellite 配置为使用 LDAP”

使用 SSSD 配置

虽然本节介绍了直接 LDAP 集成,但红帽建议您使用 SSSD 并根据 Red Hat Identity Management、AD 或 LDAP 服务器配置它。SSSD 提高身份验证过程的一致性。有关首选配置的详情,请参考 第 14.3 节 “使用 Active Directory”。您还可以缓存 SSSD 凭证,并将它们用于 LDAP 身份验证。如需有关 SSSD 的更多信息,请参阅 Red Hat Enterprise Linux 7 系统级身份验证指南中的配置 SSSD

重要

用户不能同时使用 Red Hat Identity Management 和 LDAP 作为身份验证方法。用户使用某种方法进行身份验证后,他们无法使用其他方法。

要更改用户的身份验证方法,您必须从 Satellite 中删除自动创建的用户。

有关使用 Red Hat Identity Management 作为验证方法的详情,请参考 第 14.2 节 “使用红帽身份管理”

14.1.1. 为安全 LDAP 配置 TLS

使用 Satellite CLI 为安全 LDAP (LDAPS)配置 TLS。

流程

  1. 从 LDAP 服务器获取证书。

    1. 如果您使用 Active Directory 证书服务,请使用 Base-64 编码的 X.509 格式导出 Enterprise PKI CA 证书。有关从 Active Directory 服务器创建和导出 CA 证书的信息,请参阅如何在 Satellite 上使用 TLS 配置 Active Directory 身份验证
    2. 将 LDAP 服务器证书下载到 Satellite 服务器上的临时位置,并在完成后将其删除。

      例如: /tmp/example.crt。文件名扩展 .cer.crt 只是惯例,可以参考 DER 二进制文件或 PEM ASCII 格式证书。

  2. 信任 LDAP 服务器的证书。

    Satellite 服务器要求 LDAP 身份验证的 CA 证书是 /etc/pki/tls/certs/ 目录中的单个文件。

    1. 使用 install 命令将导入的证书安装到具有正确权限的 /etc/pki/tls/certs/ 目录中:

      # install /tmp/example.crt /etc/pki/tls/certs/
      Copy to Clipboard Toggle word wrap
    2. root 用户身份输入以下命令,信任从 LDAP 服务器获取的 example.crt 证书:

      # ln -s example.crt /etc/pki/tls/certs/$(openssl \
      x509 -noout -hash -in \
      /etc/pki/tls/certs/example.crt).0
      Copy to Clipboard Toggle word wrap
    3. 重启 httpd 服务:

      # systemctl restart httpd
      Copy to Clipboard Toggle word wrap

14.1.2. 将 Red Hat Satellite 配置为使用 LDAP

在 Satellite Web UI 中,将 Satellite 配置为使用 LDAP。

请注意,如果您需要在 Satellite Web UI 上使用 Kerberos 进行单点登录功能,您应该改用 Red Hat Identity Management 和 AD 外部身份验证。如需更多信息,请参阅:

流程

  1. 将网络信息系统(NIS)服务布尔值设置为 true,以防止 SELinux 停止传出的 LDAP 连接:

    # setsebool -P nis_enabled on
    Copy to Clipboard Toggle word wrap
  2. 在 Satellite Web UI 中,导航到 Administer > Authentication Sources
  3. 单击 Create LDAP Authentication Source
  4. LDAP server 选项卡中,输入 LDAP 服务器的名称、主机名、端口和服务器类型。默认端口为 389,默认服务器类型是 POSIX (您可以根据身份验证服务器的类型选择 FreeIPA 或 Active Directory)。对于 TLS 加密连接,请选择 LDAPS 复选框以启用加密。端口应更改为 636,这是 LDAPS 的默认端口。
  5. Account 选项卡中,输入帐户信息和域名详情。有关描述和示例,请参阅 第 14.1.3 节 “LDAP 设置的描述”
  6. 属性映射选项卡上,将 LDAP 属性映射到 Satellite 属性。您可以映射登录名称、名字、姓氏、电子邮件地址和取消部署属性。例如,请参阅 第 14.1.4 节 “LDAP 连接设置示例”
  7. 位置 选项卡上,从左表中选择位置。所选位置分配给从 LDAP 身份验证源创建的用户,并在首次登录时可用。
  8. Organizations 选项卡上,从左侧表中选择机构。所选组织分配给从 LDAP 身份验证源创建的用户,并在首次登录时可用。
  9. Submit
  10. 为 LDAP 用户配置新帐户:

    • 如果您没有选择 Automatically Create Accounts In Satellite 复选框,请参阅 第 5.1.1 节 “创建用户” 以手动创建用户帐户。
    • 如果您选择了 Automatically Create Accounts In Satellite 复选框,则 LDAP 用户现在可以使用其 LDAP 帐户和密码登录 Satellite。首次登录后,Satellite 管理员必须手动为他们分配角色。请参阅 第 5.1.2 节 “为用户分配角色” 在 Satellite 中分配用户帐户适当的角色。

14.1.3. LDAP 设置的描述

下表提供了 Account 选项卡中每个设置的描述。

Expand
表 14.2. Account Tab 设置
设置描述

帐户

对 LDAP 服务器的读取访问权限的 LDAP 帐户的用户名。如果服务器允许匿名读取,则不需要用户名,否则使用用户对象的完整路径。例如:

uid=$login,cn=users,cn=accounts,dc=example,dc=com
Copy to Clipboard Toggle word wrap

$login 变量将登录页面中输入的用户名存储为字面字符串。该值在扩展变量时会被访问。

该变量无法从 LDAP 源与外部用户组一起使用,因为 Satellite 需要在没有用户登录的情况下检索组列表。使用匿名或专用服务用户。

帐户密码

帐户用户名 字段中定义的用户的 LDAP 密码。如果 帐户用户名 使用 $login 变量,则此字段可以留空。

基本 DN

LDAP 目录的顶级域名。

组基本 DN

包含组的 LDAP 目录树的顶级域名。

LDAP 过滤器

用于限制 LDAP 查询的过滤器。

在 Satellite 中自动创建帐户

如果选中此复选框,Satellite 会在首次登录 Satellite 时为 LDAP 用户创建用户帐户。首次登录后,Satellite 管理员必须手动为他们分配角色。请参阅 第 5.1.2 节 “为用户分配角色” 在 Satellite 中分配用户帐户适当的角色。

usergroup Sync

如果选择了这个选项,用户组成员资格会在用户登录时自动同步,这样可确保成员资格始终保持最新状态。如果此选项被清除,Satellite 依赖于 cron 作业来定期同步组成员资格(默认为 30 分钟)。如需更多信息,请参阅 第 14.4 节 “配置外部用户组”

14.1.4. LDAP 连接设置示例

下表显示了不同类型的 LDAP 连接设置示例。以下示例使用一个名为 redhat 的专用服务帐户,它对用户和组群条目具有 bind、read 和 search 权限。请注意,LDAP 属性名称区分大小写。

Expand
表 14.3. Active Directory、free IPA 或 Red Hat Identity Management 和 POSIX LDAP 连接的设置示例
设置Active DirectoryFreeIPA 或 Red Hat Identity ManagementPOSIX (OpenLDAP)

帐户

DOMAIN\redhat

uid=redhat,cn=users, cn=accounts,dc=example, dc=com

uid=redhat,ou=users, dc=example,dc=com

帐户密码

P@ssword

-

-

基本 DN

DC=example,DC=COM

dc=example,dc=com

dc=example,dc=com

组基本 DN

CN=Users,DC=example,DC=com

cn=groups,cn=accounts, dc=example,dc=com

cn=employee,ou=userclass, dc=example,dc=com

登录名称属性

userPrincipalName

uid

uid

名字属性

givenName

givenName

givenName

姓氏属性

sn

sn

sn

电子邮件地址属性

mail

mail

mail

Photos 属性

thumbnailPhoto

-

-

注意

userPrincipalName 允许在用户名中使用空格。登录名称属性 sAMAccountName (没有在上表中列出)提供与传统 Microsoft 系统向后兼容性。sAMAccountName 不允许在用户名中使用空格。

14.1.5. LDAP 过滤器示例

作为管理员,您可以创建 LDAP 过滤器来限制特定用户对 Satellite 的访问。

Expand
表 14.4. 允许特定用户登录的过滤器示例
用户Filter

User1

(distinguishedName=cn=User1,cn=Users,dc=domain,dc=example)

User1, User3

(memberOf=cn=Group1,cn=Users,dc=domain,dc=example)

User2、User3

(memberOf=cn=Group2,cn=Users,dc=domain,dc=example)

User1, User2, User3

(|(memberOf=cn=Group1,cn=Users,dc=domain,dc=example) (memberOf=cn=Group2,cn=Users,dc=domain,dc=example))

User1, User2, User3

(memberOf:1.2.840.113556.1.4.1941:=cn=Users,dc=domain,dc=example)

注意

Users 是包含组 Group1Group2 的嵌套组。如果要过滤嵌套组中的所有用户,您必须在嵌套组名称前添加 memberOf:1.2.840.113556.1.4.1941:=。请参阅上表中的最后一个示例。

LDAP 目录结构

示例中的过滤器使用的 LDAP 目录结构:

DC=Domain,DC=Example
   |
   |----- CN=Users
         |
         |----- CN=Group1
         |----- CN=Group2
         |----- CN=User1
         |----- CN=User2
         |----- CN=User3
Copy to Clipboard Toggle word wrap

LDAP 组成员身份

示例中的过滤器使用的组成员资格:

Expand
成员

Group1

User1, User3

group2

User2、User3

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat