Tutorial: Transforme e proteja sua API
APLICA-SE A: Todas as camadas de gerenciamento de API
Neste tutorial, você aprenderá sobre como configurar políticas comuns para transformar sua API. Talvez você queira transformar sua API para que ela não revele informações privadas de back-end. Transformar uma API pode ajudá-lo a ocultar as informações da pilha de tecnologia que estão sendo executadas 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 usada em excesso pelos desenvolvedores. Para obter mais opções de política, consulte Políticas de gerenciamento de API.
Nota
Por padrão, o Gerenciamento de API configura uma política global forward-request
. A forward-request
política é necessária para que o gateway conclua uma solicitação para um serviço de back-end.
Neste tutorial, irá aprender a:
- Transformar uma API para remover os cabeçalhos de resposta
- Substitua URLs originais no corpo da resposta da API por URLs do gateway de Gerenciamento de API
- Proteger uma API adicionando uma política de limite de taxa (limitação)
- Testar as transformações
Pré-requisitos
- Conhecer a terminologia da Gestão de API do Azure.
- Compreender o conceito das políticas da Gestão de API do Azure.
- Conclua o guia de início rápido seguinte: Criar uma instância da Gestão de API do Azure.
- Conclua também o tutorial seguinte: Importar e publicar a sua primeira API.
Vá para a sua instância de Gestão de API
No portal do Azure, procure e selecione serviços de Gerenciamento de API.
Na página Serviços de Gerenciamento de API, selecione sua instância de Gerenciamento de API.
Transformar uma API para remover 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:
- Na instância do serviço Gerenciamento de API, selecione APIs.
- Selecione Demo Conference API na sua lista de APIs.
- Selecione a guia Teste , na parte superior da tela.
- Selecione a operação GetSpeakers e, em seguida, selecione Enviar.
A resposta original da API deve ser semelhante à 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, que ajuda você a configurar muitas políticas sem precisar editar as instruções XML da política diretamente.
Selecione Demo Conference API>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 Definir cabeçalhos, faça o seguinte:
- Em Nome, insira X-Powered-By.
- Deixe Valor vazio. Se um valor aparecer na lista suspensa, exclua-o.
- Em Ação, selecione excluir.
- Selecione Guardar.
Repita as duas etapas anteriores para adicionar uma política set headers que exclui o cabeçalho X-AspNet-Version :
Após a configuração, dois elementos de política set-header aparecem na seção Processamento de saída.
Substitua URLs originais no corpo da resposta da API por URLs do gateway de Gerenciamento de API
Esta seção mostra como substituir URLs originais que aparecem no corpo da resposta HTTP da API por URLs de gateway de Gerenciamento de API. Talvez você queira ocultar as URLs de back-end originais dos usuários.
Testar a resposta original
Para ver a resposta original:
Selecione Demo Conference API>Test.
Selecione a operação GetSpeakers e, em seguida, 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 trecho XML de política diretamente à definição de política.
Selecione Demo Conference API>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
<outbound>
elemento em uma linha em branco. Em seguida, selecione Mostrar trechos no canto superior direito da tela.Na janela direita, em Políticas de transformação, selecione Mascarar URLs no conteúdo.
O
<redirect-content-urls />
elemento é adicionado no cursor.Selecione Guardar.
Proteger uma API ao adicionar a política de limite de taxas (limitação)
Esta seção mostra como adicionar proteção à sua API de back-end configurando limites de taxa, para que a API não seja usada em excesso pelos desenvolvedores. Neste exemplo, o limite é definido como três chamadas por 15 segundos para cada ID de assinatura. Após 15 segundos, um desenvolvedor pode tentar chamar uma API novamente.
Selecione Demo Conference API>Design>Todas as operações.
Na seção Processamento de entrada, selecione o ícone do editor de código (</>).
Posicione o cursor dentro do
<inbound>
elemento em uma linha em branco. Em seguida, selecione Mostrar trechos no canto superior direito da tela.Na janela direita, em Políticas de restrição de acesso, selecione Limitar taxa de chamadas por chave.
O
<rate-limit-by-key />
elemento é adicionado no cursor.Modifique seu
<rate-limit-by-key />
código no elemento para o<inbound>
código a seguir. Em seguida, selecione Guardar.<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
Testar as transformações
Neste ponto, se você examinar o código no editor de códigos, suas políticas se parecerão com o seguinte código:
<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 resto desta secção testa as transformações de política que definiu neste artigo.
Testar os cabeçalhos de resposta removidos
Selecione Demo Conference API>Test.
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 o URL substituído
Selecione Demo Conference API>Test.
Selecione a operação GetSpeakers e selecione Enviar.
Como você pode ver, os URLs são substituídos.
Testar o limite de taxa (limitação)
Selecione Demo Conference API>Test.
Selecione a operação GetSpeakers. Selecione Enviar quatro vezes seguidas.
Depois de enviar a solicitação quatro vezes, você recebe a resposta 429 Solicitações Demais .
Aguarde 15 segundos ou mais e selecione Enviar novamente. Neste momento, deve obter uma resposta 200 OK.
Resumo
Neste tutorial, ficou a saber como:
- Transformar uma API para remover os cabeçalhos de resposta
- Substitua URLs originais no corpo da resposta da API por URLs do gateway de Gerenciamento de API
- Proteger uma API ao adicionar a política de limite de taxas (limitação)
- Testar as transformações
Próximos passos
Avance para o tutorial seguinte: