wiki:acls

Version 5 (modified by cristiano, 12 years ago) (diff)

--

ACL

Este documento tem por finalidade demonstrar o funcionamento de ACLs (Access Control List).

ACL - Resource

ACL Resource (Recurso) é todo e qualquer informação que possa ser exposta a um usuário. Os recursos estão dispostos em uma estrutura de arvore, cada nó da arvore pode ser genéricos ou especifico os nos genéricos são definidos apenas por nome, e os nos específicos são definidos por nome e identificador separados pelo caractere = (igual).

Arvore de resources
Figura 1: Exemplo arvore de recursos

Cada recursos tem um nome unico dentro de sua seu ramo, mais pode ser duplicado em ramos diferentes.

Cada resouce pode ou não estender as permissões de seu no pai. Na figura 1 por exemplo caso o recursos event=34 estende-se as permissões de seu pai calendar=1, qualquer usuário que tiver permissão para ler o calendar=1 também ira poder ler o event=34. Cada

O identificador unico de resouce na arvore é chamado de DN, definido pelo caminha completo do resource na arvore. Na figura 1 por exemplo o recursos event=34 tem seu DN definido por expressoCalendar,calendar=1,event=34.

Atributos de um resource

Name : String que define o recursos como unico em seu ramo

Extend : Bolean que define se o recurso extende as permisões de seu no pai.

DN : String que define o recurso como unico na arvore

ACL - Rule

ACL Rule (Regras) é as regras permitivas que o usuario ou grupo tem sobre o recurso. cada regra é definida por uma letra do alfabeto, cada recurso e independente e livre para ter seu próprio conjunto de letras e significados, porem recomenda-se que se use a seguinte convenção:

Letra Permissão Descrição
r Leitura Cliente pode visuarlizar o recurso
w Escrita Cliente pode editar o recurso
d Remoção Cliente pode remover o recurso
c Criação Cliente pode criar um novo recurso filho
s Compartilhamento Cliente pode compartilhar um recurso filho

Metodos da classe

isAllow

Parametros
  1. $client = (Identificador do cliente)
  2. $action = (Ação que o cliente quer execultar)
  3. $resource = (Recurso alvo da ação)
  4. $verifygroups = ( Caso o cliente tenha algum grupo definido no ldap ele verificara também as regras dos grupos )
Camada

isAllow ( $cliente , $ação , $recurso , $verifyGroups = true )

Workflow

Workflow - isAllow
Figura 2: Workflow - isAllow

Attachments