我需要使用两个单独的 LDAP 服务器对用户进行身份验证。已为 SSSD 配置了两个域,但似乎只有一个域有效。我运行了该命令authconfig --enablemkhomedir --enablesssd --enablesssdauth --updateall
并更新了 sssd.conf,如下所示:
[sssd]
domains = domain1, domain2
services = nss, pam
config_file_version = 2
[nss]
filter_groups = root
filter_users = root
[pam]
offline_credentials_expiration = 0
[domain/domain1]
auth_provider = ldap
id_provider = ldap
ldap_uri = ldaps://domain1
ldap_tls_reqcert = allow
[domain/domain2]
auth_provider = ldap
id_provider = ldap
ldap_uri = ldaps://domain2
ldap_tls_reqcert = allow
结果是识别了来自域 2 的用户 (user2),但是找不到来自域 1 的用户 (user1):
# id user2
uid=10(user2) gid=10(admin) groups=10(admin)
# id user1
id: 'user1': no such user
有什么办法可以让 domain1 正常工作吗?当我们回到 nslcd.conf 时,该服务器/身份验证工作正常,但当然不能使用带有 nslcd 的两个服务器,只有定义的第一个服务器才能工作。在涉及这些事情时,我是个新手,所有 nscd、nslcd、nsswitch.conf、authconfig 等都变得相当混乱。我没有注意到 /var/log/messages 或 SSSD 日志中有任何错误。
答案1
问题是我们需要指定一些证书和密钥信息,即ldap_tls_cacert
和ldap_tls_cert
。ldap_tls_key
定义这些后,domain1
就可以访问了。