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).
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
- $client = (Identificador do cliente)
- $action = (Ação que o cliente quer execultar)
- $resource = (Recurso alvo da ação)
- $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
Attachments
-
arvore.png
(53.0 KB) -
added by cristiano 12 years ago.
Arvore de resources
-
workflow-isAllow.png
(68.9 KB) -
added by cristiano 12 years ago.
Workflow - isAllow