TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we had a SRE team at - Authentication and Autorization with OAuth2, Spring Security, OpenID, Keycloak and JWT token
O documento discute segurança em microsserviços, abordando autenticação e autorização com OAuth2, Spring Security, OpenID, Keycloak e JWT token. É apresentada uma agenda sobre problemas com segurança em microsserviços, entendendo esses protocolos e ferramentas e realizando uma demonstração.
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
Mais conteúdo relacionado
Semelhante a TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we had a SRE team at - Authentication and Autorization with OAuth2, Spring Security, OpenID, Keycloak and JWT token
Semelhante a TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we had a SRE team at - Authentication and Autorization with OAuth2, Spring Security, OpenID, Keycloak and JWT token (20)
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we had a SRE team at - Authentication and Autorization with OAuth2, Spring Security, OpenID, Keycloak and JWT token
2. Quem sou?
Cléber da Silveira
• Arquiteto de software na DBServer.
• Especialista Java.
• Entusiasta DevOps e Cloud
Computing.
• Surfista?
3. • Problemas com segurança em microserviços;
• Autenticação e Autorização em contâiners web;
• Entendendo OAuth2;
• Entendendo o OpenID;
• Configurando Spring Security;
• Entendendo o KeyCloack;
• Como trabalhar com JWT Token;
• Demo.
Agenda
4. • Como identificar, criar e separar as permissões de acesso ?
• Como identificar os perfis e fluxos de sistema para diferentes usuários ?
• Quais informações de segurança devem ser compartilhas entre diferentes Api's ?
• Quais URL's devem ser públicas e quais URL's devem ser privadas ?
• Qual o tempo ideal de uma sessão ?
• Como a autenticação auxilia na monetização de API's ?
Problemas
6. • Processo de identificação de uma identidade
alegada;
• Validação de credenciais;
• Processos distintos de acesso:
oUsuário e senha;
oBiometria;
oReconhecimento facial;
• Fatores de autenticação:
oO que o usuário é?
oO que o usuário tem?
oO que o usuário conhece?
• Geralmente utiliza-se autenticação de dois fatores.
Autenticação
7. • Validar privilégios de um usuário previamente
autenticado;
• Tem a função de definir o que um usuário pode fazer no
sistema;
• Valida a periodicidade do tempo que o usuário estará
habilitado a fazer;
• Necessidade de um parceiro para busca de permissões;
• Atua sempre em combinação com a autenticação.
Autorização
8. • O OAuth2 é o protocolo de autorização mais utilizado em
aplicações web no mundo;
• Utiliza tokens para acessar seus dados em sistemas distribuídos;
• OAuth foi criado para remover a necessidade de os usuários
compartilharem suas senhas com aplicativos de terceiros;
• Usa os Protocolo de autorização como Open ID
Connect, UMA, Green Button e Blue;
• Integração de TLS/SSL;
• Modelo de delegação;
• Fornece o trecho do token denominado access_token.
OAuth2
11. • OpenID é um padrão aberto e um protocolo de autenticação
descentralizado;
• Possibilidade de compartilhamento de informações de usuários e
contas entre sistemas;
• OpenID foi criado para autenticação federada, ou seja, deixando um
terceiro autenticar seus usuários para você, usando contas que já
possuem;
• Uma única conta e senha para login;
• Fornece o trecho de de token chamado id_token;
• Rápida adoção da comunidade;
• 1 bilhão de contas habilitadas para login;
• 50.000 sistemas habilitados para login via OpenID.
OpenID
13. Spring Security e OAuth2
• Segurança através de papéis;
• Controle facilitado via Annotations;
• Trabalho simplificado para realizar autenticação e autorização;
• Suporte a inúmeros modelos de autenticação;
• Projeto open-source.
17. • O Keycloak é uma solução open source de gerenciamento de identidade e
acesso voltada para aplicações e serviços modernos;
• Facilita a segurança de aplicativos e serviços com pouco ou nenhum código;
• Autenticação integrado com o protocolo OpenId;
• Autorização com Tokens de Acesso e autorização;
• Single Sign On;
• Session Management;
• Auditoria, Regras e Grupos.
KeyCloak
18. • Single-Sign On - Uma vez conectado ao Keycloak, os usuários não
precisam se conectar novamente para acessar uma aplicação
diferente;
• Isso também se aplica ao logout;
• Keycloak fornece saída única, o que significa que os usuários só
precisam sair uma vez para serem desconectados de todos os
aplicativos que usam o Keycloak.
KeyCloak
19. • Social Login - Keycloak também pode autenticar usuários com os provedores
de identidade OpenID Connect ou SAML 2.0 existentes como redes sociais;
• Suporte incorporado para se conectar a servidores LDAP ou Active Directory
existentes. Você também pode implementar seu próprio provedor se você
tiver usuários em outras lojas, como um banco de dados relacionais.
KeyCloak
20. • JSON Web Token (JWT) é um padrão aberto (RFC 7519) que define uma
maneira compacta e autônoma para transmitir de forma segura informações
entre as partes como um objeto JSON;
• Esta informação pode ser verificada e confiável porque está assinada
digitalmente. JWTs podem ser assinados usando um segredo (com o
algoritmo HMAC) ou um par de chaves público / privado usando RSA;
• Estrutura dividida em três partes Header, Payload e Signature.
JWT Token
25. • Possui 34 cooperativas;
• 230 unidades de negócios;
• Presente em 10 estados brasileiros;
• 04 unidades centrais;
• 180 mil cooperados;
• 01 confederação nacional.
Case