LDAP/ACL
De Astillas.net
< LDAP
Principios
Para los ejemplos de esta página estoy asumiendo un árbol de la siguiente forma:
dc=basedn +-------> ou=people,dc=basedn | +-------> ou=groups,dc=basedn | +----------> cn=admin,ou=groups,dc=basedn |
ou=people
: contenedor de cuentas de usuarioou=groups
: contenedor de grupos de usuarios
y un administrador con el siguiente nombre de acceso
cn=admin,dc=basedn
Funcionamiento
Es necesario tener en cuenta las siguientes reglas respecto al control de acceso a un directorio LDAP:
- Si se accede como administrador (rootdn) todas las directivas desaparecen y se puede hacer cualquier cosa en el directorio.
- Si no hay ninguna directiva access los usuarios anónimos puede leer cualquier valor en el directorio, incluyendo contraseñas, pero nadie excepto el administrador puede escribir.
- Las directivas de acceso se procesan cada vez que se produce un acceso al directorio comenzando por la primera que se encuentra definida -el orden es muy importante- y son aditivas, por lo que la segunda añade funcionalidad a la primera; es decir, las reglas van de lo más específico a lo más genérico.
- La comprobación de acceso termina cuando una de las directivas by garantiza o deniega el acceso; no se realizan más búsquedas.
Desde la versión 2.4 de OpenLDAP existe un programa que puede emplearse para probar el acceso al directorio; se llama slapacl y se emplea así:
$ slapacl -b DN
Recetario
Contraseñas
Queremos que el acceso a una contraseña de usuario se limite al propietario y a un miembro del grupo de administradores.
access to attrs=userPassword by self write by anonymous auth by group.exact="cn=admin,ou=groups,dc=basedn" write by * none
- Esta claúsula servirá para cualquier atributo de nombre userPassword en cualquier entrada del árbol.
- El administrador tiene siempre acceso a todo el directorio por lo que no es necesario nombrarlo.
- La línea
by anonymous auth
indica que se permite el acceso a este atributo a los usuarios no identificados con propósitos únicamente de autentificación.
Véase también: