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 adicionar proteção à 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

Políticas 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:

Resposta original da API

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.

    Navegue até a política de saída

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

    Definir política de cabeçalho HTTP

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

    1. Em Nome, insira X-Powered-By. Em Ação, selecione excluir.
    2. Selecione + Adicionar cabeçalho.
    3. Em Nome, insira X-AspNet-Version. Em Ação, selecione excluir.

    Definir cabeçalho HTTP

  5. Selecione Guardar. Dois elementos da 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:

  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:

    URLs originais em resposta

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 (</>).

    Navegue até o editor de código de política de saída

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

    Selecionar mostrar trechos

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

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

    Mascarar URLs em conteúdos

  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 (</>).

    Navegue até a política de entrada

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

    Definir a política de entrada

  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.

    Selecione limitar a taxa de chamadas por chave

  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 foram removidos:

    Cabeçalhos de resposta removidos

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.

    URLs substituídos

Testar o limite de taxa (limitação)

  1. Selecione Demo Conference API>Test.

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

    Depois de enviar a solicitação três vezes, você recebe a resposta 429 Solicitações Demais .

    Demasiados pedidos

  3. Aguarde 15 segundos ou mais e selecione Enviar novamente. Neste momento, deve obter uma resposta 200 OK.

Próximos passos

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

Avance para o tutorial seguinte: