使用 AD/Kerberos 进行身份验证/授权的 Linux 服务器是否需要计算机帐户?

Pad*_*dge 6 linux active-directory ldap kerberos sssd

我对使用 Active Directory (AD) 和 Kerberos 的 Linux 服务器是否需要创建计算机帐户感到困惑?
作为机器的 Linux 服务器是否需要加入 AD 域,并在这样做时拥有计算机帐户才能从 AD 获得身份验证/授权服务?

以下是一些要求:

  • 能够使用来自 Linux 服务器的 AD 进行基于用户和组成员身份的身份验证。
  • 能够将本地 linux UID/GID 号映射到 AD 用户和组名(今天我们使用的是非 AD LDAP 服务器,我们为用户和组帐户保留了 UID/GID 号。理想情况下,我想继续这种做法)。
  • 能够将 linux Sudoer 权限映射到 AD 组。
  • 使用像 SSSD 这样的开源或社区工具/插件,而不是像 Centrify 这样的付费商业产品。

我担心在 AD 中为基于私有云的服务器创建/删除大量 linux 计算机帐户的痛苦,这些服务器可能不会那么久;但我想要使用 AD 的中央用户帐户存储的好处。

注意:我在 2008R2 功能级别使用 RHEL 和 Centos 6-7 linux 服务器以及带有 AD 的 Windows Server 2012。

小智 1

这里有两个不同的考虑因素:
1)身份验证(密码验证)
2)授权(身份映射/组成员身份等)

对于客户端:
您可以通过 Kerberos 从匿名客户端(无域加入/主机信用)进行身份验证(密码检查)。但是,您将无法在没有主机信用 (/etc/krb5.keytab) 的情况下执行 GSSAPI SSO 和 KDC 验证。

对于授权,您需要能够对 AD-DC 进行 LDAP 绑定/查找。一般来说,AD 不允许匿名 LDAP 绑定,因此您需要某种客户端凭据。显式创建和维护的服务帐户或主机信用(通过域加入创建/维护)。

在 ldap.conf 或 sssd.conf 文件中,您可以列出显式服务帐户信用或告诉它使用主机信用。如果您有主机信用并在 sssd 中使用“广告”id_provider,您将获得自动主机信用维护等优势。

请注意,如果要使用 AD 进行授权服务,则需要将 rfc2307 样式信息(EG uidNumber、gidNumber 等)添加到要在 Unix/Linux 客户端上使用的每个用户帐户。

对于服务器:
如果他们要提供任何基于 Kerberized/GSSAPI 的服务,那么他们必须拥有主机凭据(加入域)并在 AD 中的计算机帐户中拥有有效的 UPN/SPN 记录。将 AD 视为提供 Kerberos KDC 功能。

例如:
如果您有 Kerberized NFSv4 文件服务器,则服务器上的帐户和 krb5.keytab 文件中不仅需要有“主机/FQDN”SPN,还需要有“nfs/FQDN”SPN。