如果posixAccount objectClass不可用,如何使用LDAP对CentOS7进行身份validation?

目标:使用LDAP对CentOS7进行身份validation

问题

1)用户无法find

calling ldap_search_ext with [(&(uid=bla)(objectclass=posixAccount)(uid=*)(&(uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com] 

2)找不到posixAccount对象类

问题

  1. 如何添加objectClass posixAccount
  2. 如果这个objectClasstypes找不到如何更改sssd的查找,允许此软件在OpenLDAP中find用户并允许对CentOS7进行身份validation?

全面

1)安装了sssd

2)使用CentOS7上configuration的sssd进行ldapauthentication

 [root@controller ~]# authconfig --enablesssd --enablesssdauth --enablelocauthorize --update 

3)启用了sssddebugging

 /etc/sssd/sssd.conf [domain/default] autofs_provider = ldap cache_credentials = True krb5_realm = # ldap_search_base = dc=my-domain,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://<ipaddress>/ ldap_tls_cacertdir = /etc/openldap/cacerts debug_level = 9 

4)使用LDAPtestinglogin

 [root@controller ~]# id Manager id: Manager: no such user 

5)debugging

/var/log/sssd/sssd_default.log

 (Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_search_user_next_base] (0x04 00): Searching for users with base [dc=my-domain,dc=com] (Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_print_server] (0x2000): Sear ching <ipaddress> (Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x040 0): calling ldap_search_ext with [(&(uid=bla)(objectclass=posixAccount)(uid=*)(&( uidNumber=*)(!(uidNumber=0))))][dc=my-domain,dc=com]. (Thu Jul 2 22:31:46 2015) [sssd[be[default]]] [sdap_get_generic_ext_step] (0x100 0): Requesting attrs: [objectClass] 

6)无法添加一个posixAccount objectClass

在这里输入图像说明

你没有真正说出你的LDAP服务器是什么,或者你的LDAP目录中的用户是怎么样的,但是我会尽我所能地尽力回答。

目前,SSSD只提供POSIX账户。 这意味着服务器端的用户对象必须具有名称和数字ID,或者数字ID必须从Windows SID中推断出来。

实际的objectClass并不重要。 您只需要使用服务器使用的objectClass和包含ID的属性来configurationsssd.conf。 有关更多详细信息,请参见man sssd-ldap ,但您可能感兴趣的两个configuration选项是ldap_user_uid_numberldap_user_object_class

如果服务器是MSAD,则理想情况下应使用id_provider=ad ,该algorithm将SID映射到ID。