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.

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

78 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/

×