1

我最近在 RHEL 6.3 平台上从 samba 3.5 升级到 samba 4。令人欣慰的是,新版本可以替代AD DC,并拥有自己构建的kdc和ldb数据库。现在我的意图是通过 ldap 连接使 linux 机器对 samba4 进行身份验证,因为 samba 4 的工作方式类似于 kerberized ldap 服务器。我能够使用管理员 dn 使用 Apache 目录工作室连接到 ldap 数据库。但是,我无法在 RHEL 6 客户端机器上正确配置 sssd 以通过 ldap 对 samba 服务器进行身份验证。这是我的 sssd 配置文件-

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = default

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[domain/default]
ldap_default_authtok_type = password
ldap_id_use_start_tls = False
cache_credentials = True
ldap_group_object_class = group
ldap_search_base = <My Domain dn>
chpass_provider = krb5
ldap_default_authtok = <Administrator Password>
id_provider = ldap
auth_provider = krb5
ldap_default_bind_dn = cn=Administrator,cn=Users,<My Domain dn>
ldap_user_gecos = displayName
debug_level = 0
ldap_uri = ldap://<samba_server_hostname>/
krb5_realm = <krb auth realm(same as domain name)>
krb5_kpasswd = <samba_server_hostname>
ldap_schema = rfc2307bis
ldap_force_upper_case_realm = True
ldap_user_object_class = person
ldap_tls_cacertdir = /etc/openldap/cacerts
krb5_kdcip = <samba_server_hostname>

我可以在客户端上成功地为管理员运行 kinit,并且我可以在以管理员身份绑定时运行 ldapsearch,但任何用户的 id 或 getent passwd 都不起作用。请问有什么想法吗??

4

1 回答 1

2

我终于让它工作了。事实证明,ldb 数据库中的用户条目没有 posixAccount objectclass 和 uidNumber/gidnumber 属性。添加它们并使用 gnu-tls 支持重新编译 samba4 后,linux 能够对 samba4 AD DC 进行身份验证,就像通过 tls 对 ldap 数据库进行身份验证一样。猜想我将不得不编写一个脚本,在添加后立即将必要的对象类和属性添加到每个用户条目。

于 2013-09-30T12:15:08.860 回答