Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    • Conheça os tipos de registros DNS: o guia completo sobre A, AAAA, NS, CNAME, MX, PTR, SOA, TXT, SRV, SPF e muito mais
    • Cache além do básico: por que LRU e TTL precisam andar juntos
    • Quando usar arquitetura modular — e quando não usar
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Dicas»Gerencie suas API’s com o API Management da Azure – pt3

    Gerencie suas API’s com o API Management da Azure – pt3

    Jhonathan SoaresBy Jhonathan Soares17 de junho de 20193 Mins Read Dicas
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Continuando a série de artigos, sobre como publicar suas API’s utilizando o API Gateway da Azure, iremos neste artigo iremos ver como gerenciar suas API’s com políticas de segurança e algumas boas práticas que você pode utilizar para melhorar ainda mais a sua API.

    Modificando headers da API

    Com o API manager você pode modificar headers de resposta da sua API, excluir alguns ou adicionar outros. Tudo conforme suas regras de negócio/segurança necessitam. Vamos primeiro ver como estão os cabeçalhos de resposta da nossa API:

    Vamos ocultar os cabeçalhos HTTP que não desejamos mostrar aos usuários. Neste exemplo, os cabeçalhos a seguir são excluídos na resposta HTTP:

    • X-Powered-By

    Esse tipo de header é conhecido como ServerSignature, ele revela informações do servidor como: nome, versão, tecnologia e em alguns casos até o sistema operacional. O seu header em especifico (X-Powered-By) fornece informações da tecnologia que por exemplo: ASP.NET ou PHP e isto fornece informações nas quais nem sempre queremos divulgar, certo? Então vamos lá!

    Dentro da API que criamos anteriormente clique no ícone de editor de policies:

    Abrindo assim o editor do arquivo de políticas e posicione o cursor dentro do elemento <outbound>. Vale deixar claro que as configurações de entrada da sua API ficam em inbound e as de saída em outbound.

    Na janela à direita, em Políticas de transformação, clique em + Definir cabeçalho HTTP duas vezes (para inserir dois snippets de código de política).

    Modifique seu código <outbound> para que se pareça com este e clique em Salvar.

    <set-header name="X-Powered-By" exists-action="delete" />
    
    

    Ao realizar um novo teste, você verá que o cabeçalho não existirá mais:

    Você também pode gerenciar cabeçalhos de maneira mais rápida, clicando no botão Adicionar Política (add policy) diretamente da aba de desing:

    Proteger uma API adicionando a política de limite de taxa (limitação)

    Agora que já aprendemos a configurar uma política de saída, vamos configurar uma política de entrada (inbound). No API Manager, podemos adicionar uma proteção para a API de back-end configurando limites de requisições. Por exemplo, você talvez queira limitar um número de chamadas realizadas para a API, para que não seja usada em excesso pelos consumidores ou até evitar ataques DDO’s direto ao seu servidor. Neste exemplo, o limite é definido como 3 chamadas por 15 segundos para cada IP de acesso. Depois de 15 segundos, um desenvolvedor pode repetir a chamada à API.

    Novamente, abra o editor de políticas da sua API, posicione o cursor dentro do elemento <inbound>.

    Na janela à direita, em Políticas de restrição de acesso, clique em + Limit call rate per key (+ Limitar taxa de chamada por IP). Mude o código rate-limit-by-key (no elemento <inbound>) para o código a seguir:

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Request.IpAddress)" />
    
    

    Agora o seu arquivo de políticas deverá se parecer com isto:

    Após salvar o seu arquivo de políticas, vamos testar a nossa API para ver se deu tudo certo. Dentro da aba de testes (conforme mostrado no primeiro artigo), realize 4 requisições seguidas para obter a seguinte resposta:

    Bom, por agora é só! Nos próximos artigos vamos ver um pouco mais sobre depuração e monitoramento das API’s publicadas.

    Um grande abraço! 🙂

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    Clean Code (2ª edição): o que mudou e o que continua valendo

    Dicas Gestão & Produtividade 12 de fevereiro de 20266 Mins Read

    Conheça os tipos de registros DNS: o guia completo sobre A, AAAA, NS, CNAME, MX, PTR, SOA, TXT, SRV, SPF e muito mais

    Dicas 8 de outubro de 20257 Mins Read

    Mais de 200 livros de programação gratuitos em português

    Cursos Dicas 16 de setembro de 202512 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • Context engineering: quando o problema deixa de ser prompt e vira arquitetura
    • Clean Code (2ª edição): o que mudou e o que continua valendo
    • Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha
    • Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis
    • A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia
    Categorias
    • Arquitetura (31)
      • Microsserviços (3)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (93)
      • NoSql (60)
      • Sql (38)
    • Boas práticas (34)
      • Gestão & Produtividade (4)
      • Metodologias Ágeis (6)
    • Cursos (53)
    • Dicas (108)
    • Front-End (92)
    • IA (7)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Código Simples no Facebook
    Código Simples no Facebook
    • Popular
    • Recente

    1000 livros gratuitos sobre programação!

    12 de fevereiro de 2016

    Google lança versão “invisível” do reCAPTCHA!

    10 de março de 2017

    Mini curso de HTML5 oferecido pela Microsoft

    30 de janeiro de 2014

    O que significa ( !important ) na declaração do CSS ?

    5 de fevereiro de 2014

    Programa para supercompactar arquivos. KGB Archiver.

    6 de fevereiro de 2014

    Context engineering: quando o problema deixa de ser prompt e vira arquitetura

    16 de abril de 2026

    Clean Code (2ª edição): o que mudou e o que continua valendo

    12 de fevereiro de 2026

    Sunk Cost em Arquitetura de Software: como evitar que meses de investimento virem uma armadilha

    4 de fevereiro de 2026

    Guia Profissional de Prompting – Domando um ChatGPT Preguiçoso: Como Obter Respostas Completas, Profundas e Confiáveis

    30 de outubro de 2025

    A Anatomia de um Prompt: Como Falar com a IA Como um Profissional de Tecnologia

    30 de outubro de 2025
    Nosso Feed
    • RSS - Posts
    Fique por dentro

    Digite seu endereço de email para assinar este blog e receber notificações de novas publicações por email.

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile