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

5,742 views
5,523 views

Published on

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 interface
web. Serão apresentados conceitos e exemplos prátcos de código, utlizando o Zend
Framework como plataforma para a criação e implementação destas permissões de acesso.

Published in: Technology

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

  1. 1. Além da Autenticação: Permissões de Acesso com Zend FrameworkCC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2010-08-05 – 1 / 25
  2. 2. CréditosSobre 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 rarono Brasil.Site: http://www.galvao.eti.br/Twitter: @galvaoSlides e Documentos: http://slideshare.net/ergalvaoImagens: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 – 2010-11-23 – 2 / 25
  3. 3. Objetivo Esta apresentação tem por objetivo apresentar a criação de Listas de Controle deAcesso (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 – 3 / 25
  4. 4. O que são permissões de acesso São, basicamente, regras de acesso que definem se um usuário, após a autenticaçã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 – 4 / 25
  5. 5. 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 – 5 / 25
  6. 6. 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 – 6 / 25
  7. 7. 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 – 7 / 25
  8. 8. 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 – 8 / 25
  9. 9. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 9 / 25
  10. 10. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 10 / 25
  11. 11. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 11 / 25
  12. 12. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 12 / 25
  13. 13. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 13 / 25
  14. 14. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 14 / 25
  15. 15. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 15 / 25
  16. 16. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 16 / 25
  17. 17. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 17 / 25
  18. 18. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 18 / 25
  19. 19. Roles acessam Resources, opcionalmente com Privileges Home Guest Produtos (index) User Produtos / Visualizar Produtos / Admin Editar CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 19 / 25
  20. 20. Bootstrapping ACLs – Parte 1 application/Bootstrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 20 / 25
  21. 21. Bootstrapping ACLs – Parte 2 application/Bootstrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 21 / 25
  22. 22. Resources → Controllers application/plugins/ACL.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 22 / 25
  23. 23. Resources → Controllers, Privileges → Actions application/plugins/ACL.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 23 / 25
  24. 24. Finalizando a automação: Registrando Plugins application/Bootsrap.php CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 24 / 25
  25. 25. OBRIGADO! Dúvidas? CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott – 2011-08-05 – 25 / 25

×