Autenticação e Autorização (in portuguese)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Autenticação e Autorização (in portuguese) - Presentation Transcript

    1. Autenticação e autorização PHP Advanced - 17 de Setembro de 2008 Bruno Pedro <bpedro@tarpipe.com>
    2. PHP Advanced Conteúdo • Basic HTTP Auth • Bases de Dados • PEAR::Auth() • OpenID • Projecto • Resumo Autenticação e autorização 2
    3. PHP Advanced Basic HTTP Auth • Suportado pelo protocolo HTTP • Suportado pelo browser • Pode ser interceptado no PHP • Só funciona se o PHP estiver a correr como módulo Apache Autenticação e autorização 3
    4. PHP Advanced Como funciona? • Para aparecer a caixa de autenticação é enviado um header HTTP “Unauthorized” • Os dados inseridos são capturados nos índices PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE do array $_SERVER Autenticação e autorização 4
    5. PHP Advanced Exemplo Autenticação e autorização 5
    6. PHP Advanced Exemplo Autenticação e autorização 6
    7. PHP Advanced Logout Autenticação e autorização 7
    8. PHP Advanced Aproximação OO Auth username password login() logout() isAuth() HTTPAuth Autenticação e autorização 8
    9. PHP Advanced Aproximação OO Autenticação e autorização 9
    10. PHP Advanced Aproximação OO Autenticação e autorização 10
    11. PHP Advanced Aproximação OO Autenticação e autorização 11
    12. PHP Advanced Aproximação OO Autenticação e autorização 12
    13. PHP Advanced Melhorias • Criação de uma Auth factory • Acoplamento de um Chain of Command para verificar se o utilizador se pode autenticar • Utilização de uma Strategy de acesso a um backend onde estão os dados dos utilizadores Autenticação e autorização 13
    14. PHP Advanced Bases de Dados • Utilização de MySQL • Criação de base de dados para o projecto • Criação de tabela de utilizadores • Verificações • username existe • password é igual • Possível gravação de informação adicional Autenticação e autorização 14
    15. PHP Advanced Tabela de utilizadores Auth username password CREATE TABLE auth ( username VARCHAR(50) default '' NOT NULL, password VARCHAR(32) default '' NOT NULL, PRIMARY KEY (username), KEY (password) ); Autenticação e autorização 15
    16. PHP Advanced Criar utilizador • A password não pode ficar visível! • É utilizada a função MD5 INSERT INTO auth VALUES ('test', MD5('abc123')); Autenticação e autorização 16
    17. PHP Advanced PEAR::DB • Biblioteca de abstracção ao acesso à base de dados • Portabilidade entre vários motores de BD • Várias formas de obter resultados • Automatismos na escrita de valores • Instalação: pear install DB Autenticação e autorização 17
    18. PHP Advanced Exemplo Autenticação e autorização 18
    19. PHP Advanced Modos de leitura • DB_FETCHMODE_ORDERED • DB_FETCHMODE_ASSOC • DB_FETCHMODE_OBJECT • DB_FETCHMODE_FLIPPED Autenticação e autorização 19
    20. PHP Advanced PEAR::Auth • Biblioteca de gestão de autenticação • Permite autenticar contra uma série de backends • Possibilita o registo e a gravação de informação adicional em cada utilizador • Oferece capacidades de logging • Instalação: pear install Auth Autenticação e autorização 20
    21. PHP Advanced PEAR::Auth • Containers: • Array: lista de utilizadores • Base de dados, através de PEAR::DB • Ficheiro em disco • POP3, IMAP • SOAP Autenticação e autorização 21
    22. PHP Advanced Exemplo Autenticação e autorização 22
    23. PHP Advanced Opções • Base de dados utilizada • Alteração do formulário de autenticação • Nomes dos campos username e password • Logging Autenticação e autorização 23
    24. PHP Advanced Formulário • Desligar completamente o formulário de autenticação: • Definir uma função responsável por apresentar o formulário: Autenticação e autorização 24
    25. PHP Advanced Nomes dos campos • Correspondem aos nomes dos campos utilizados no formulário de autenticação Autenticação e autorização 25
    26. PHP Advanced OpenID • Solução de autenticação sem utilizar password • Utilização do mesmo identificador entre vários Websites • Obtenção de dados do utilizador • nome, email, nickname, etc. Autenticação e autorização 26
    27. PHP Advanced OpenID Utilizador Utilizador é introduz o URL redireccionado para o OpenID OpenID server Utilizador é A identidade é redireccionado para a SIM confirmada? aplicação original NÃO Utilizador é autenticado Mensagem de erro na aplicação original Autenticação e autorização 27
    28. PHP Advanced OpenID • Implementação • Eliminação dos campos username e password • Inserção do campo openid_url • Implementação da lógica de redireccionamento e validação Autenticação e autorização 28
    29. PHP Advanced OpenID • Algumas regras • Convém separar o registo da autenticação, mesmo utilizando OpenID • É necessário validar a identidade no acto de registo • O openid_url passa a ser a chave que identifica um utilizador na aplicação Autenticação e autorização 29
    30. PHP Advanced Base de Dados Auth openid_url firstName lastName ... • Podem ser acrescentados mais campos, relacionados com o utilizador Autenticação e autorização 30
    31. PHP Advanced Bibliotecas • http://openidenabled.com/php-openid/ • Compatível com PHP 4.3.0 e superiores • Documentação, exemplos e testes • Tenta usar o Curl mas não é obrigatório • Live demos Autenticação e autorização 31
    32. PHP Advanced Projecto • Funcionalidade de registo • Alteração da tabela de modo a albergar o nome do utilizador • Verificação da password • Gravação dos dados na tabela Autenticação e autorização 32
    33. PHP Advanced Projecto • Autenticação • Utilização do PEAR::Auth para autenticar o utilizador contra a tabela • Obtenção do username e password a partir do formulário • Implementação da funcionalidade de logout Autenticação e autorização 33
    34. PHP Advanced Resumo • Basic HTTP Auth • Aproximação OO • PEAR::DB • PEAR::Auth • OpenID Autenticação e autorização 34
    35. PHP Summer School Questões? OOP em PHP 35
    36. PHP Advanced Mais informação • O meu blog: http://unfoldingtheweb.com/ • Manual de PHP: http://www.php.net/ • PEAR: http://pear.php.net/ • OpenID: http://openid.net/ • Bibliotecas OpenID: http://openidenabled.com/ Autenticação e autorização 36

    + Bruno PedroBruno Pedro, 2 years ago

    custom

    1058 views, 1 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1058
      • 1058 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 17
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories