Novo código de erro do LDAP 50 - Direitos de acesso insuficientes

0

Eu instalei um novo OpenLDAP no Ubuntu 14.04 (slapd) e exporto totalmente o arquivo LDIF de um antigo OpenLDAP no FreeBSD e importo no novo.

Tudo está lá e funciona bem. A pesquisa anônima, a ligação do usuário e a administração podem fazer tudo. Mas o problema é quando um usuário de bind deseja modificar alguns de seus próprios atributos, como description, givenName, etc. Ele fornece:

LDAP error code 50 - Insufficient Access Rights

Existe algo em "slapd.conf" que impede a auto-gravação do usuário? Eu não toquei no "slapd.conf" nem em nada em "/slapd.d/cn=config /".

Teste ENV: O mesmo aplicativo tem erro com o novo servidor LDAP e funciona bem com o antigo quando eu altero o endereço LDAP Então não é o aplicativo. Também testei isso com "apachedirectorystudio". Ambos resultado mesmo. Funciona bem no antigo e não no novo servidor.

Por favor, deixe-me saber se você precisar de mais informações. Obrigado

UPDATE : Eu corri "ldapsearch -Y EXTERNAL -H ldapi: /// -b cn = config" e obtive estes resultados:

{0}hdb, config
dn: olcBackend={0}hdb,cn=config
objectClass: olcBackendConfig
olcBackend: {0}hdb

# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth manage by * break
olcAccess: {1}to dn.exact="" by * read
olcAccess: {2}to dn.base="cn=Subschema" by * read
olcSizeLimit: 500

# {0}config, config
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth manage by * break

# {1}hdb, config
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=iscpif,dc=fr
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymou
 s auth by dn="cn=admin,dc=example,dc=com" write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=com" write by * read
olcLastMod: TRUE
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {SSHA}
olcDbCheckpoint: 512 30
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcDbIndex: objectClass eq

# search result
search: 2
result: 0 Success

# numResponses: 12
# numEntries: 11

É possível que o olcAccess cause isso? O slapd.conf não deve sobrescrever estes?

    
por Maziyar 05.01.2016 / 19:16

1 resposta

1

O slapd usa slapd.conf ou cn = config para sua configuração. Meu palpite é que o servidor "em funcionamento" está usando o primeiro, enquanto o servidor "quebrado" está usando o último. Prove esta hipótese olhando o processo slapd com o comando 'ps' em cada servidor:

ps ax | grep slapd
    
por pmatulis 06.01.2016 / 02:29