Compartilhar via


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

Captura de tela das políticas do Gerenciamento de API no portal.

Pré-requisitos

Navegar até a instância de Gerenciamento de API

  1. No portal do Azure, pesquise e selecione serviços de Gerenciamento de API.

    Selecione Serviços de Gerenciamento de API

  2. Na página Serviços de Gerenciamento de API, selecione a sua instância 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:

  1. Em sua instância de serviço do Gerenciamento de API, selecione APIs.
  2. Selecione API de Conferência de Demonstração em sua lista de APIs.
  3. Selecione a guia Testar na parte superior da tela.
  4. Selecione a operação GetSpeakers e selecione Enviar.

A resposta original da API deve se parecer com a seguinte resposta:

Captura de tela da resposta da API no portal.

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.

  1. Selecione API de Conferência de Demonstração>Design>Todas as operações.

  2. Na seção Processamento de saída, selecione + Adicionar política.

    Captura de tela da navegação para a política de saída no portal.

  3. Na janela Adicionar política de saída, selecione Definir cabeçalhos.

    Captura de tela da configuração de uma política de Definir cabeçalhos no portal.

  4. Para configurar a política de Definir cabeçalhos, faça o seguinte:

    1. Em Nome, insira X-Powered-By.
    2. Deixar Valor vazio. Se um valor aparecer na lista suspensa, exclua-o.
    3. Em Ação, selecione excluir.
    4. Selecione Salvar.
  5. Repita as duas etapas anteriores para adicionar uma política Definir cabeçalhos que exclui o cabeçalho Versão X-AspNet:

  6. Após configurar dois elementos de política de definir cabeçalho aparecem na seção Processamento de saída.

    Captura de tela das políticas de saída Definir cabeçalhos no portal.

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:

  1. Selecione API de Conferência de Demonstração>Testar.

  2. Selecione a operação GetSpeakers e selecione Enviar.

    Como você pode ver, a resposta inclui as URLs de back-end originais:

    Captura de tela das URLs em resposta no portal.

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.

  1. Selecione API de Conferência de Demonstração>Design>Todas as operações.

  2. Na seção Processamento de saída, selecione o ícone do editor de código (</>).

    Captura de tela da navegação para o editor de código política de saída no portal.

  3. Posicione o cursor dentro do elemento <outbound> em uma linha em branco. Em seguida, selecione Mostrar snippets no canto superior direito da tela.

    Captura de tela da seleção mostrando snippets no editor de política de saída no portal.

  4. Na janela à direita, em Políticas de transformação, selecione Mascarar URLs no conteúdo.

    O elemento <redirect-content-urls /> é adicionado ao cursor.

    Captura de tela da inserção de URLs de máscara na política de conteúdo no portal.

  5. 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.

  1. Selecione API de Conferência de Demonstração>Design>Todas as operações.

  2. Na seção Processamento de entrada, selecione o ícone do editor de código (<\>).

    Captura de tela da navegação para o editor de código de política de entrada no portal.

  3. Posicione o cursor dentro do elemento <inbound> em uma linha em branco. Em seguida, selecione Mostrar snippets no canto superior direito da tela.

    Captura de tela da seleção mostrando snippets no editor de política de entrada no portal.

  4. 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.

    Captura de tela da inserção da taxa de chamada de limite por política de chave no portal.

  5. 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

  1. Selecione API de Conferência de Demonstração>Testar.

  2. Selecione a operação GetSpeakers e selecione Enviar.

    Como você pode ver,os cabeçalhos X-AspNet-Version e X-Powered-By foram removidos:

    Captura de tela mostrando cabeçalhos de resposta despojados no portal.

Testar a URL substituída

  1. Selecione API de Conferência de Demonstração>Testar.

  2. Selecione a operação GetSpeakers e selecione Enviar.

    Como você pode ver, as URLs são substituídas.

    Captura de tela mostrando URLs substituídas no portal.

Testar o limite de taxa (limitação)

  1. Selecione API de Conferência de Demonstração>Testar.

  2. Selecione a operação GetSpeakers. Selecione Enviar três vezes seguidas.

    Depois de enviar a solicitação três vezes, você obtém a resposta 429 Muitas solicitações.

    Captura de tela mostrando Muitas Solicitações na resposta no portal.

  3. 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: