Apêndice A. ACL's

As ACL's (Access Control Lists) fornecidas pelo OpenLDAP possuem uma sintaxe simples e são muito flexiveis e poderosas na sua implementação. A idéia básica é definir Quem têm qual Nível de Acesso a O Quê?

As principais formas de "Quem" são:

*

Qualquer usuário conectado, incluindo conexões anônimas.

self

O DN do usuário atualmente conectado.

anonymous

Conexões de usuários não autenticadas.

users

Conexões de usuários autenticadas.

expressão regular

Que case com um DN ou com uma identidade SASL.

A seguir está uma tabela que resume os vários níveis de acesso. Níveis maiores possuem todas as capacidades de níveis abaixo deles.

Tabela A.1. Níveis de acesso das ACL's

Nível de acessoPermissão concedida
writeAcesso para atualizar valores de atributos
readAcesso para ler resultados de buscas
searchAcesso para aplicar filtros de busca
compareAcesso para comparar atributos
authAcesso para autenticar. Requer que o cliente mande o nome de usuário na forma de um DN e algum tipo de credencial para provar a sua identidade
noneNenhum acesso

Finalmente, "O Quê" define as entradas ou atributos aos quais a ACL deve ser aplicada. Ele é composto de três partes, todas opcionais.

A seguir está um exemplo de ACL.

Exemplo A.1. Uma ACL básica

access to attrs=userPassword,sambaNTPassword,sambaLMPassword
       by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
       by anonymous auth
       by self write
       by * none
access to *
       by dn.base="cn=admin,dc=ime,dc=usp,dc=br" write
       by * read

Uma ACL listada antes tem precedência sobre as ACL's listadas depois. Isso significa que as ACL's mais restritas devem ser listadas antes das mais gerais para que tenham efeito.

A primeira configuração listada no exemplo garante direito de acesso aos atributos userPassword, sambaNTPassword e sambaLMPassword para escrita ao cn=admin,dc=ime,dc=usp,dc=br, para autenticação aos usuários não autenticados (anônimos), de escrita aos usuários autenticados (apenas para as suas próprias entradas), ou seja, permite que os usuários alterem a própria senha, e nenhum acesso aos outros.

A segunda configuração garante direito de acesso à todo o diretório ao cn=admin,dc=ime,dc=usp,dc=br, e para leitura para todos os outros usuários.