Configure o Jenkins com LDAP: parâmetro 'DN raiz'

2

Estou instalando um servidor LDAP e configurando o Jenkins para aceitar o LDAP para autenticação. Nos parâmetros do Jenkins, tenho um comportamento estranho com o parâmetro Root DN .

Documentação diz:

Root DN

For authenticating user and determing the roles given to this user, Jenkins performs multiple LDAP queries.

[...]

But in practice, LDAP servers maintain an extensive index over the data, so specifying this field is rarely necessary — you should just let Jenkins figure this out by talking to LDAP.

If you do specify this value, the field normally looks something like dc=acme,dc=org

Comportamento estranho : Se eu não especificar o parâmetro, meu usuário não será encontrado. Os outros parâmetros têm o valor padrão.

O LDAP é novo para mim, então provavelmente estou fazendo algo errado. Eu criei uma árvore LDAP usando slapd . Eu criei um usuário adenoyelle sob um nó People que também criei. veja o resultado ldapsearch abaixo:

root@myserver:~# ldapsearch -xLLL -b 'dc=acme,dc=com'
dn: dc=acme,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: acme.com
dc: acme

dn: cn=admin,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

dn: ou=people,dc=acme,dc=com
cn: people
objectClass: organizationalRole
objectClass: top
ou: people

dn: uid=adenoyelle,ou=people,dc=acme,dc=com
objectClass: account
objectClass: top
objectClass: simpleSecurityObject
uid: adenoyelle

Se eu deixar Root DN em branco, meu usuário não poderá autenticar. Mas funciona se eu der esse valor para o parâmetro:

ou=people,dc=acme,dc=com

O que estou fazendo de errado? Meu palpite é que meus nós LDAP estão errados, mas não consigo encontrar o motivo. Talvez um problema com objectClass valores?

    
por Arnaud Denoyelle 18.01.2015 / 22:10

1 resposta

1

O cliente LDAP consultará o servidor quanto a um DSE raiz usado como DN base se você omitir esse valor. Se o slapd não estiver configurado corretamente, o ldapsearch não conseguirá obter um valor para isso e, portanto, falhará na consulta.

Detalhes aqui: Nenhum DSE raiz retornou do OpenLDAP , citando:

This is actually filed as bug #427842 agains Ubuntu 9.10 (karmic).

To fix this, copy the following to fixRootDSE.ldif:

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
add: olcAccess
olcAccess: to dn.base="" by * read
olcAccess: to dn.base="cn=subschema" by * read

And execute

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f fixRootDSE.ldif

This should give anonymous access to the root DSE.

    
por 18.01.2015 / 22:48