Eduardo Cesar apresentou sobre os mecanismos de autenticação e autorização na web, discutindo conceitos como autenticação baseada em cookies e sessões, autenticação básica HTTP, tokens JWT e OAuth. Ele também forneceu considerações e ferramentas para implementar cada técnica.
5. Authentication
Authentication is the process of verification that an individual, entity or website is
who it claims to be.
Authorization
Generally enforced on the basis of a user-specific policy, and authentication is the
way to establish the user in question.
OWASP
6. Dado um cenário onde vamos precisar autenticar
e autorizar acessos de nossos usuários tantos
em aplicações web tradicionais quanto em
nossas apis, quais conceitos e técnicas
podemos utilizar para resolver esse problema?
9. Considerações
Com o bom suporte que o PHP provê para manipular cookies e sessões este
modelo é muito utilizado, como por exemplo session_start(), para iniciar uma
sessão e $_SESSION para manipular as váriaveis de sessão
Comumente os frameworks web fornecem uma abstração em forma de
componentes ou biblioteca para autenticação.
Só funciona para um domínio
13. Considerações
Extremamente simples realizar autenticação básica HTTP
Sua aplicação se mantém stateless uma vez que não há armazenamento algum
sobre estado
Toda a requisição que necessitar de autenticação deverá conter as credenciais e
posterior processo de autenticação
21. Considerações
É uma especificação descrita na na RFC 7519
Provê uma forma segura para troca de informações utilizando formato JSON
Trabalha com criptografia e faz usos de chaves simétricas e assimétricas
Nunca forneça dados sensíveis, ou se quer crie um token sem a definição de um
algoritmo em seu header
25. Open Authorization (OAuth) is a protocol that allows
an application to authenticate against a server as a
user, without requiring passwords or any third party
server that acts as an identity provider.
27. ELEMENTOS QUE COMPÕE O OAUTH
● Resource Owner
● Resource Server
● Client
● Authorization Server
28.
29. Considerações
É uma especificação descrita na na RFC 6749
Provê um robusto mecanismo para autorização e acesso delegado a terceiros
Os tokens gerados podem ser do tipo JWT
É importante se atentar a qual versão do protocolo está sendo usada
31. Esteja atento…
Sempre filtrar e validar todo input e output do usuários
Nunca salve dados sensíveis em em tokens ou sessões
Nunca retorne erros das suas camadas de banco
Utilize códigos http adequadamente
33. RE ÊN I
OWASP:
https://bit.ly/1Drghjd
https://bit.ly/1HgzS7M
HTTP BASIC:
https://bit.ly/2x51NLJ
JWT:
https://bit.ly/2pqH3M6
https://bit.ly/2p3PdYH
OAUTH:
https://bit.ly/2x9hnWs
https://do.co/1dOwetI
https://bit.ly/2MrmhTy
SING SIGN-ON:
https://bit.ly/2CTAI3k
https://bit.ly/2x9vTh4
https://bit.ly/2pbDfwh
TWO FACTOR AUTHENTICATION
https://bit.ly/2x51NLJ
OPEN ID:
https://ubm.io/2p4tYpy
https://bit.ly/2NJYWRI
34. OBRIGADO A TODOS!
EDUARDO CESAR
github.com/bolinha1
/in/eduardo-cesar-oliveira
eduardo.oliveira@zarpsystem.com.br
www.zarpsystem.com.br
ESTAMOS CONTRATANDO!!!