Como faço para autenticar com o LDAP através da linha de comando?

29

O servidor LDAP está hospedado no Solaris. O cliente é o CentOS. A autenticação OpenLDAP / NSLCD / SSH via LDAP funciona bem, mas não consigo usar os comandos ldapsearch para depurar problemas do LDAP.

[root@tst-01 ~]# ldapsearch
SASL/EXTERNAL authentication started
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
        additional info: SASL(-4): no mechanism available:
[root@tst-01 ~]# cat /etc/openldap/ldap.conf
TLS_CACERTDIR /etc/openldap/cacerts
URI ldap://ldap1.tst.domain.tld ldap://ldap2.tst.domain.tld
BASE dc=tst,dc=domain,dc=tld
[root@tst-01 ~]# ls -al /etc/openldap/cacerts
total 12
drwxr-xr-x. 2 root root 4096 Jun  6 10:31 .
drwxr-xr-x. 3 root root 4096 Jun 10 10:12 ..
-rw-r--r--. 1 root root  895 Jun  6 10:01 cacert.pem
lrwxrwxrwx. 1 root root   10 Jun  6 10:31 cf848aa4.0 -> cacert.pem
[root@tst-01 ~]#

Eu tentei autenticação com um certificado via ldapsearch dando /etc/openldap/cacerts/cacert.pem como um parâmetro, mas ele não aceitou este certificado para autenticação.

    
por ujjain 11.06.2013 / 10:15

2 respostas

46

Você pode querer desativar o SASL e usar a autenticação simples com a opção "-x". Por exemplo, uma pesquisa para encontrar um usuário em particular

ldapsearch -x -D "uid=search-user,ou=People,dc=example,dc=com" \
           -W -H ldap://ldap.example.com -b "ou=People,dc=example,dc=com" \
           -s sub 'uid=test-user'

Encontrará "usuário de teste" por

  • -D - Use o usuário vinculado "search-user"
  • -W - Solicitar senha
  • -H - URL do servidor LDAP. Não SSL neste caso; use "ldaps: //" para SSL
  • -b - A base de pesquisa
  • -s - Escopo de pesquisa - ou seja, base para base da árvore, um para nível abaixo e sub para recursivamente procurando na árvore (pode demorar um pouco)
  • Finalmente, o filtro de pesquisa é um argumento não opcional. Neste caso, vamos procurar o uid do "test-user"
por 11.06.2013 / 10:26
5

Parece que faço a mesma pergunta em: link

Consulte o link :

  • Obtenha uma conexão com o servidor LDAP.
  • Vincular como o usuário do aplicativo.
  • Pesquise o DN (nome diferenciado) do usuário a ser autenticado.
  • Vincule como usuário a ser autenticado usando o DN na etapa 3.

Isso pode ser resumido como (experiência na linha de comando):

$ ldapsearch -x -h ldap.company.com -s sub -b 'dc=europe,dc=com' "uid=XYZ"
....
dn: uid=XYZ,dc=sales,dc=europe,dc=com
...
$ ldapsearch -W -h ldap.company.com -D 'uid=XYZ,dc=sales,dc=europe,dc=com' \
    -s sub -b 'dc=europe,dc=com' "uid=XYZ"
    
por 19.12.2014 / 19:35