Ejercicio: Creación de suscripciones en Azure API Management

Completado

Puede utilizar la interfaz de usuario de Azure API Management en Azure Portal para crear suscripciones y obtener claves de suscripción para usarlas en las aplicaciones cliente.

Imagine que la empresa meteorológica ha decidido poner sus datos meteorológicos a disposición de los clientes que se suscriben y pagan por este servicio. El requisito fundamental es que solo se permita el acceso a los clientes a los que se les ha asignado una clave. Como desarrollador jefe, tendrá que crear una puerta de enlace de API. Usará la puerta de enlace para publicar una API Weather RESTful que exponga un punto de conexión OpenAPI. Después, protegerá el punto de conexión y asignará una clave de cliente.

En esta unidad aprenderá a:

  • Publicar una API Weather RESTful
  • Implementar una puerta de enlace de API Management
  • Exponer la API Weather a través del punto de conexión de la puerta de enlace
  • Restringir el acceso en función de una clave de suscripción

Importante

Para realizar este ejercicio, se necesita una suscripción de Azure propia y puede que se apliquen cargos. Si aún no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.

Implementar la API web Weather

Ha desarrollado una aplicación .NET Core que devuelve información meteorológica. La aplicación incluye Swashbuckle para generar documentación de OpenAPI.

Para ahorrar tiempo, empiece por ejecutar un script para hospedar la API en Azure. Este script lleva a cabo los pasos siguientes:

  • Crea un plan de Azure App Service en el nivel Gratis.
  • Crea una API web en Azure App Service, configurada para la implementación de Git desde un repositorio local.
  • Establece las credenciales de implementación de nivel de cuenta para la aplicación.
  • Configura Git localmente.
  • Implementa la API web en nuestra instancia de App Service.
  1. Inicie sesión en Azure Portal.

  2. En la barra de tareas de Azure, seleccione el icono de Cloud Shell para abrir Azure Cloud Shell.

    Screenshot of Cloud Shell icon in taskbar.

  3. Ejecute el siguiente comando git clone en Azure Cloud Shell para clonar el repositorio que contiene el código fuente de nuestra aplicación y el script de configuración de GitHub.

    git clone https://github.com/MicrosoftDocs/mslearn-control-authentication-with-apim.git
    
  4. Para ir al directorio de la carpeta del repositorio de forma local, ejecute el siguiente comando cd.

    cd mslearn-control-authentication-with-apim
    
  5. Como sugiere su nombre, setup.sh es el script que se va a ejecutar para crear la API. Generará una aplicación web pública que expone una interfaz de OpenAPI.

    bash setup.sh
    

    El script tiene siete partes y tarda aproximadamente un minuto en ejecutarse. Observe que, durante la implementación, todas las dependencias necesarias para que la aplicación se ejecute se instalan de forma automática en la instancia remota de App Service.

    Cuando el script ha finalizado, genera dos direcciones URL: una dirección URL de Swagger y una dirección URL de ejemplo. Puede usar estas direcciones URL para probar la implementación de la aplicación.

  6. Para probar que la aplicación se ha implementado correctamente, copie y pegue la dirección URL de Swagger de la salida de Azure Cloud Shell en su explorador favorito. El explorador debe mostrar la interfaz de usuario de Swagger para la aplicación y declarar los siguientes puntos de conexión de RESTful:

    • api/weather/{latitud}/{longitud}, que devuelve datos meteorológicos para el día actual dadas la latitud y longitud especificadas (valores dobles).
    • api/weather/{fecha}/{latitud}/{longitud}, que devuelve datos meteorológicos para el día especificado (valor de fecha) en la latitud y longitud especificadas (valores dobles).

    Swagger view.

  7. Por último, copie y guarde la dirección URL de ejemplo de la salida de Azure Cloud Shell. Esta ubicación es la dirección URL de JSON de Swagger. La necesitará más adelante en este ejercicio.

Implementación de una puerta de enlace de API

El siguiente paso de este ejercicio consiste en crear una puerta de enlace de API en Azure Portal. En el ejercicio siguiente, usará esta puerta de enlace para publicar la API.

  1. Inicie sesión en Azure Portal.

  2. En el menú de recursos de Azure o la página Inicio, en Servicios de Azure, seleccione Crear un recurso. Aparecerá el panel Crear un recurso.

  3. En el menú de recursos, seleccione Integración y, en los resultados, seleccione API Management. Aparece el panel Instalar puerta de enlace de API Management.

  4. En la pestaña Aspectos básicos, escriba los valores siguientes para cada opción.

    Configuración Value
    Detalles del proyecto
    Subscription Seleccione su suscripción.
    Resource group Seleccione un nuevo grupo de recursos o uno ya existente. Un grupo de recursos es un contenedor que incluye los recursos relacionados para una solución de Azure.
    Detalles de instancia
    Region Seleccione una región disponible.
    Nombre del recurso Escriba apim-WeatherData<random number>; el número aleatorio se usa para garantizar que el nombre sea único globalmente. Anote este nombre de recurso; será el nombre de la puerta de enlace de API que necesitará más adelante en este ejercicio.
    Nombre del área de trabajo Escriba Weather-Company.
    Correo electrónico del administrador La dirección de correo electrónico para recibir todas las notificaciones del sistema.
    Plan de tarifa
    Plan de tarifa Seleccione Consumption en la lista desplegable.
  5. Seleccione Revisar y crear y, una vez que se haya superado la validación, seleccione Crear.

    Nota:

    El nivel Consumo proporciona una implementación rápida para la realización de pruebas y tiene un modelo de precios de pago por uso. La experiencia global de API Management es similar a la de los otros planes de tarifa.

Puede ver el progreso de la implementación, junto con los recursos que se están creando.

Importación de la API

Después de finalizar la implementación, importe Weather API en la puerta de enlace de API Management mediante el procedimiento siguiente.

  1. Haga clic en Go to resource (Ir al recurso). Aparece el panel Información general del servicio API Management para el recurso.

  2. En el panel de menús de la izquierda, en API, seleccione API. Aparece el panel API del servicio API Management, con selecciones de plantilla para crear o visualizar una API.

  3. En Crear a partir de la definición, seleccione OpenAPI. Aparece el cuadro de diálogo Crear a partir de la especificación OpenAPI.

  4. En el campo Especificación OpenAPI, pegue la dirección URL Swagger JSON que guardó antes en el ejercicio. Cuando presione Entrar o seleccione un área diferente del cuadro de diálogo, se rellenarán automáticamente otros campos. Estos datos se importan de la especificación OpenAPI que ha creado Swagger.

  5. Acepte los valores predeterminados para el resto de opciones y seleccione Crear.

     Screenshot of dialog box with swagger.json url highlighted.

La pestaña Diseño de la API de datos Weather muestra todas las operaciones, que constan de dos operaciones Get.

Adición de una clave de suscripción para acceder a la API Weather

El último paso consiste en agregar una clave de suscripción para la API de datos Weather.

  1. En el panel de menús de la izquierda, en API, seleccione Suscripciones. Se abre el panel Suscripciones para el servicio API Management.

  2. En la barra de menú superior, seleccione Agregar suscripción. Aparece el panel Nueva suscripción.

    Screenshot showing how to add a new subscription.

  3. Escriba los valores siguientes para cada opción.

    Configuración Value
    Nombre weather-data-subscription
    Nombre para mostrar Weather Data Subscription
    Permitir seguimiento Ninguna marca de verificación
    Ámbito En la lista desplegable, seleccione API.
    API En la lista desplegable, seleccione Weather Data.
  4. Seleccione Crear. En el panel Suscripciones se muestran dos suscripciones: la Suscripción de acceso total integrado y la Suscripción Weather Data.

  5. Al final de la fila Weather Data Subscription (Suscripción a Weather Data), seleccione los puntos suspensivos y, en el menú contextual, elija Mostrar u ocultar claves. Se muestran los valores de clave principal y secundaria.

  6. Copie la clave principal de la suscripción a Weather Data en el Portapapeles y guárdela en el Bloc de notas, por ejemplo. Necesitará esta clave en el paso siguiente.

Prueba de la clave de suscripción

La API está protegida con una clave. Ahora, probaremos la API con y sin la clave para demostrar el acceso seguro.

  1. Realice una solicitud sin pasar una clave de suscripción. En Azure Cloud Shell, ejecute el siguiente comando cURL. Sustituya el marcador de posición [Nombre de la puerta de enlace] por el nombre del recurso de la puerta de enlace de API (apim-WeatherDataNNNN) que creó en la tarea anterior.

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

    Este comando no tiene una clave de suscripción y devolverá un error 401 Acceso denegado, parecido al siguiente.

    { "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }
    
  2. Ahora, ejecute el comando siguiente. Sustituya el marcador de posición [Nombre de la puerta de enlace] por el nombre del recurso de la puerta de enlace de API (apim-WeatherDataNNNN). Además, sustituya el marcador de posición Clave principal por la clave principal que copió del paso mostrar u ocultar.

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

    Si incluyó las comillas de cierre, este comando debe dar como resultado a una respuesta correcta parecida al código siguiente.

    {"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}