Exercício – Criar assinaturas no Gerenciamento de API do Azure

Concluído

Você pode usar a interface do usuário do Gerenciamento de API do Azure no portal do Azure para criar assinaturas e obter chaves de assinatura para uso em aplicativos cliente.

Suponha que sua empresa de meteorologia tenha decidido disponibilizar seus dados meteorológicos aos clientes que assinam esse serviço e pagam por ele. O requisito crítico é somente permitir acesso aos clientes que receberam uma chave. Como desenvolvedor líder, você precisa criar um gateway de API. Você usará o gateway para publicar uma API RESTful de Clima que expõe um ponto de extremidade da OpenAPI. Agora, você protegerá o ponto de extremidade e alocará uma chave de cliente.

Nesta unidade, você vai:

  • Publicará uma API RESTful de Clima
  • Implantará um gateway do Gerenciamento de API
  • Exporá a API de Clima por meio do ponto de extremidade de gateway
  • Restringirá o acesso com base em uma chave de assinatura

Importante

É preciso ter uma assinatura do Azure para fazer esse exercício, e isso pode gerar encargos. Caso ainda não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

Implantará a API Web de Clima

Você desenvolveu um aplicativo .NET Core que retorna informações meteorológicas. O aplicativo inclui o Swashbuckle para gerar a documentação da OpenAPI.

Para economizar tempo, vamos começar executando um script para hospedar nossa API no Azure. O script executa as seguintes etapas:

  • Criar um Plano do Serviço de Aplicativo do Azure na camada gratuita
  • Criar uma API Web dentro de um Serviço de Aplicativo do Azure, configurada para implantação do Git por meio de um repositório local
  • Definir credenciais de implantação no nível da conta para o aplicativo
  • Configurar o Git localmente
  • Implantar a API Web na instância do Serviço de Aplicativo
  1. Entre no portal do Azure.

  2. Na barra de tarefas do Azure, selecione o ícone do Cloud Shell para abrir o Azure Cloud Shell.

    Screenshot of Cloud Shell icon in taskbar.

  3. Execute o comando git clone a seguir no Azure Cloud Shell para clonar o repositório que contém o código-fonte do nosso aplicativo, bem como o script de instalação do GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Acesse o diretório da pasta do repositório localmente executando o comando cd a seguir.

    cd mslearn-control-authentication-with-apim
    
  5. Como o nome sugere, setup.sh é o script que você executará para criar a API. Ele criará um aplicativo Web público que vai expor uma interface da OpenAPI.

    bash setup.sh
    

    O script tem sete partes e leva cerca de um minuto para ser executado. Observe que, durante a implantação, todas as dependências necessárias para execução do aplicativo são instaladas automaticamente no Serviço de Aplicativo remoto.

    Quando o script for concluído, ele terá duas URLs, uma URL do Swagger e uma URL de exemplo. Você pode usar essas URLs para testar a implantação do aplicativo.

  6. Para testar se o aplicativo foi implantado corretamente, copie e cole a URL do Swagger da saída do Azure Cloud Shell em seu navegador favorito. O navegador deverá exibir a interface do usuário do Swagger do nosso aplicativo e declarar os pontos de extremidade RESTful a seguir:

    • api/weather/{latitude}/{longitude}, que retorna dados meteorológicos para o dia atual na latitude e na longitude especificadas (valores duplos).
    • api/weather/{date}/{latitude}/{longitude}, que retorna dados meteorológicos para o dia especificado (valor de data) na latitude e na longitude especificadas (valores duplos).

    Swagger view.

  7. Por fim, copie e salve a URL de exemplo da saída do Azure Cloud Shell. Essa localização é a URL JSON do Swagger. Você precisará dela posteriormente no exercício.

Implantar um gateway de API

A próxima etapa deste exercício é criar um gateway de API no portal do Azure. No próximo exercício, você usará esse gateway para publicar sua API.

  1. Entre no Portal do Azure.

  2. No menu de recurso do Azure ou na página Início, em Serviços do Azure, selecione Criar um recurso. O painel Criar um recurso será exibido.

  3. No menu de recursos, selecione Integração e, na lista de resultados, escolha Gerenciamento de API. O painel Instalar gateway do Gerenciamento de API será exibido.

  4. Na guia Básico, insira os valores a seguir para cada configuração.

    Configuração Valor
    Detalhes do projeto
    Subscription Selecione sua assinatura.
    Resource group Selecione um grupo de recursos novo ou existente. Um grupo de recursos consiste em um contêiner lógico que armazena os recursos relacionados de uma solução do Azure.
    Detalhes da instância
    Região Selecione uma região disponível.
    Nome do recurso Insira apim-WeatherData<random number>; o número aleatório tem a finalidade de garantir que o nome seja globalmente exclusivo. Anote esse nome de recurso; ele será o nome do gateway de API necessário posteriormente neste exercício.
    Nome do workspace Digite Weather-Company.
    Email do administrador O endereço de email para receber todas as notificações do sistema.
    Tipo de preços
    Tipo de preço Na lista suspensa, selecione Consumption.
  5. Clique em Examinar + criar e após a aprovação da validação clique em Criar.

    Observação

    A camada Consumo fornece implantação rápida para teste e tem um modelo de preço de pagamento por uso. A experiência geral de gerenciamento de API é semelhante a outros tipos de preço.

Você pode exibir o progresso da implantação, junto com os recursos que estão sendo criados.

Importar a API

Após a conclusão da implantação, importe a API de Clima para o gateway do Gerenciamento de API usando o procedimento a seguir.

  1. Selecione Ir para o recurso. É exibido o painel Visão geral do serviço de Gerenciamento de API do seu recurso.

  2. No painel do menu à esquerda, em APIs, selecione APIs. O painel APIs do serviço de Gerenciamento de API é exibido com as seleções de modelo para criar/exibir uma API.

  3. Em Criar com base na definição, selecione OpenAPI. A caixa de diálogo Criar com base na especificação OpenAPI é exibida.

  4. No campo Especificação OpenAPI, cole a URL JSON do Swagger que você salvou anteriormente neste exercício. Quando você pressiona Enter ou seleciona uma área diferente da caixa de diálogo, outros campos serão populados para você. Esses dados são importados da especificação de OpenAPI criada pelo Swagger.

  5. Aceite os padrões para todas as outras configurações e selecione Criar.

     Screenshot of dialog box with swagger.json url highlighted.

A guia Design da API de Dados de Clima exibe todas as operações, que consistem em duas operações GET.

Adicionar uma chave de assinatura para acessar a API de Clima

A etapa final é adicionar uma chave de assinatura à API de Dados de Clima.

  1. No painel do menu à esquerda, em APIs, selecione Assinaturas. O painel Assinaturas para o serviço de Gerenciamento de API é exibido.

  2. Na barra de menus superior, selecione Adicionar assinatura. O painel Nova assinatura é exibido.

    Screenshot showing how to add a new subscription.

  3. Insira os valores a seguir para cada configuração.

    Configuração Valor
    Nome weather-data-subscription
    Nome de exibição Weather Data Subscription
    Permitir rastreamento Sem marca de seleção
    Escopo Na lista suspensa, selecione API.
    API Na lista suspensa, selecione Weather Data.
  4. Selecione Criar. O painel Assinaturas lista duas assinaturas, Assinatura de acesso total interno e sua Assinatura de Dados de Clima.

  5. No final da linha Assinatura de Dados do Clima, selecione as reticências e no menu de contexto selecione Mostrar/ocultar chaves. Os valores de chave Primária e Secundária são exibidos.

  6. Copie a Chave primária da Assinatura de Dados Meteorológicos para sua área de transferência e salve-a em algo como o Bloco de notas. Você precisará dessa chave na próxima etapa.

Testar a chave de assinatura

A API é protegida com uma chave. Agora, testaremos a API sem e com a chave para demonstrar o acesso seguro.

  1. Faça uma solicitação sem passar uma chave de assinatura. No Azure Cloud Shell, execute o seguinte comando cURL. Substitua o espaço reservado [Nome do Gateway] pelo nome do recurso para o gateway da API (apim-WeatherDataNNNN) que você criou na tarefa anterior.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1
    

    Esse comando não tem uma chave de assinatura e deverá retornar um erro 401 Acesso Negado, semelhante ao mostrado a seguir.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Agora execute o comando a seguir. Substitua o espaço reservado [Nome do Gateway] pelo nome do recurso para o gateway da API (apim-WeatherDataNNNN). Além disso, substitua o espaço reservado Chave Primária pela chave primária que você copiou da etapa mostrar/ocultar.

    curl -X GET https://[Name Of Gateway].azure-api.net/api/Weather/53/-1 \
      -H 'Ocp-Apim-Subscription-Key: [Primary Key]'
    

    Se tiver incluído a aspa de fechamento, esse comando deverá resultar em uma resposta bem-sucedida semelhante ao código mostrado a seguir.

    {"mainOutlook":{"temperature":32,"humidity":34},"wind":{"speed":11,"direction":239.0},"date":"2019-05-16T00:00:00+00:00","latitude":53.0,"longitude":-1.0}