Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
• Microsoft Most Valuable Professional (MVP)
• Multi-Plataform Technical Audience Contributor (MTAC)
• Mais de 15 anos de ...
Renato Groffe - Contatos
h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
/renatogroffe /in/renatogroffe
/...
Agenda
• APIs REST - Contexto Atual
• Segurança da Informação e APIs REST
• JSON Web Tokens (JWT): uma visão geral
• Azure...
APIs REST - Contexto Atual
• Escalabilidade, disponibilidade e performance
• REST como principal estilo arquitetural
• Mic...
APIs REST - Questões Fundamentais
• Modelagem
• Cultura de automação
• Estratégias de deployment
• Monitoramento
• Seguran...
Segurança da Informação e APIs REST
Desenvolvedores e a questão da Segurança
• Nunca vai acontecer comigo
• A aplicação é pequena, não há muitos
usuários
• O ...
E se essas “verdades” falharem?
• Injeção de SQL (SQL Injection)
• Acesso em produção com permissões
especiais
• Acesso in...
O que torna possível a injeção de SQL?
• Concatenação de comandos e parâmetros
em strings
• Descuidos com a manipulação de...
O que há de errado aqui (Dapper)?
O que há de errado aqui (Dapper)?
Recomendável ao se utilizar Dapper
Diminuindo o impacto – Injeção de SQL
• Evitando a concatenação de parâmetros em
comandos SQL
• Criar um usuário para a ap...
Evitando o acesso indevido a informações
• Criptografia de arquivos de configuração
• Armazenar segredos em alguma solução...
JWT (JSON Web Tokens)
• Uso de tokens criptografados
• Bearer Authentication
• Emprega HMAC ou RSA
• Tecnologia multiplata...
JWT (JSON Web Tokens) - Utilização
Um exemplo de token
JWT + ASP.NET Core – Integrações Possíveis
• Soluções customizadas para controle de
usuários
• ASP.NET Core Identity
• Act...
Aplicação
• API REST criada com o ASP.NET
Core 2.0
• Cadastro de produtos com
acesso empregando JWT
Aplicação
• Fontes:
https://github.com/renatogroffe/ASPNETCore2_CRUD-API-JWT-EFInMemory
Azure Web App on Linux: APIs seguras na nuvem
• Hospedagem de aplicações
• Containers Docker em Linux
• Suporte a Continuo...
Azure Web App on Linux
• Utilizar a imagem
renatogroffe/apiprodutos
HTTPS no ASP.NET Core 2.1
• Temos agora o uso de HTTPS
ativado por default
• Certificado de
desenvolvimento criado na
inst...
HTTPS no ASP.NET Core 2.1
• Redirecionamento automático
de HTTP para HTTPS
• Habilitado por default o uso do
protocolo HST...
medium.com/@renato.groffe/
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe
.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe
Upcoming SlideShare
Loading in …5
×

.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe

112 views

Published on

Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe

.Net Community Summit - 05 de maio

Published in: Software
  • Be the first to comment

  • Be the first to like this

.Net Community Summit - Construindo APIs REST seguras com o ASP.NET Core - Renato Groffe

  1. 1. • Microsoft Most Valuable Professional (MVP) • Multi-Plataform Technical Audience Contributor (MTAC) • Mais de 15 anos de experiência na área de Tecnologia • Autor Técnico e Palestrante • Um dos organizadores do Canal .NET e do .NET SP Renato Groffe h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e /
  2. 2. Renato Groffe - Contatos h t t p s : / / m e d i u m . c o m / @ re n a t o . g rof f e / /renatogroffe /in/renatogroffe /canaldotnet /renatogroffe /canaldotnet /renatogroff
  3. 3. Agenda • APIs REST - Contexto Atual • Segurança da Informação e APIs REST • JSON Web Tokens (JWT): uma visão geral • Azure Web App on Linux: APIs seguras na nuvem • HTTPS no ASP.NET Core 2.1
  4. 4. APIs REST - Contexto Atual • Escalabilidade, disponibilidade e performance • REST como principal estilo arquitetural • Microserviços ganhando força • Economia das APIs
  5. 5. APIs REST - Questões Fundamentais • Modelagem • Cultura de automação • Estratégias de deployment • Monitoramento • Segurança
  6. 6. Segurança da Informação e APIs REST
  7. 7. Desenvolvedores e a questão da Segurança • Nunca vai acontecer comigo • A aplicação é pequena, não há muitos usuários • O pessoal de TI é confiável • Nossos usuários são leigos demais
  8. 8. E se essas “verdades” falharem? • Injeção de SQL (SQL Injection) • Acesso em produção com permissões especiais • Acesso indevido a informações confidenciais
  9. 9. O que torna possível a injeção de SQL? • Concatenação de comandos e parâmetros em strings • Descuidos com a manipulação de query strings em aplicações Web
  10. 10. O que há de errado aqui (Dapper)?
  11. 11. O que há de errado aqui (Dapper)?
  12. 12. Recomendável ao se utilizar Dapper
  13. 13. Diminuindo o impacto – Injeção de SQL • Evitando a concatenação de parâmetros em comandos SQL • Criar um usuário para a aplicação no servidor de banco de dados, retirando direitos de de execução de comandos do tipo DDL (CREATE, DROP, ALTER) • Utilizando soluções ORMs como Entity Framework e NHibernate
  14. 14. Evitando o acesso indevido a informações • Criptografia de arquivos de configuração • Armazenar segredos em alguma solução específica (Azure Key Vault, por exemplo) • JWT (JSON Web Token) em APIs REST • HTTPS em aplicações Web sempre (sites, serviços, APIs)
  15. 15. JWT (JSON Web Tokens) • Uso de tokens criptografados • Bearer Authentication • Emprega HMAC ou RSA • Tecnologia multiplataforma • Tokens formados por 3 partes (Header, Payload e Signature)
  16. 16. JWT (JSON Web Tokens) - Utilização
  17. 17. Um exemplo de token
  18. 18. JWT + ASP.NET Core – Integrações Possíveis • Soluções customizadas para controle de usuários • ASP.NET Core Identity • Active Directory (AD) • IdentityServer
  19. 19. Aplicação • API REST criada com o ASP.NET Core 2.0 • Cadastro de produtos com acesso empregando JWT
  20. 20. Aplicação • Fontes: https://github.com/renatogroffe/ASPNETCore2_CRUD-API-JWT-EFInMemory
  21. 21. Azure Web App on Linux: APIs seguras na nuvem • Hospedagem de aplicações • Containers Docker em Linux • Suporte a Continuous Integration • HTTPS habilitado por default
  22. 22. Azure Web App on Linux • Utilizar a imagem renatogroffe/apiprodutos
  23. 23. HTTPS no ASP.NET Core 2.1 • Temos agora o uso de HTTPS ativado por default • Certificado de desenvolvimento criado na instalação do .NET Core
  24. 24. HTTPS no ASP.NET Core 2.1 • Redirecionamento automático de HTTP para HTTPS • Habilitado por default o uso do protocolo HSTS (HTTP Strict Transport Security)
  25. 25. medium.com/@renato.groffe/

×