14.3. 使用 Active Directory


本节介绍如何使用直接 Active Directory (AD)作为 Satellite 服务器的外部身份验证源。

注意

您可以将 Active Directory 附加到没有单点登录支持的外部身份验证源。如需更多信息,请参阅 第 14.1 节 “使用 LDAP”。有关示例配置,请参阅如何在 Satellite 上使用 TLS 配置 Active Directory 身份验证

直接 AD 集成意味着 Satellite 服务器直接加入到存储身份的 AD 域。推荐的设置由两个步骤组成:

14.3.1. GSS-Proxy

Apache 中 Kerberos 身份验证的传统流程需要 Apache 进程对 keytab 文件具有读取访问权限。GSS-Proxy 允许您通过删除对 keytab 文件的访问,同时保留 Kerberos 身份验证功能,为 Apache 服务器实施更严格的特权分离。当使用 AD 作为 Satellite 的外部身份验证源时,建议实施 GSS-proxy,因为 keytab 文件中的密钥与主机密钥相同。

在作为 Satellite 服务器的基础操作系统的 Red Hat Enterprise Linux 中执行以下步骤。对于本节中的示例,EXAMPLE.ORG 是 AD 域的 Kerberos 域。通过完成这个过程,属于 EXAMPLE.ORG 域的用户可以登录到 Satellite 服务器。

14.3.2. 使用 AD 服务器注册 Satellite 服务器

在 Satellite CLI 中,将 Satellite 服务器注册到 Active Directory 服务器。

前提条件

  • GSS-proxy 和 nfs-utils 已安装。

    安装 GSS-proxy 和 nfs-utils:

    # satellite-maintain packages install gssproxy nfs-utils
    Copy to Clipboard Toggle word wrap

流程

  1. 安装所需的软件包:

    # satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
    Copy to Clipboard Toggle word wrap
  2. 将 Satellite 服务器注册到 AD 服务器。您可能需要具有管理员权限才能执行以下命令:

    # realm join -v EXAMPLE.ORG --membership-software=samba -U Administrator
    Copy to Clipboard Toggle word wrap

14.3.3. 使用 GSS-Proxy 配置直接 AD 集成

在 Satellite CLI 中,配置直接 Active Directory 与 GSS-proxy 集成。

前提条件

流程

  1. 创建 /etc/ipa/ 目录和 default.conf 文件:

    # mkdir /etc/ipa
    # touch /etc/ipa/default.conf
    Copy to Clipboard Toggle word wrap
  2. default.conf 文件中添加以下内容:

    [global]
    server = unused
    realm = EXAMPLE.ORG
    Copy to Clipboard Toggle word wrap
  3. 使用以下内容创建 /etc/net-keytab.conf 文件:

    [global]
    workgroup = EXAMPLE
    realm = EXAMPLE.ORG
    kerberos method = system keytab
    security = ads
    Copy to Clipboard Toggle word wrap
  4. 确定 Apache 用户的有效用户 ID:

    # id apache
    Copy to Clipboard Toggle word wrap

    Apache 用户不能能够访问 keytab 文件。

  5. 使用以下内容创建 /etc/gssproxy/00-http.conf 文件:

    [service/HTTP]
    mechs = krb5
    cred_store = keytab:/etc/httpd/conf/http.keytab
    cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U
    euid = ID_of_Apache_User
    Copy to Clipboard Toggle word wrap
  6. 创建 keytab 条目:

    # KRB5_KTNAME=FILE:/etc/httpd/conf/http.keytab net ads keytab add HTTP -U administrator -d3 -s /etc/net-keytab.conf
    # chown root.apache /etc/httpd/conf/http.keytab
    # chmod 640 /etc/httpd/conf/http.keytab
    Copy to Clipboard Toggle word wrap
  7. 在 Satellite 中启用 IPA 身份验证:

    # satellite-installer --foreman-ipa-authentication=true
    Copy to Clipboard Toggle word wrap
  8. 启动并启用 gssproxy 服务:

    # systemctl restart gssproxy.service
    # systemctl enable gssproxy.service
    Copy to Clipboard Toggle word wrap
  9. 要将 Apache 服务器配置为使用 gssproxy 服务,请创建一个 systemd drop-in 文件并为其添加以下内容:

    # mkdir -p /etc/systemd/system/httpd.service.d/
    # vi /etc/systemd/system/httpd.service.d/gssproxy.conf
    [Service]
    Environment=GSS_USE_PROXY=1
    Copy to Clipboard Toggle word wrap
  10. 将更改应用到该服务:

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  11. 启动并启用 httpd 服务:

    # systemctl restart httpd.service
    Copy to Clipboard Toggle word wrap
