使用Samba进行SSSD身份验证4

时间:2013-09-16 10:31:15

标签: linux rhel samba sssd

我最近在RHEL 6.3平台上从samba 3.5升级到samba 4。令人高兴的是,新版本可以取代AD DC并拥有自己构建的kdc和ldb数据库。现在我的目的是通过ldap连接使linux盒对samba4进行身份验证,因为samba 4的工作方式类似于kerberized ldap服务器。我可以使用Apache目录工作室使用管理员dn连接到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都不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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