SlideShare uma empresa Scribd logo
PHP COMMUNITY SUMMIT 2018
EDUARDO CESAR
DESENVOLVEDOR WEB - ZARP
EXPLORANDO OS MECANISMOS
DE AUTENTICAÇÃO NA WEB
AUTENTICAR x AUTORIZAR
AUTENTICAR
AUTORIZAR
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
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?
AUTENTICAÇÃO BASEADA EM COOKIES E
SESSÕES
Explorando mecanismos autenticacao na web
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
Ferramentas
Agnóstica a framework
https://github.com/PHPAuth/PHPAuth
Para o Laravel
https://laravel.com/docs/5.6/authentication#introduction
Para o Symfony
https://symfony.com/doc/current/components/security/authentication.html#s
ecurity-events
BASIC AUTHENTICATION
Explorando mecanismos autenticacao na web
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
Explorando mecanismos autenticacao na web
Ferramentas
Para o Laravel
https://laravel.com/docs/5.6/authentication#http-basic-authentication
Para o Symfony
https://symfony.com/doc/current/security.html#a-configuring-how-your-user
s-will-authenticate
Explorando mecanismos autenticacao na web
MAS O QUE É UM TOKEN JWT ?
Explorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na web
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
Ferramentas
Independente de frameworks
https://github.com/lcobucci/jwt
Para o Laravel
https://github.com/tymondesigns/jwt-auth
Para o Symfony
https://github.com/lexik/LexikJWTAuthenticationBundle
Explorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na web
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.
ELEMENTOS QUE COMPÕE O OAUTH
ELEMENTOS QUE COMPÕE O OAUTH
● Resource Owner
● Resource Server
● Client
● Authorization Server
Explorando mecanismos autenticacao na web
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
Ferramentas
Independente de frameworks
https://github.com/thephpleague/oauth2-server
Para o Laravel
https://github.com/laravel/passport
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
Ainda sobre autenticação….
SSO Single Sing On
OPENID
Two factors auth
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
OBRIGADO A TODOS!
EDUARDO CESAR
github.com/bolinha1
/in/eduardo-cesar-oliveira
eduardo.oliveira@zarpsystem.com.br
www.zarpsystem.com.br
ESTAMOS CONTRATANDO!!!

Mais conteúdo relacionado

PPTX
Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...
PPS
Segurança J2EE
ODP
Minicurso de Cakephp
PPT
Direct Web Remoting Sun Tech Days2007
PDF
Do monolito ao micro serviço
PPT
Dwrsecomp
PPTX
Aula 1 - Testando a Segurança de Sua Aplicação Web
ODP
Manipulando JWT em apis Laravel
Utilizando o AppLocker para proteger seu ambiente da execução de aplicações n...
Segurança J2EE
Minicurso de Cakephp
Direct Web Remoting Sun Tech Days2007
Do monolito ao micro serviço
Dwrsecomp
Aula 1 - Testando a Segurança de Sua Aplicação Web
Manipulando JWT em apis Laravel

Semelhante a Explorando mecanismos autenticacao na web (20)

PDF
TDC 2015 - Segurança em Recursos RESTful com OAuth2
PDF
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
PPTX
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
PDF
Aplicações stateless com PHP e JWT
PDF
OAuth: Gerenciamento de acessos para clientes de APIs
PPTX
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
PPTX
Jwt mais (emoção) segurança na sua aplicação
PPTX
JWT - Json Web Token
PDF
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
ODP
Laravel + OAuth 2.0 Server
DOCX
Jwt com implementação apache Oltu
PDF
Autenticação baseada em token com jwt
PDF
GUJavaSC - Protegendo Microservices em Java
PDF
PHP Experience 2016 - [Palestra] Autenticação em APIs
PDF
Autenticacao em APIs com SSL
PDF
PDF
Autenticação e Autorização (in portuguese)
PPTX
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
PPTX
Implementação de Servidor OAuth
PDF
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
TDC 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
Aplicações stateless com PHP e JWT
OAuth: Gerenciamento de acessos para clientes de APIs
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
Jwt mais (emoção) segurança na sua aplicação
JWT - Json Web Token
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Laravel + OAuth 2.0 Server
Jwt com implementação apache Oltu
Autenticação baseada em token com jwt
GUJavaSC - Protegendo Microservices em Java
PHP Experience 2016 - [Palestra] Autenticação em APIs
Autenticacao em APIs com SSL
Autenticação e Autorização (in portuguese)
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
Implementação de Servidor OAuth
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
Anúncio

Mais de Eduardo Cesar (14)

PDF
Vida longa ao legado
PDF
Uma linha tênue entre arquitetura de software e o dia a dia dev
PDF
OOP, e uma visão que está além de classes e métodos
PDF
Arquitetando aplicações php
PDF
Arquitetando sistemas PHP
PDF
Desbabravando linguagem GO
PDF
Integrando aplicações, o que temos nas fronteiras dos microservices
PDF
Mantendo a plenitude do seu novo legado com code-refactoring
PDF
Desenvolvendor aplicações real time com PHP
PDF
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
PDF
Porque escolhemos Laravel: um ponto de vista além do técnico
PDF
Do monolito ao microservico
PPTX
Interagindo com web services RPC, SOAP e REST utilizando PHP
ODP
Uma abordagem sobre arquiteturas de software Rest e Micro services
Vida longa ao legado
Uma linha tênue entre arquitetura de software e o dia a dia dev
OOP, e uma visão que está além de classes e métodos
Arquitetando aplicações php
Arquitetando sistemas PHP
Desbabravando linguagem GO
Integrando aplicações, o que temos nas fronteiras dos microservices
Mantendo a plenitude do seu novo legado com code-refactoring
Desenvolvendor aplicações real time com PHP
Refatoração e uma vida saudável para o desenvolvedor e para sua aplicação
Porque escolhemos Laravel: um ponto de vista além do técnico
Do monolito ao microservico
Interagindo com web services RPC, SOAP e REST utilizando PHP
Uma abordagem sobre arquiteturas de software Rest e Micro services
Anúncio

Último (9)

PDF
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
PPT
03_slide de Gerenciamento de Projetos .ppt
PDF
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
PDF
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
PPT
06_slide de Arquitetura_de_Software .ppt
PDF
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
PPT
05_slide especificacao de sistemas de software e a uml UML.ppt
PDF
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
PPT
09_Evolucao de software e_Refatoracao.ppt
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
03_slide de Gerenciamento de Projetos .ppt
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
06_slide de Arquitetura_de_Software .ppt
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
05_slide especificacao de sistemas de software e a uml UML.ppt
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
09_Evolucao de software e_Refatoracao.ppt

Explorando mecanismos autenticacao na web