Exercício – criar subscrições na Gestão de API do Azure

Concluído

Pode utilizar a interface de utilizador da Gestão de API do Azure no portal do Azure para criar subscrições e obter chaves de subscrição para utilizar nas aplicações cliente.

Imagine que a sua empresa de meteorologia decidiu disponibilizar os respetivos dados meteorológicos a clientes que subscrevem e pagam por este serviço. O requisito fundamental é apenas permitir o acesso a clientes a quem é atribuída uma chave. Como programador principal, tem de criar um gateway de API. Irá utilizar o gateway para publicar uma API RESTful de Meteorologia que expõe um ponto final de OpenAPI. Em seguida, você protegerá o ponto de extremidade e alocará uma chave de cliente.

Nesta unidade, irá:

  • Publicar uma API RESTful de Meteorologia
  • Implementar um gateway de Gestão de API
  • Expor a API de Meteorologia através do ponto final do gateway
  • Restringir o acesso com base numa chave de subscrição

Importante

Precisa da sua própria subscrição do Azure para executar este exercício e poderá incorrer em custos. Se ainda não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Implementar a API Web de Meteorologia

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

Para economizar tempo, vamos começar com um script para alojar a nossa API no Azure. O script realiza os passos seguintes:

  • Criar um plano do Serviço de Aplicações do Azure no escalão gratuito
  • Criar uma API Web no Serviço de Aplicações do Azure, configurada para implementação do Git a partir de um repositório local
  • Definir as credenciais de implementação de nível de conta para a nossa aplicação
  • Configurar o Git localmente
  • Implementar a nossa API Web na nossa instância do Serviço de Aplicações
  1. Inicie sessão 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 seguinte comando git clone no Azure Cloud Shell para clonar o repositório que contém a origem do nosso aplicativo e nosso script de instalação do GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Vá para o diretório da pasta repo localmente executando o seguinte comando cd.

    cd mslearn-control-authentication-with-apim
    
  5. Como o próprio nome sugere, setup.sh é o script que você executará para criar nossa API. Ele gerará um aplicativo Web público que expõe uma interface OpenAPI.

    bash setup.sh
    

    O roteiro 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 que nosso aplicativo seja executado são instaladas automaticamente no Serviço de Aplicativo remoto.

    Quando o script terminar, ele gerará dois URLs, um URL Swagger e um URL de exemplo. Você pode usar essas URLs para testar a implantação do aplicativo.

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

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

    Swagger view.

  7. Por fim, copie e salve a URL de exemplo da saída do Azure Cloud Shell. Este local é a URL JSON do Swagger. Você precisará dele mais tarde neste exercício.

Implementar um gateway de API

O passo seguinte neste exercício é criar um gateway de API no portal do Azure. No próximo exercício, irá utilizar este gateway para publicar a sua API.

  1. Inicie sessão no Portal do Azure.

  2. No menu de recursos do Azure ou na página inicial , em Serviços do Azure, selecione Criar um recurso. O painel Criar um recurso é exibido.

  3. No menu de recursos, selecione Integração e, nos resultados, selecione Gerenciamento de API. O painel Install API Management gateway (Instalar gateway de gerenciamento de API) é exibido.

  4. Na guia Noções básicas, insira os seguintes valores para cada configuração.

    Definição valor
    Detalhes do projeto
    Subscrição Selecione a sua subscrição.
    Grupo de recursos Selecione um grupo de recursos novo ou existente. Um grupo de recursos é um contêiner lógico que contém recursos relacionados para uma solução do Azure.
    Detalhes da instância
    Região Selecione uma região disponível.
    Nome do recurso Digite apim-WeatherData<random number>: o número aleatório é para garantir que o nome seja globalmente único. Anote o nome deste recurso; será o nome do gateway de API que você precisará dele mais tarde neste exercício.
    Nome da área de trabalho Introduzir Weather-Company.
    E-mail do administrador O endereço de e-mail para receber todas as notificações do sistema.
    Escalão de preço
    Escalão de preço Na lista suspensa, selecione Consumption.
  5. Selecione Rever + criar e, após a validação ser aprovada, selecione Criar.

    Nota

    A camada Consumo fornece implantação rápida para testes e tem um modelo de preços de pagamento por uso. A experiência geral de gerenciamento de API é semelhante aos outros níveis de preços.

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

Importar a API

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

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

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

  3. Em Criar a partir da definição, selecione OpenAPI. A caixa de diálogo Criar a partir da especificação OpenAPI é exibida.

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

  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 meteorológicos exibe todas as operações, que consistem em duas operações GET.

Adicionar uma chave de subscrição para aceder à API de Meteorologia

A etapa final é adicionar uma chave de assinatura para a API de dados meteorológicos.

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

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

    Screenshot showing how to add a new subscription.

  3. Insira os seguintes valores para cada configuração.

    Definição valor
    Nome weather-data-subscription
    Nome a apresentar Weather Data Subscription
    Permitir rastreio Sem marca de verificação
    Âmbito Na lista suspensa, selecione API.
    API Na lista suspensa, selecione Dados meteorológicos.
  4. Selecione Criar. O painel Subscrições lista duas subscrições, a Subscrição de acesso total incorporada e a sua Subscrição de Dados meteorológicos.

  5. No final da linha Subscrição de Dados meteorológicos , selecione as reticências e, no menu de contexto, selecione Mostrar/ocultar chaves. Os valores das chaves Primária e Secundária são exibidos.

  6. Copie a chave primária da Subscrição de dados meteorológicos para a área de transferência e guarde-a em algo como o Bloco de Notas. Você precisará dessa chave na próxima etapa.

Testar a chave de subscrição

A API é protegida com uma chave. Agora, vamos testar a API sem e com a chave para demonstrar 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 [Name Of Gateway] pelo nome do recurso para o gateway de API (apim-WeatherDataNNNN) que você criou na tarefa anterior.

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

    Este comando não tem chave de subscrição e deve devolver um erro de Acesso Negado 401, semelhante ao seguinte.

    { "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 seguinte comando. Substitua o espaço reservado Name Of Gateway pelo nome do recurso para o gateway de API (apim-WeatherDataNNNN). Além disso, substitua o espaço reservado para Chave Primária pela chave primária copiada 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 você incluiu a cotação de fechamento, esse comando deve resultar em uma resposta bem-sucedida semelhante ao código 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}