LDAP/ACL

De Astillas.net

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 usuario
  • ou=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:

  1. Si se accede como administrador (rootdn) todas las directivas desaparecen y se puede hacer cualquier cosa en el directorio.
  2. 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.
  3. 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.
  4. 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: