搜索

13.3. 使用 Active Directory

download PDF

本节演示了如何使用直接 Active Directory(AD)作为卫星服务器的外部身份验证源。

注意

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

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

13.3.1. GSS-Proxy

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

注意

AD 集成需要在 Red Hat Enterprise Linux 7.1 或更高版本上部署 Red Hat Satellite Server。

在作为卫星服务器的基础操作系统的红帽企业 Linux 上执行以下步骤。对于本节中的示例,EXAMPLE.ORG 是 AD 域的 Kerberos 域。完成操作后,属于 EXAMPLE.ORG 域的用户可以登录到卫星服务器。

13.3.2. 将 Satellite 服务器注册到 AD 服务器

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

先决条件

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

    安装 GSS-proxy 和 nfs-utils:

    # satellite-maintain packages install gssproxy nfs-utils

流程

  1. 安装所需的软件包:

    # satellite-maintain packages install sssd adcli realmd ipa-python-compat krb5-workstation samba-common-tools
  2. 将卫星服务器注册到 AD 服务器。您可能需要具有管理员权限才能执行以下操作:

    # realm join -v EXAMPLE.ORG

13.3.3. 使用 GSS-proxy 配置 Direct AD 集成

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

前提条件

流程

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

    # mkdir /etc/ipa
    # touch /etc/ipa/default.conf
  2. default.conf 文件中添加以下内容:

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

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

    # id apache

    Apache 用户不能访问 keytab 文件。

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

    [service/HTTP]
    mechs = krb5
    cred_store = keytab:/etc/krb5.keytab
    cred_store = ccache:/var/lib/gssproxy/clients/krb5cc_%U
    euid = ID_of_Apache_User
  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
  7. 在 Satellite 中启用 IPA 验证:

    # satellite-installer --foreman-ipa-authentication=true
  8. 启动并启用 gssproxy 服务:

    # systemctl restart gssproxy.service
    # systemctl enable gssproxy.service
  9. 将 Apache 服务器配置为使用 gssproxy 服务:

    1. 使用以下内容创建 /etc/systemd/system/httpd.service 文件:

      .include /lib/systemd/system/httpd.service
      [Service]
      Environment=GSS_USE_PROXY=1
    2. 对服务应用更改:

      # systemctl daemon-reload
  10. 启动并启用 httpd 服务:

    # systemctl restart httpd.service
  11. 验证 SSO 是否按预期工作。

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

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

      # kinit ldapuser
    2. 使用以下命令查看 Kerberos ticket:

      # klist
    3. 使用以下命令,查看成功基于 SSO 的身份验证的输出:

      # curl -k -u : --negotiate https://satellite.example.com/users/extlogin

      这会返回以下响应:

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

13.3.4. Web 浏览器中的 Kerberos 配置

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

如果使用 Internet Explorer 浏览器,请将卫星服务器添加到 Local Intranet 或受信任的站点列表中,并打开" 启用集成 Windows 身份验证 "设置。详情请查看 Internet Explorer 文档。

注意

对于直接 AD 集成,无法通过红帽身份管理提供 HBAC。作为替代方案,您可以使用组策略对象(GPO),使管理员能够在 AD 环境中集中管理策略。要确保 GPO 服务映射正确,请使用以下 sssd 配置:

access_provider = ad
ad_gpo_access_control = enforcing
ad_gpo_map_service = +foreman

在这里,foreman 是 PAM 服务名称。有关 GPO 的更多信息,请参阅 Red Hat Enterprise Linux Windows 集成指南

13.3.5. 带有 Cross-Forest Trust 的 Active Directory

Kerberos 可以创建 跨林信任,定义两个其他两个不同域林之间的关系。域林是域层次结构,AD 和红帽身份管理都是一个林的。在 AD 和 Red Hat Identity Management 间启用了信任关系,AD 用户可以使用一组凭证访问 Linux 主机和服务。有关跨林信任的更多信息,请参阅 Red Hat Enterprise Linux Windows 集成 指南中的使用 Active Directory 和 Identity Management 创建 Cross-forest Trusts

从卫星的角度来看,配置过程与红帽身份管理服务器集成,无需配置跨林信任。Satellite Server 必须注册到 IPM 域并集成,如 第 13.2 节 “使用 Red Hat Identity Management” 所述。

13.3.6. 将红帽身份管理服务器配置为使用 Cross-Forest Trust

在红帽身份管理服务器上,配置服务器以使用 跨林信任

流程

  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]
      ldap_user_extra_attrs=mail, sn, givenname
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.