重要

通过直接 AD 集成,不提供通过红帽身份管理的 HBAC。另外,您可以使用组策略对象(GPO)来使管理员在 AD 环境中集中管理策略。要确保正确的 GPO 到 PAM 服务映射,请将以下 SSSD 配置添加到 /etc/sssd/sssd.conf 中:

access_provider = ad
ad_gpo_access_control = enforcing
ad_gpo_map_service = +foreman
Copy to Clipboard Toggle word wrap

此处,foreman 是 PAM 服务名称。如需有关 GPO 的更多信息,请参阅 将 RHEL 系统直接与 Windows 目录服务器集成 中的 SSSD 如何解释 GPO 访问控制规则

验证

验证 SSO 是否按预期工作。

使用正在运行的 Apache 服务器时,如果客户端有有效的 Kerberos 票据,则对服务器发出 HTTP 请求的用户将进行身份验证。

  1. 使用以下命令检索 LDAP 用户的 Kerberos 票据:

    # kinit ldapuser
    Copy to Clipboard Toggle word wrap
  2. 使用以下命令查看 Kerberos ticket:

    # klist
    Copy to Clipboard Toggle word wrap
  3. 使用以下命令,查看基于 SSO 的身份验证的输出:

    # curl -k -u : --negotiate https://satellite.example.com/users/extlogin
    Copy to Clipboard Toggle word wrap

    这会返回以下响应:

    <html><body>You are being <a href="https://satellite.example.com/users/4-ldapuserexample-com/edit">redirected</a>.</body></html>
    Copy to Clipboard Toggle word wrap

14.3.4. Web 浏览器中的 Kerberos 配置

有关配置 Firefox 浏览器的详情,请参考 Red Hat Enterprise Linux 系统级身份验证指南 中的将 Firefox 配置为为单点登录使用 Kerberos

如果您使用 Internet Explorer 浏览器,请将 Satellite 服务器添加到本地 IDemo 或受信任的站点列表中,然后打开 Enable Integrated Windows Authentication 设置。详情请查看 Internet Explorer 文档。

14.3.5. 带有跨信任的活动目录

Kerberos 可以创建 跨林信任,以定义两个独立域林之间的关系。域林是域的层次结构,即 AD 和 Red Hat Identity Management 都是林。在 AD 和 Red Hat Identity Management 之间启用了信任关系,AD 的用户可以使用一组凭证访问 Linux 主机和服务。有关跨林信任的更多信息,请参阅 Red Hat Enterprise Linux Windows 集成 指南中的使用 Active Directory 和 Identity Management 创建跨林信任

从 Satellite 的角度来看,配置过程与在没有配置跨林信任的情况下与红帽身份管理服务器集成的过程相同。Satellite 服务器必须在 IdM 域中注册,并集成,如 第 14.2 节 “使用红帽身份管理” 所述。

在 Red Hat Identity Management 服务器上,将服务器配置为使用跨林信任

流程

  1. 启用 HBAC:

    1. 创建一个外部组,并将 AD 组添加到其中。
    2. 将新的外部组添加到 POSIX 组。
    3. 在 HBAC 规则中使用 POSIX 组。
  2. 配置 sssd 以传输 AD 用户的额外属性。

    • 将 AD 用户属性添加到 /etc/sssd/sssd.conf 中的 nssdomain 部分。例如:

      [nss]
      user_attributes=+mail, +sn, +givenname
      [domain/EXAMPLE.com]
      ...
      krb5_store_password_if_offline = True
      ldap_user_extra_attrs=email:mail, lastname:sn, firstname:givenname
      
      [ifp]
      allowed_uids = ipaapi, root
      user_attributes=+email, +firstname, +lastname
      Copy to Clipboard Toggle word wrap
    • 验证 AD 属性值。

      # dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:ad-user@ad-domain array:string:email,firstname,lastname
      Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat