Como autenticar no CentOS7 usando o LDAP se o posixAccount objectClass estiver indisponível?

1

Objetivo: autenticar no CentOS7 usando o LDAP

Problemas

1) O usuário não pode ser encontrado

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

2) posixAccount objectClass não encontrado

Perguntas

  1. Como adicionar o objectClass posixAccount ?
  2. Se esse tipo de objectClass não puder ser encontrado como alterar a pesquisa de sssd , permitindo que esse software localize o usuário no OpenLDAP e permita a autenticação no CentOS7?

Abrangente

1) sssd instalado

2) autenticação ldap usando o sssd configurado no CentOS7

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

3) Depuração sssd ativada

/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) Teste o login usando o LDAP

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

5) Depuração

/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) Não é possível adicionar um posixAccount objectClass

    
por 030 03.07.2015 / 00:44

1 resposta

1

Você realmente não disse qual era o seu servidor LDAP ou como um usuário no seu diretório LDAP se parece, mas tentarei responder da melhor maneira possível.

No momento, o SSSD serve apenas contas POSIX. Isso significa que o objeto de usuário no lado do servidor precisa ter nomes e IDs numéricos ou os IDs numéricos devem ser deduzidos do Windows SID.

A objectClass real não importa realmente. Tudo o que você precisa é configurar o sssd.conf com o objectClass que seu servidor usa e o atributo que contém o ID. Veja man sssd-ldap para mais detalhes, mas as duas opções de configuração que você pode estar interessado são ldap_user_uid_number e ldap_user_object_class .

Se o servidor for um MSAD, o ideal é usar id_provider=ad , que mapeia algoritmos de SIDs para IDs.

    
por 03.07.2015 / 07:52