ACL - Subtree Admin deve poder modificar a senha assim como os próprios usuários

1
dn: olcDatabase={1}hdb,cn=config
objectclass: olcDatabaseConfig
objectclass: olcHdbConfig
olcaccess: {0}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none
olcaccess: {1}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write by * none
olcaccess: {2}to dn.base="" by * read
olcaccess: {3}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Fiquei preso ao entender o ACL-Order. Os usuários de subtree e dn: cn = subadmin, dc = domínio, dc = tld devem poder modificar suas próprias senhas, mas não estão com este conjunto de regras, como subtree-admin não é, mas admin subtree pode escrever novos dn's. Se eu remover a ACL {0}, os usuários podem modificar novamente, mas preciso de uma subárvore-admin com acesso de gravação para cada subárvore.

respeita,

Maik

    
por Maik Riecken 09.06.2015 / 13:02

1 resposta

0

A ordem das linhas ACL é importante.

olcaccess: {0}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none olcaccess: {1}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write by * none olcaccess: {2}to dn.base="" by * read olcaccess: {3}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Você pode se livrar de {2} porque ele é coberto por {3} e você deve trocar {1} e {0}. Isso ocorre porque os atributos fazem parte da subárvore e você informou ao LDAP que a subárvore só pode ser lida pelos usuários. Experimente:

olcaccess: {0}to attrs=userPassword,shadowLastChange by self write by users write by anonymous auth by dn="cn=admin,dc=mpbteam,dc=de" write olcaccess: {1}to dn.subtree="ou=subtree,dc=domain,dc=tld" by self write by dn="cn=subadmin,dc=domain,dc=tld" write by users read by anonymous none olcaccess: {2}to * by self write by dn="cn=admin,dc=domain,dc=tld" write by * read

Você também não precisa do by * none, é implícito.

Claro, eu não tentei isso, já que estou com problemas para editar minha configuração no momento ... você pode dar uma olhada:

LDAP script de construção falhando em openLDAP-2.4.31 (ldapmodify -Y EXTERNAL -H ldapi: ///)

para mim?

    
por 03.07.2015 / 16:08