可以在 sssd.conf 中调整 ldap 搜索查询中使用的过滤器吗?
背景: 我/我们想用 sssd 实现 ldap 身份验证。我们的 SSD 看起来像:
[sssd]
config_file_version = 2
services = nss, pam
domains = test.de
[domain/test.de]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
enumerate = true
ldap_schema = rfc2307bis
ldap_uri = ldaps://192.168.7.1:636, ldaps://192.168.7.2:636
ldap_search_base = ou=users, o=data
ldap_user_search_base = ou=users, o=data
ldap_user_object_class = posixAccount
ldap_user_name = uid
ldap_tls_reqcert = never
cache_credentials = true
ldap_default_bind_dn = cn=ldap-clienttest,ou=sa,o=data
ldap_default_authtok_type = password
ldap_default_authtok = pawsd
debug_level = 9
My/Out 问题是 LDAP 搜索的结果。调试用户搜索会显示 ldap 搜索查询。
[(&(uid=testuser)(objekctclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][ou=users, o=data]
搜索结果将为 0 但如果我只搜索 uid(没有 uidnumber)
(&(uid=testuser)(objekctclass=posixAccount)(uid=*))
我得到了正确的结果。
如何避免使用给定的 uidNumber 过滤器?
谢谢。
我们已经能够解决问题了。我们只需设置参数
ldap_user_uid_number = uid
由于生成的 ldapsearch,这将始终为 true。
不幸的是,我注意到日志中的另一个问题:在 ldap 目录中找到的条目无法保存在本地,因为 UID 不可用。在 sssd.conf 中我们设置了
id_provider = ldap
,如果我们使用 id_provider = local
sssd 服务不会启动。
有人有解决该问题的建议吗?