Além da autenticação: Permissões de acesso com Zend Framework

Post on 21-Jun-2015

5.100 views 3 download

description

Esta apresentação tem por objetivo apresentar a criação de Listas de Controle de Acesso (ACLs) de forma a incrementar a segurança de websites e aplicações com interfaceweb. Serão apresentados conceitos e exemplos prátcos de código, utlizando o ZendFramework como plataforma para a criação e implementação destas permissões de acesso.

Transcript of Além da autenticação: Permissões de acesso com Zend Framework

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2010-08-05 – 1 / 25

Além da Autenticação:Permissões de Acesso com Zend Framework

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2010-11-23 – 2 / 25

Créditos

Sobre o Autor:

Er Galvão Abbott trabalha há mais de 15 anosdesenvolvendo sistemas e aplicações com interface web. Palestra em eventos, dá cursos em diversas instituições e é o Diretor da PHP Conference Brasil, o principal evento dePHP da América Latina.

Especializou-se em segurança de aplicações web,abordando o tema em uma época quando isso ainda era raro no Brasil.

Site: http://www.galvao.eti.br/Twitter: @galvaoSlides e Documentos: http://slideshare.net/ergalvao

Imagens:Zend Framework Logo – http://framework.zend.com/Oxygen Iconset – http://www.oxygen-icons.org/ Minhas terríveis habilidades de Design

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 3 / 25

Objetivo

Esta apresentação tem por objetivo apresentar a criação de Listas de Controle de Acesso (ACLs) de forma a incrementar a segurança de websites e aplicações com interfaceweb. Serão apresentados conceitos e exemplos prátcos de código, utlizando o ZendFramework como plataforma para a criação e implementação destas permissões de acesso.

Serão apresentados os seguintes tópicos:

● O que são permissões de acesso● Vantagens e Desvantagens● Zend Framework / Zend_ACL – Por que usar?● Resources, Roles e Privileges● Automatizando o controle de acesso● Atrelando Zend_ACL com Controllers e Actions

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 4 / 25

O que são permissões de acesso

São, basicamente, regras de acesso que definem se um usuário, após aautenticação, tem ou não permissão para realizar ações específicas em partes específicas de um website ou aplicação web.

Vantagens

● Incremento na segurança● Definição a nível de Role e não de nome de usuário específico● Alto nível de generalização● Fácil implementação de novos Resources, Roles e Privileges● Implementação de novas features restritas a beta testers

Desvantagens

● Alto nível de complexidade de desenvolvimento● Médio/Alto nível de planejamento

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 5 / 25

Zend Framework / Zend_Acl – Por que usar?

Como todo o Framework, uma das grandes vantagens do Zend é justamente facilitar tarefas complexas de desenvolvimento, entre elas a implementação de ACLs:

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 6 / 25

Zend Framework / Zend_Acl – Por que usar?

Principais vantagens do uso do componente Zend_Acl

● Alto nível de generalização: Resources, por exemplo, podem ser Controllers (“default”), Models, etc...● Herança entre Roles● Permite desde a implementação de uma ACL simples a uma mais avançada,através de Assertions● Facilmente extensível: novos resources, roles e privileges podem ser implementados pela edição de código ou mesmo dinamicamente.

Principais desvantagens do uso do componente Zend_Acl

● Curva inicial de aprendizado média, devido a problemas de documentação

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 7 / 25

Resources, Roles e Privileges

Resources (Recursos) são objetos cujo acesso é controlado.

Roles (Papéis) são objetos que podem tentar acessar um resource.

Privileges (Privilégios) são regras especiais de acesso a um resource.

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 8 / 25

Usuários tem Roles

Guest (usuários não autenticados)

User (usuários autenticados)

Admin (Administradores autenticados)

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 9 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 10 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 11 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 12 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 13 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 14 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 15 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 16 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 17 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 18 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 19 / 25

Roles acessam Resources, opcionalmente com Privileges

Guest

User

Admin

Home

Produtos (index)

Produtos /Editar

Produtos /Visualizar

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 20 / 25

Bootstrapping ACLs – Parte 1

application/Bootstrap.php

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 21 / 25

Bootstrapping ACLs – Parte 2

application/Bootstrap.php

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 22 / 25

Resources → Controllers

application/plugins/ACL.php

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 23 / 25

Resources → Controllers, Privileges → Actions

application/plugins/ACL.php

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 24 / 25

Finalizando a automação: Registrando Plugins

application/Bootsrap.php

CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 25 / 25

OBRIGADO!

Dúvidas?