SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
AUTENTICAÇÃO
STATELESS
COM JWT
AURÉLIO BUARQUE
JANDERSON ANGELO
Aurélio Buarque
Software Engineer
Janderson Angelo
Back-end Developer
https://www.github.com/buarki
https://www.linkedin.com/in/aurelio-buarque
https://www.github.com/JandersonCRB
https://www.linkedin.com/in/JandersonCRB
Ciência da Computação - UFAL
O que é?
● Back-end / Front-end;
● Microservices;
● Autenticação;
● Token de Autenticação;
● JWT.
Motivação
● Armazenamento de dados no banco;
● Múltiplos acessos ao banco;
● Segurança;
● Centralização.
Como funciona
● Objeto JSON inserido no Token;
● 3 componentes do Token:
○ Header;
○ Payload;
○ Assinatura.
● JWT vs Token padrão.
Back-end / Front-end
Back-end
Monolítico
Front-end
HTTP Request
Microservices
Back-end
Front-end
Service 1
Service 2
Auth Service
Database
HTTP Request
{
“X-User-Token”:”8uq43t6h0c385f764”
}
HTTP Request
{
“login”:”animal”,
“password”:”vaca”
}
{
“token”: “8uq43t6h0c385f764”
}
HTTP Request
{
“X-User-Token”:”8uq43t6h0c385f764”
}
HTTP Request
Microservices
Back-end
Front-end
Service 1
Service 2
Auth Service
Database
HTTP Request
{
“Authorization”:”i345gb.bt3h23.b62457”
}
HTTP Request
{
“login”:”animal”,
“password”:”vaca”
}
{
“token”: “i345gb.bt3h23.b62457”
}
HTTP Request
{
“Authorization”:”i345gb.bt3h23.b62457”
}
HTTP Request
Problemas do Token de Autenticação
● Necessidade de salvar o token do usuário no banco de dados;
● Necessidade de acessar o banco de dados em cada acesso;
● Possibilidade de haver uma vulnerabilidade no banco de dados que permita o
acesso à usuários indesejados;
● Necessidade de haver um serviço que vai ser constantemente acessado em todas
as requisições feitas ao back-end.
JWT
https://jwt.io
Componentes de um Token (Header)
● Consiste de duas partes, o algoritmo usado para encriptação e o tipo de Token, que é JWT.
Componentes de um Token (Payload)
● Consiste de um conjunto de claims, que são atributos de uma entidade (normalmente o
usuário) e informações extras.
● Principais claims privados:
○ iat: Significa issued at, e basicamente salva a hora em que foi gerado o token.
○ exp: Significa expiration time, e é utilizado para salvar um timestamp onde aquele token será
invalidado.
Componentes de um Token (Assinatura)
● Para criar a assinatura, é necessário possuir o header e o payload encriptados na base 64
e um secret, que serve como chave de encriptação.
● Este secret garante que nenhum dado do token seja alterado, garantindo sua validade,
mesmo sem acesso a um banco de dados.

Contenu connexe

Similaire à Stateless Authentication For Microservices

OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...Mauro Risonho de Paula Assumpcao
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Jeronimo Zucco
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azureVagner Oliveira
 
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosSegurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosLuis Cipriani
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...Deep Tech Brasil
 
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]Vale Security Conference
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeWalter Coan
 

Similaire à Stateless Authentication For Microservices (7)

OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
OWASP AppSec 2010 BRAZIL Information Extraction Art of Testing Network Periph...
 
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
Tchelinux live 2020 - Detectando e Respondendo Incidentes de Segurança em Fro...
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azure
 
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupadosSegurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
Segurança de APIs HTTP, um guia sensato para desenvolvedores preocupados
 
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
[DTC21] Rodrigo Branas - Segurança na Web: Será que o seu sistema está realme...
 
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]
Vale Security Conference - 2011 - 14 - Alexandro Silva (Alexos) [DC Labs]
 
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT EdgeUtilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
Utilização do NVidia DeepStream para execução de modelos de IA no Azure IoT Edge
 

Stateless Authentication For Microservices

  • 2. Aurélio Buarque Software Engineer Janderson Angelo Back-end Developer https://www.github.com/buarki https://www.linkedin.com/in/aurelio-buarque https://www.github.com/JandersonCRB https://www.linkedin.com/in/JandersonCRB Ciência da Computação - UFAL
  • 3. O que é? ● Back-end / Front-end; ● Microservices; ● Autenticação; ● Token de Autenticação; ● JWT.
  • 4. Motivação ● Armazenamento de dados no banco; ● Múltiplos acessos ao banco; ● Segurança; ● Centralização.
  • 5. Como funciona ● Objeto JSON inserido no Token; ● 3 componentes do Token: ○ Header; ○ Payload; ○ Assinatura. ● JWT vs Token padrão.
  • 7. Microservices Back-end Front-end Service 1 Service 2 Auth Service Database HTTP Request { “X-User-Token”:”8uq43t6h0c385f764” } HTTP Request { “login”:”animal”, “password”:”vaca” } { “token”: “8uq43t6h0c385f764” } HTTP Request { “X-User-Token”:”8uq43t6h0c385f764” } HTTP Request
  • 8. Microservices Back-end Front-end Service 1 Service 2 Auth Service Database HTTP Request { “Authorization”:”i345gb.bt3h23.b62457” } HTTP Request { “login”:”animal”, “password”:”vaca” } { “token”: “i345gb.bt3h23.b62457” } HTTP Request { “Authorization”:”i345gb.bt3h23.b62457” } HTTP Request
  • 9. Problemas do Token de Autenticação ● Necessidade de salvar o token do usuário no banco de dados; ● Necessidade de acessar o banco de dados em cada acesso; ● Possibilidade de haver uma vulnerabilidade no banco de dados que permita o acesso à usuários indesejados; ● Necessidade de haver um serviço que vai ser constantemente acessado em todas as requisições feitas ao back-end.
  • 11. Componentes de um Token (Header) ● Consiste de duas partes, o algoritmo usado para encriptação e o tipo de Token, que é JWT.
  • 12. Componentes de um Token (Payload) ● Consiste de um conjunto de claims, que são atributos de uma entidade (normalmente o usuário) e informações extras. ● Principais claims privados: ○ iat: Significa issued at, e basicamente salva a hora em que foi gerado o token. ○ exp: Significa expiration time, e é utilizado para salvar um timestamp onde aquele token será invalidado.
  • 13. Componentes de um Token (Assinatura) ● Para criar a assinatura, é necessário possuir o header e o payload encriptados na base 64 e um secret, que serve como chave de encriptação. ● Este secret garante que nenhum dado do token seja alterado, garantindo sua validade, mesmo sem acesso a um banco de dados.