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

0

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! 🙂

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 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. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com