SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
AUTHENTICATION
OVERVIEW
AGNI G. B. CAMPOS
http://agni-tech.blogspot.com
(21) 96624-5486
AGENDA
1  / Introdução
2 / Exemplo
3  / Auth em alto nível
4 / Token Auth
5  / React Token Auth parte 1
6  / React Token Auth parte 2
7 / Source Links
INTRODUÇÃO
Quando falamos em segurança, há alguns termos e processos básicos que
precisam ser compreendidos antes que possamos escrever do código.
Autenticação: O processo ou ação de provar ou mostrar algo como
verdadeiro, genuíno ou válido.
Token: Um pedaço de dados criado pelo servidor que contém informações
para identificar um usuário em particular e validade de token.
Autorização: O processo de dar permissão a alguém para fazer ou ter algo.
Privilégio: Um direito especial, vantagem ou permissão concedida ou
disponível apenas para uma pessoa ou grupo de pessoas em particular.
EXEMPLO
Vamos passar por um exemplo de
segurança física para entender a
segurança virtual.
EXEMPLOVocê vai a um hotel e caminha até a recepção, diz à recepcionista que você tem uma reserva  e a
recepcionista pedirá alguma  identificação e verificará o nome que foi dado para a reserva.
Isso é Autenticação, você está provando que você é quem você diz que é.
O equivalente virtual disso seria fazer login com um nome de usuário ou senha.
Depois de ter sido autenticado, a recepcionista emitirá um cartão-chave para acessar diferentes
seções do hotel.
O equivalente virtual disso seria um token, um item exclusivo que contém informações sobre o
titular.
Agora pegue o elevador até o seu andar e caminhe até o seu quarto e para entrar no quarto, basta
colocar seu cartão / chave na fechadura e entrar na sala.
Isso é novamente Autenticação, mas a chave tem suas informações e a porta a autentica
automaticamente.
EXEMPLO
A chave também permite que você acesse alguns lugares, mas não outros, por exemplo, posso
entrar na piscina, mas não em outro quarto de hóspedes.
Isso é Autorização, você tem o nível de privilégio de um convidado para poder acessar
seu quarto e a piscina, mas um gerente pode acessar seu quarto, a piscina e outros quartos.
O equivalente virtual disso seria um nível de privilégio de usuário ou administrador em um
computador;
Depois de ter terminado a sua estadia no hotel, simplesmente jogue fora a chave ou transforme-a
na recepção e o equivalente virtual disso seria sair de um site.
AUTH EM ALTO NÍVELAutenticação é o processo de permitir que um usuário do seu aplicativo crie uma conta,
faça login, tenha permissões de usuário específicas, obtenha dados que só os interessem
como usuário, etc. A autenticação inclui uma preocupação de segurança (não queremos
que as pessoas sejam capaz de ver ou manipular os dados uns dos outros), bem como
uma preocupação de usabilidade (um aplicativo que não permite que eu tenha minha
própria lista de tarefas é bastante inútil, a menos que eu seja o único usuário do
aplicativo).
Atualmente, os três principais tipos de autenticação são:
 
1) Autenticação baseada em sessão / cookie
2) Autenticação baseada em token
3) OAuth
TOKEN AUTH
Um usuário preenche um formulário de login contendo, normalmente, um nome de
usuário e senha, que é então enviado ao servidor para verificação.
O servidor procura um usuário com o nome de usuário fornecido no banco de dados e
verifica se a senha está correta, caso contrário, ele retornará um erro de autenticação
informando à pessoa que ele colocou o nome de usuário e / ou a senha incorretos.
Caso contrário, se tudo correr bem, o servidor cria um token, que é apenas uma longa
seqüência de texto aparentemente aleatória que é enviada de volta ao usuário.
Esse token habilita ao usuário um certo nível de privilégio para se movimentar pelo
aplicativo, acessando certos dados, fazendo alterações nos dados, acessando
determinadas partes do site, etc.
Muitas vezes, salvamos esse token em sessionStorage ou localStorage para facilitar o
acesso pelo aplicativo cliente.
TOKEN AUTH
             Sempre que o aplicativo cliente faz uma solicitação HTTP ao servidor, ele envia
esse token junto com ele. E com todos os recursos protegidos no servidor (qualquer
ponto de extremidade da API que requeira direitos especiais de acesso, como o de um
usuário conectado), o servidor verifica o token recebido do cliente para garantir que
esse usuário tenha autorização para acessar esse conteúdo  e em caso de afirmativo,
retorna o conteúdo solicitado, caso contrário, ele envia algum tipo de erro de
autorização indicando que o usuário não está autorizado a ver essas informações.
             Para desconectar um usuário, basta remover o token de onde você o salvou
(armazenamento local ou de sessão) e ele deixa de ser enviado a cada solicitação, o
que significa que o servidor para de fornecer ao usuário acesso aos dados protegidos
e isso é semelhante a tirar o cartão de acesso do funcionário de um prédio até que ele
venha da próxima vez e provar que está de novo lá.
REACT TOKEN AUTH
PARTE 1
https://coursework.vschool.io/react-token-authentication-pt-1/ 
PARTE 2
https://coursework.vschool.io/react-token-authentication-pt-2/
SOURCE LINKS
https://coursework.vschool.io/auth-basics-high-level/
https://coursework.vschool.io/authentication-basics/
https://coursework.vschool.io/react-token-authentication-pt-1/
https://coursework.vschool.io/react-token-authentication-pt-2/
OBRIGADO PELA
ATENÇÃO!
AGNI G. B. CAMPOS
http://agni-tech.blogspot.com

Mais conteúdo relacionado

Semelhante a Auth overview: authentication, tokens, authorization & React token auth

OWASP Top 10 - A2 2017 Broken Authentication
OWASP Top 10 - A2 2017 Broken AuthenticationOWASP Top 10 - A2 2017 Broken Authentication
OWASP Top 10 - A2 2017 Broken AuthenticationFernando Galves
 
Manual de instalação de https no iis7 2
Manual de instalação de https no iis7   2Manual de instalação de https no iis7   2
Manual de instalação de https no iis7 2Washington Souza
 
APIs seguras com OAuth2
APIs seguras com OAuth2APIs seguras com OAuth2
APIs seguras com OAuth2Luiz Messias
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014Tiago Marchetti Dolphine
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
Interfaces POO
Interfaces POOInterfaces POO
Interfaces POOPedro Neto
 
Certificacao digital
Certificacao digitalCertificacao digital
Certificacao digitalnessinhavos
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityMarlon Bernardes
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Helder da Rocha
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
Glossario
Glossario Glossario
Glossario vds06
 

Semelhante a Auth overview: authentication, tokens, authorization & React token auth (20)

PHP SSO no Zentyal
PHP SSO no ZentyalPHP SSO no Zentyal
PHP SSO no Zentyal
 
OWASP Top 10 - A2 2017 Broken Authentication
OWASP Top 10 - A2 2017 Broken AuthenticationOWASP Top 10 - A2 2017 Broken Authentication
OWASP Top 10 - A2 2017 Broken Authentication
 
Manual de instalação de https no iis7 2
Manual de instalação de https no iis7   2Manual de instalação de https no iis7   2
Manual de instalação de https no iis7 2
 
APIs seguras com OAuth2
APIs seguras com OAuth2APIs seguras com OAuth2
APIs seguras com OAuth2
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014OAuth2: Uma abordagem para segurança de aplicações e APIs REST  - Devcamp 2014
OAuth2: Uma abordagem para segurança de aplicações e APIs REST - Devcamp 2014
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2
 
Interfaces POO
Interfaces POOInterfaces POO
Interfaces POO
 
Certificacao digital
Certificacao digitalCertificacao digital
Certificacao digital
 
Segurança em Angular SPA
Segurança em Angular SPASegurança em Angular SPA
Segurança em Angular SPA
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
OWASP TOP 10 - Web Security
OWASP TOP 10 - Web SecurityOWASP TOP 10 - Web Security
OWASP TOP 10 - Web Security
 
Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019Desenvolvimento seguro - WorkSec 2019
Desenvolvimento seguro - WorkSec 2019
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
Glossario
Glossario Glossario
Glossario
 
IdentityServer 4
IdentityServer 4IdentityServer 4
IdentityServer 4
 
O auth2 e open id connect
O auth2 e open id connectO auth2 e open id connect
O auth2 e open id connect
 
Maria certificado
Maria certificadoMaria certificado
Maria certificado
 

Mais de Agni Campos

Curriculum - Agni campos
Curriculum - Agni campos Curriculum - Agni campos
Curriculum - Agni campos Agni Campos
 
Manage branchs using git bash
Manage branchs using git bashManage branchs using git bash
Manage branchs using git bashAgni Campos
 
Implementando microservices
Implementando microservicesImplementando microservices
Implementando microservicesAgni Campos
 
Overview arquitetura
Overview arquiteturaOverview arquitetura
Overview arquiteturaAgni Campos
 
Microservices arquitetura parte 2
Microservices arquitetura parte 2Microservices arquitetura parte 2
Microservices arquitetura parte 2Agni Campos
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1Agni Campos
 

Mais de Agni Campos (7)

Curriculum - Agni campos
Curriculum - Agni campos Curriculum - Agni campos
Curriculum - Agni campos
 
Manage branchs using git bash
Manage branchs using git bashManage branchs using git bash
Manage branchs using git bash
 
Git overview
Git   overviewGit   overview
Git overview
 
Implementando microservices
Implementando microservicesImplementando microservices
Implementando microservices
 
Overview arquitetura
Overview arquiteturaOverview arquitetura
Overview arquitetura
 
Microservices arquitetura parte 2
Microservices arquitetura parte 2Microservices arquitetura parte 2
Microservices arquitetura parte 2
 
Microservices arquitetura - parte1
Microservices arquitetura - parte1Microservices arquitetura - parte1
Microservices arquitetura - parte1
 

Auth overview: authentication, tokens, authorization & React token auth

  • 1. AUTHENTICATION OVERVIEW AGNI G. B. CAMPOS http://agni-tech.blogspot.com (21) 96624-5486
  • 2. AGENDA 1  / Introdução 2 / Exemplo 3  / Auth em alto nível 4 / Token Auth 5  / React Token Auth parte 1 6  / React Token Auth parte 2 7 / Source Links
  • 3. INTRODUÇÃO Quando falamos em segurança, há alguns termos e processos básicos que precisam ser compreendidos antes que possamos escrever do código. Autenticação: O processo ou ação de provar ou mostrar algo como verdadeiro, genuíno ou válido. Token: Um pedaço de dados criado pelo servidor que contém informações para identificar um usuário em particular e validade de token. Autorização: O processo de dar permissão a alguém para fazer ou ter algo. Privilégio: Um direito especial, vantagem ou permissão concedida ou disponível apenas para uma pessoa ou grupo de pessoas em particular.
  • 4. EXEMPLO Vamos passar por um exemplo de segurança física para entender a segurança virtual.
  • 5. EXEMPLOVocê vai a um hotel e caminha até a recepção, diz à recepcionista que você tem uma reserva  e a recepcionista pedirá alguma  identificação e verificará o nome que foi dado para a reserva. Isso é Autenticação, você está provando que você é quem você diz que é. O equivalente virtual disso seria fazer login com um nome de usuário ou senha. Depois de ter sido autenticado, a recepcionista emitirá um cartão-chave para acessar diferentes seções do hotel. O equivalente virtual disso seria um token, um item exclusivo que contém informações sobre o titular. Agora pegue o elevador até o seu andar e caminhe até o seu quarto e para entrar no quarto, basta colocar seu cartão / chave na fechadura e entrar na sala. Isso é novamente Autenticação, mas a chave tem suas informações e a porta a autentica automaticamente.
  • 6. EXEMPLO A chave também permite que você acesse alguns lugares, mas não outros, por exemplo, posso entrar na piscina, mas não em outro quarto de hóspedes. Isso é Autorização, você tem o nível de privilégio de um convidado para poder acessar seu quarto e a piscina, mas um gerente pode acessar seu quarto, a piscina e outros quartos. O equivalente virtual disso seria um nível de privilégio de usuário ou administrador em um computador; Depois de ter terminado a sua estadia no hotel, simplesmente jogue fora a chave ou transforme-a na recepção e o equivalente virtual disso seria sair de um site.
  • 7. AUTH EM ALTO NÍVELAutenticação é o processo de permitir que um usuário do seu aplicativo crie uma conta, faça login, tenha permissões de usuário específicas, obtenha dados que só os interessem como usuário, etc. A autenticação inclui uma preocupação de segurança (não queremos que as pessoas sejam capaz de ver ou manipular os dados uns dos outros), bem como uma preocupação de usabilidade (um aplicativo que não permite que eu tenha minha própria lista de tarefas é bastante inútil, a menos que eu seja o único usuário do aplicativo). Atualmente, os três principais tipos de autenticação são:   1) Autenticação baseada em sessão / cookie 2) Autenticação baseada em token 3) OAuth
  • 8. TOKEN AUTH Um usuário preenche um formulário de login contendo, normalmente, um nome de usuário e senha, que é então enviado ao servidor para verificação. O servidor procura um usuário com o nome de usuário fornecido no banco de dados e verifica se a senha está correta, caso contrário, ele retornará um erro de autenticação informando à pessoa que ele colocou o nome de usuário e / ou a senha incorretos. Caso contrário, se tudo correr bem, o servidor cria um token, que é apenas uma longa seqüência de texto aparentemente aleatória que é enviada de volta ao usuário. Esse token habilita ao usuário um certo nível de privilégio para se movimentar pelo aplicativo, acessando certos dados, fazendo alterações nos dados, acessando determinadas partes do site, etc. Muitas vezes, salvamos esse token em sessionStorage ou localStorage para facilitar o acesso pelo aplicativo cliente.
  • 9. TOKEN AUTH              Sempre que o aplicativo cliente faz uma solicitação HTTP ao servidor, ele envia esse token junto com ele. E com todos os recursos protegidos no servidor (qualquer ponto de extremidade da API que requeira direitos especiais de acesso, como o de um usuário conectado), o servidor verifica o token recebido do cliente para garantir que esse usuário tenha autorização para acessar esse conteúdo  e em caso de afirmativo, retorna o conteúdo solicitado, caso contrário, ele envia algum tipo de erro de autorização indicando que o usuário não está autorizado a ver essas informações.              Para desconectar um usuário, basta remover o token de onde você o salvou (armazenamento local ou de sessão) e ele deixa de ser enviado a cada solicitação, o que significa que o servidor para de fornecer ao usuário acesso aos dados protegidos e isso é semelhante a tirar o cartão de acesso do funcionário de um prédio até que ele venha da próxima vez e provar que está de novo lá.
  • 10. REACT TOKEN AUTH PARTE 1 https://coursework.vschool.io/react-token-authentication-pt-1/  PARTE 2 https://coursework.vschool.io/react-token-authentication-pt-2/
  • 12. OBRIGADO PELA ATENÇÃO! AGNI G. B. CAMPOS http://agni-tech.blogspot.com