Conheça como proteger suas API's com o protocolo OAuth2. Nesta palestra será demonstrado um exemplo prático de uma API construída usando o Spring Boot protegida com autenticação usando Spring Security OAuth2, sendo acessada por uma aplicação mobile híbrida desenvolvida com Ionic 3 .
19. Globalcode – Open4education
Assinatura digital
Considerações:
Performance afetada na geração de assinaturas
Problemas:
Obriga geração de certificados nas duas pontas
Custo elevado
Nao distingue claramente o usuário
Adoção mais complexa, depende de geração de assinaturas
21. Globalcode – Open4education
OAuth2
Protocolo baseado em uma especificação de padrão aberto
IETF - RFC 6749
https://tools.ietf.org/html/rfc6749
Aplicações podem compartilhar recursos sem necessidade
de compartilhar as credenciais
Baseado em tokens
Permite delegação de acesso
Aplicações de terceiros
Tempo limitado
Controle do que pode ser acessado
Vários modos de acesso (usuário ou aplicação)
25. Globalcode – Open4education
OAuth2 - Token
Tipo Bearer
Não é criptografado, necessita de SSL
String em formato Hash
Identificador para buscar dados de acesso a api
Informações do usuário são armazenadas no servidor
Banco de dados
Memória
Access Token de curta duração
Refresh Token de longa duração
119f2b5b-a5d8-481a-b674-4dec18d7be40
26. Globalcode – Open4education
Token JWT
Baseado em um padrão aberto IETF - RFC 7519
https://tools.ietf.org/html/rfc7519
Permite envio de informações
Garantia de autenticidade
40. Globalcode – Open4education
OAuth2 - Considerações
Uso de SSL
Performance pouco afetada, depende do controle dos
tokens
Problemas:
Implementações podem expor vulnerabilidade
Implementações podem ser complexas
Adoção complexa dependendo do suporte a implementação
41. Globalcode – Open4education
OAuth2 - Spring Security
Implementação do OAuth2
Implementa os 4 tipos de authorization grant
Suporta o papéis definidos pelo OAuth2
Authorization Server
Resource Server
Client
Fácil integração com ecossistema Spring
configuração via anotações
42. Globalcode – Open4education
Authorization Server
@EnableAuthorizationServer
Habilita a configuração do Autorization Server
ClientDetailsServiceConfigurer
Configurações do Client
Armazenamento Memória ou Banco de dados
AuthorizationServerTokenServices
Configurações para gerenciamento de Tokens
Memória, Banco de Dados ou JWT
AuthorizationServerEndpointConfigurer
Configurações dos grant types suportados pelo servidor
43. Globalcode – Open4education
Resource Server
Fornece um filtro de autenticação para as aplicações web
@EnableResourceServer
Habilita a configuração do Resource Server
Configuração do controle de acesso
44. Globalcode – Open4education
Ionic Framework
Framework para desenvolvimento de aplicativos móveis
híbridos baseado em:
Cordova: integração com recursos nativos do dispositivo (todos)
Angular: framework frontend
Linguagem Typescript
Linguagem tipada
Orientada a objetos
Baseada em Javascript
Gera compilações para todas as plataformas (iOs e Android)
Componentes visuais adaptam-se ao estilo da plataforma
gerada.