Active Directory 作为集群内的 uid/gid 提供程序

Active Directory 作为集群内的 uid/gid 提供程序

我有一个 CentOS 8 HPC 集群设置,其中有一个登录节点,该节点通过 sssd/kerberos 连接到活动目录。只有登录节点可以从用户网络访问。用户使用他们的普通域帐户访问登录节点。所有集群流量都在单独的网络中,该网络通过登录节点路由。

集群内部使用 SSH 密钥进行身份验证。但是,到目前为止,这仅适用于 passwd 中列出的集群本地用户。现在,我希望登录节点为集群内的计算节点提供 uid/gid 的 AD 用户映射。即 AD 用户使用他们的 AD 帐户/kerberos 登录到登录节点,并在集群内使用 SSH 密钥。

归档此内容的最佳方法是什么?我考虑过使用登录节点上的 LDAP 服务器复制 AD 用户,然后从那里将它们提供给集群节点。集群是无状态的,因此在启动时在每个节点上使用 sssd/kerberos 加入域似乎不是一个选择。

答案1

在尝试了不同的方法后,我找到了一个适合我的解决方案。我将 sssd 配置为在节点上使用 AD 作为 ldap 提供程序。使用 obfuscated_pa​​ssword 无需加入域即可工作。我的 sssd.conf 现在如下所示:

[sssd]
config_file_version = 2
services = nss, pam, ssh
domains = domain.com
full_name_format = %1$s

[domain/domain.com]
id_provider = ldap
auth_provider= ldap
cache_credentials = True
ldap_uri = ldap://ad.domain.com:389
ldap_search_base = DC=domain,DC=com
ldap_schema = ad
ldap_user_search_base = OU=...,DC=domain,DC=com
ldap_default_bind_dn = CN=user,OU=...,DC=domain,DC=com
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = xxxxxxx
ldap_tls_cacert = /etc/pki/tls/cert.pem
ldap_tls_reqcert = allow
ldap_id_mapping = True
ldap_referrals = False
ldap_user_extra_attrs = altSecurityIdentities:altSecurityIdentities
ldap_user_ssh_public_key = altSecurityIdentities
ldap_use_tokengroups = True
ldap_user_name = sAMAccountName
ldap_group_name = sAMAccountName
default_shell = /bin/bash
fallback_homedir = /home/%u@%d
override_homedir = /home/%u@%d

相关内容