Tutorial: Transformar e proteger sua API
APLICA-SE A: todas as camadas do Gerenciamento de API
Neste tutorial, você aprende a configurar políticas comuns para transformar sua API. É aconselhável transformar sua API para que ela não revele informações de back-back privado. Transformar uma API pode ajudá-lo a ocultar as informações da pilha de tecnologia em execução no back-end ou ocultar as URLs originais que aparecem no corpo da resposta HTTP da API.
Este tutorial também explica como proteger sua API de back-end configurando uma política de limite de taxa para que a API não seja excessivamente utilizada pelos desenvolvedores. Para obter mais opções de política, consulte Políticas de Gerenciamento de API.
Observação
Por padrão, o Gerenciamento de API configura uma política global forward-request
. A política forward-request
é necessária para que o gateway conclua uma solicitação para um serviço de back-end.
Neste tutorial, você aprenderá como:
- Transformar uma API para retirar os cabeçalhos de resposta
- Substituir as URLs originais no corpo da resposta da API por URLs de gateway de API Management
- Proteger uma API adicionando uma política de limite de taxa (limitação)
- Testar as transformações
Pré-requisitos
- Conheça a terminologia do Gerenciamento de API do Azure.
- Compreenda o conceito de políticas no Gerenciamento de API do Azure.
- Conclua o início rápido a seguir: Criar uma instância do Gerenciamento de API do Azure.
- Além disso, conclua o seguinte tutorial: Importar e publicar sua primeira API.
Navegar até a instância de Gerenciamento de API
No portal do Azure, pesquise e selecione serviços de Gerenciamento de API.
Na página Serviços de Gerenciamento de API, selecione a sua instância de Gerenciamento de API.
Transformar uma API para retirar os cabeçalhos de resposta
Esta seção mostra como ocultar os cabeçalhos HTTP que você não deseja mostrar aos usuários. Por exemplo, exclua os seguintes cabeçalhos na resposta HTTP:
- X-Powered-By
- X-AspNet-Version
Testar a resposta original
Para ver a resposta original:
- Em sua instância de serviço do Gerenciamento de API, selecione APIs.
- Selecione API de Conferência de Demonstração em sua lista de APIs.
- Selecione a guia Testar na parte superior da tela.
- Selecione a operação GetSpeakers e selecione Enviar.
A resposta original da API deve se parecer com a seguinte resposta:
Como você pode ver, a resposta inclui os cabeçalhos X-AspNet-Version e X-Powered-By.
Definir a política de transformação
Este exemplo mostra como usar o editor de políticas baseado em formulário, o que ajuda a configurar muitas políticas sem precisar editar diretamente as instruções XML de política.
Selecione API de Conferência de Demonstração>Design>Todas as operações.
Na seção Processamento de saída, selecione + Adicionar política.
Na janela Adicionar política de saída, selecione Definir cabeçalhos.
Para configurar a política de Definir cabeçalhos, faça o seguinte:
- Em Nome, insira X-Powered-By.
- Deixar Valor vazio. Se um valor aparecer na lista suspensa, exclua-o.
- Em Ação, selecione excluir.
- Selecione Salvar.
Repita as duas etapas anteriores para adicionar uma política Definir cabeçalhos que exclui o cabeçalho Versão X-AspNet:
Após configurar dois elementos de política de definir cabeçalho aparecem na seção Processamento de saída.
Substituir as URLs originais no corpo da resposta da API por URLs de gateway de API Management
Essa seção mostra como ocultar as URLs originais que aparecem no corpo da resposta HTTP da API com as URLs do gateway de Gerenciamento de API. É aconselhável ocultar as URLs de back-end originais dos usuários.
Testar a resposta original
Para ver a resposta original:
Selecione API de Conferência de Demonstração>Testar.
Selecione a operação GetSpeakers e selecione Enviar.
Como você pode ver, a resposta inclui as URLs de back-end originais:
Definir a política de transformação
Neste exemplo, você usa o editor de código de política para adicionar o snippet XML de política diretamente à definição de política.
Selecione API de Conferência de Demonstração>Design>Todas as operações.
Na seção Processamento de saída, selecione o ícone do editor de código (</>).
Posicione o cursor dentro do elemento
<outbound>
em uma linha em branco. Em seguida, selecione Mostrar snippets no canto superior direito da tela.Na janela à direita, em Políticas de transformação, selecione Mascarar URLs no conteúdo.
O elemento
<redirect-content-urls />
é adicionado ao cursor.Selecione Salvar.
Proteger uma API adicionando a política de limite de taxa (limitação)
Esta seção mostra como adicionar proteção à API de back-end configurando limites de taxa para que a API não seja excessivamente utilizada pelos desenvolvedores. Neste exemplo, o limite é definido como três chamadas por 15 segundos para cada ID de assinatura. Depois de 15 segundos, um desenvolvedor pode repetir a chamada a uma API.
Selecione API de Conferência de Demonstração>Design>Todas as operações.
Na seção Processamento de entrada, selecione o ícone do editor de código (<\>).
Posicione o cursor dentro do elemento
<inbound>
em uma linha em branco. Em seguida, selecione Mostrar snippets no canto superior direito da tela.Na janela à direita, em Políticas de restrição de acesso, clique em Limitar taxa de chamada por chave.
O elemento
<rate-limit-by-key />
é adicionado ao cursor.Modifique o código
<rate-limit-by-key />
no elemento<inbound>
para o seguinte código. Em seguida, selecione Salvar.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testar as transformações
Nesse ponto, se você examinar o código no editor de códigos, suas políticas serão semelhantes ao código a seguir:
<policies>
<inbound>
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<set-header name="X-Powered-By" exists-action="delete" />
<set-header name="X-AspNet-Version" exists-action="delete" />
<redirect-content-urls />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
O restante desta seção testa as transformações de política que você definir neste artigo.
Testar os cabeçalhos de resposta retirados
Selecione API de Conferência de Demonstração>Testar.
Selecione a operação GetSpeakers e selecione Enviar.
Como você pode ver,os cabeçalhos X-AspNet-Version e X-Powered-By foram removidos:
Testar a URL substituída
Selecione API de Conferência de Demonstração>Testar.
Selecione a operação GetSpeakers e selecione Enviar.
Como você pode ver, as URLs são substituídas.
Testar o limite de taxa (limitação)
Selecione API de Conferência de Demonstração>Testar.
Selecione a operação GetSpeakers. Selecione Enviar quatro vezes seguidas.
Depois de enviar a solicitação quatro vezes, você obtém a resposta 429 Excesso de solicitações.
Aguarde 15 segundos ou mais e selecione Enviar novamente. Neste momento, você deve obter uma resposta 200 OK.
Resumo
Neste tutorial, você aprendeu a:
- Transformar uma API para retirar os cabeçalhos de resposta
- Substituir as URLs originais no corpo da resposta da API por URLs de gateway de API Management
- Proteger uma API adicionando a política de limite de taxa (limitação)
- Testar as transformações
Próximas etapas
Prosseguir para o próximo tutorial: