ldapsearch não produzirá nada sem -D rootdn

1

Minha instalação e configuração do slapd 2.4.21 é feita no Ubuntu 10.04 de acordo com o documento oficial. Agora o ldapsearch -x não me fornecerá nada, mas o ldapsearch -x -Drootdn -w rootpw exibirá tudo. Eu tenho

olcAccess: para *    por dn="cn = Gerente, dc = a, dc = b" write    por * leia

na configuração backend. O que há de errado? "getent passwd testuser" saída nada, deve ser devido a isso. Obrigado antecipadamente.

    
por tombull89 31.10.2010 / 02:56

3 respostas

1

Você precisa executar a autenticação e o olcAccess é para configurar a autorização. Em palavras simples, o slapd ainda requer que você prove quem você é (autentique, o que na gíria do LDAP é chamado de "bind" por algum motivo estranho) antes de permitir que você leia dados.

Isso é normal. Se você não quiser fornecer -D e -w a cada vez, use as opções bind * correspondentes no ldap.conf, que está localizado em vários lugares em vários unices. O Google diz no Ubuntu 10.04 que é

/etc/ldap/ldap.conf
    
por 31.10.2010 / 11:30
1

Tente procurar no arquivo de log do slapd, na maioria dos casos, responder a "wtf está acontecendo?" existe. Para ler dados, o usuário anônimo também deve ser capaz de ler o DSE raiz e "cn = Subschema". Entradas correspondentes são assim:

access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read

Essas entradas devem ser colocadas na configuração global, não no back-end.

P.S .: rootdn sempre tem acesso de gravação ao backend, então você não precisa especificá-lo nas ACLs

    
por 01.03.2011 / 10:26
1
-Drootdn -w rootpw

-D / -w é usado para vincular um dn e, em seguida, pesquisar a árvore LDAP como usuário autenticado. Por favor, certifique-se que o seu OpenLDAP é permitido ligação anônima.

Se você estiver usando o slapd.conf para configuração do servidor, você pode usar esta configuração no slapd.conf:

allow bind_anon_cred

A configuração abaixo é usada para desativar a ligação anônima:

disallow    bind_anon

Além disso, a configuração abaixo não funcionará:

olcAccess: to * by dn="cn=Manager,dc=a,dc=b" write by * read

Porque o root dn sempre tem TODOS os privilégios, incluindo read, write.

    
por 28.06.2011 / 14:24

Tags