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

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

Pré-requisitos

Vá para a sua instância de Gestão de API

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

    Selecionar serviços de gerenciamento de API

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

  1. Na instância do serviço Gerenciamento de API, selecione APIs.
  2. Selecione Demo Conference API na sua lista de APIs.
  3. Selecione a guia Teste , na parte superior da tela.
  4. Selecione a operação GetSpeakers e, em seguida, selecione Enviar.

A resposta original da API deve ser semelhante à seguinte resposta:

Captura de tela da resposta original 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, que ajuda você a configurar muitas políticas sem precisar editar as instruções XML da política diretamente.

  1. Selecione Demo Conference API>Design>Todas as operações.

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

    Captura de ecrã a mostrar a 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 ecrã a mostrar a configuração da política Definir cabeçalhos no portal.

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

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

  6. Após a configuração, dois elementos de política set-header aparecem na seção Processamento de saída.

    Captura de ecrã do Definir políticas de saída de cabeçalhos no portal.

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:

  1. Selecione Demo Conference API>Test.

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

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

    Captura de ecrã dos URLs originais 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 trecho XML de política diretamente à definição de política.

  1. Selecione Demo Conference API>Design>Todas as operações.

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

    Captura de ecrã a mostrar a navegação para o editor de códigos de política de saída no portal.

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

    Captura de tela mostrando mostrar trechos no editor de políticas de saída no portal.

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

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

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

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

  1. Selecione Demo Conference API>Design>Todas as operações.

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

    Captura de ecrã a mostrar a navegação para o editor de códigos de política de entrada no portal.

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

    Captura de tela mostrando mostrar trechos no editor de políticas de entrada no portal.

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

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

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

  1. Selecione Demo Conference API>Test.

  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 ecrã a mostrar cabeçalhos de resposta removidos no portal.

Testar o URL substituído

  1. Selecione Demo Conference API>Test.

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

    Como você pode ver, os URLs são substituídos.

    Captura de ecrã a mostrar URLs substituídos no portal.

Testar o limite de taxa (limitação)

  1. Selecione Demo Conference API>Test.

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

    Captura de tela mostrando muitas solicitações na resposta no portal.

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