1.3. 直接连接到 AD


系统安全服务守护进程(SSSD)是推荐的组件,用于将 Red Hat Enterprise Linux (RHEL)系统与活动目录(AD)连接。您可以使用 POSIX ID 映射( SSSD 的默认设置)或者使用 AD 中定义的 POSIX 属性直接与 AD 集成。

重要

1.3.1. 用于与 AD 集成的选项: 使用 POSIX ID 映射或 POSIX 属性

Linux 和 Windows 系统为用户和组群使用不同的标识符:

  • Linux 使用 用户 ID(UID)和 组群 ID(GID)。请参阅配置基本系统设置中的管理用户和组群帐户简介。Linux UID 和 GID 符合 POSIX 标准。
  • Windows 使用 安全 ID (SID)。
重要

将 RHEL 系统连接到 AD 后,您可以使用 AD 用户名和密码进行身份验证。不要创建名称与 Windows 用户相同的 Linux 用户,因为重复名称可能会导致冲突并中断身份验证过程。

要以 AD 用户身份验证 RHEL 系统,您必须分配了 UID 和 GID。SSSD 提供了使用 POSIX ID 映射或 AD 中的 POSIX 属性与 AD 集成的选项。默认为使用 POSIX ID 映射。

1.3.2. 使用 POSIX ID 映射连接到 AD

SSSD 使用 AD 用户的 SID 在名为 POSIX ID 映射的过程中以算法生成 POSIX ID。POSIX ID 映射会在 AD 中的 SID 和 Linux 上的 ID 之间创建一个关联。

  • 当 SSSD 检测到新的 AD 域时,它会为新域分配一系列可用 ID。
  • 当 AD 用户第一次登录 SSSD 客户端机器时,SSSD 在 SSSD 缓存中为用户创建一个条目,包括基于用户的 SID 以及该域的 ID 范围的 UID。
  • 由于 AD 用户的 ID 是以一致的方式从同一 SID 生成的,所以在登录到任何 RHEL 系统时,用户具有相同的 UID 和 GID。
注意

当所有客户端系统都使用 SSSD 将 SID 映射到 Linux ID 时,映射是一致的。如果有些客户端使用不同的软件,请选择以下之一:

  • 确定所有客户端都使用相同的映射算法。
  • 使用 AD 中定义的显式 POSIX 属性。

如需更多信息,请参阅 sssd-ad 手册页中 ID 映射的 部分。

1.3.2.1. 使用 SSSD 发现并加入 AD 域

按照此流程发现 AD 域,并使用 SSSD 将 RHEL 系统连接到那个域。

先决条件

流程

  1. 安装以下软件包:

    # yum install samba-common-tools realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
  2. 要显示特定域的信息,请运行 realm discover 并添加您要发现的域的名称:

    # realm discover ad.example.com
    ad.example.com
      type: kerberos
      realm-name: AD.EXAMPLE.COM
      domain-name: ad.example.com
      configured: no
      server-software: active-directory
      client-software: sssd
      required-package: oddjob
      required-package: oddjob-mkhomedir
      required-package: sssd
      required-package: adcli
      required-package: samba-common

    realmd 系统使用 DNS SRV 查找来自动查找此域中的域控制器。

    注意

    realmd 系统可以发现 Active Directory 和 Identity Management 域。如果您的环境中两个域都存在,您可以使用 --server-software=active-directory 选项将发现结果限制为特定的服务器类型。

  3. 使用 realm join 命令配置本地 RHEL 系统。realmd 套件自动编辑所有必要的配置文件。例如,对于名为 ad.example.com 的域:

    # realm join ad.example.com

验证

  • 显示 AD 用户详情,如管理员用户:

    # getent passwd administrator@ad.example.com
    administrator@ad.example.com:*:1450400500:1450400513:Administrator:/home/administrator@ad.example.com:/bin/bash

其它资源

  • 您系统上的 realm (8)nmcli (1) 手册页

1.3.3. 使用 Active Directory 中定义的 POSIX 属性连接到 AD

AD 可以创建并存储 POSIX 属性,如 uidNumbergidNumberunixHomeDirectoryloginShell

使用 POSIX ID 映射时,SSSD 会创建新的 UID 和 GID,这将覆盖 AD 中定义的值。要保留 AD 定义的值,您必须在 SSSD 中禁用 POSIX ID 映射。

为获得最佳性能,请将 POSIX 属性发布到 AD 全局目录。如果全局目录中没有 POSIX 属性,SSSD 会直接连接到 LDAP 端口上的单个域控制器。

先决条件

流程

  1. 安装以下软件包:

    # yum install realmd oddjob oddjob-mkhomedir sssd adcli krb5-workstation
  2. 使用 realm join 命令和-- automatic-id-mapping=no 选项,配置本地 RHEL 系统并禁用 POSIX ID 映射。realmd 套件自动编辑所有必要的配置文件。例如,对于名为 ad.example.com 的域:

    # realm join --automatic-id-mapping=no ad.example.com
  3. 如果您已经加入某个域,您可以在 SSSD 中手动禁用 POSIX ID 映射:

    1. 打开 /etc/sssd/sssd.conf 文件:
    2. 在 AD 域部分中,添加 ldap_id_mapping = false 设置。
    3. 删除 SSSD 缓存:

      rm -f /var/lib/sss/db/*
    4. 重启 SSSD:

      systemctl restart sssd

SSSD 现在使用 AD 中的 POSIX 属性,而不是在本地创建它们。

注意

您必须为 AD 中的用户配置了相关的 POSIX 属性(uidNumbergidNumberunixHomeDirectoryloginShell)。

验证

  • 显示 AD 用户详情,如管理员用户:

    # getent passwd administrator@ad.example.com
    administrator@ad.example.com:*:10000:10000:Administrator:/home/Administrator:/bin/bash

其它资源

  • 系统中的 sssd-ldap (8) 手册页

1.3.4. 使用 SSSD 连接到不同 AD 林中的多个域

您可以使用 Active Directory(AD)Managed Service Account(MSA)从不同的林访问 AD 域,其中它们之间没有信任。

请参阅使用受管服务帐户访问 AD

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.