25
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

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

Embed Size (px)

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.

Citation preview

Page 1: 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

Page 2: 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

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

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

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

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

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

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:

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

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

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

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.

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bootstrapping ACLs – Parte 1

application/Bootstrap.php

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

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

Bootstrapping ACLs – Parte 2

application/Bootstrap.php

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

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

Resources → Controllers

application/plugins/ACL.php

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

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

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

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

Page 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 – 2011-08-05 – 25 / 25

OBRIGADO!

Dúvidas?