Ejercicio: Eliminación de la información del encabezado

Completado

Las empresas que publican API web a menudo necesitan controlar cuidadosamente los encabezados HTTP que sus API devuelven, preferiblemente sin necesidad de tener que volver a escribir el código fuente de la API.

El gobierno ha decidido compartir los datos censales con sus agencias mediante API RESTful. Los requisitos esenciales son que los datos se compartan de forma segura y se puedan modificar fácilmente para facilitar una integración rápida. Como desarrollador jefe, tendrá que crear una puerta de enlace de API. Usará la puerta de enlace para publicar una API RESTful del censo que exponga un punto de conexión OpenAPI con estándares de seguridad modernos.

Aquí podrá:

  • Publicar una API RESTful del censo.
  • Implementar una puerta de enlace de API Management.
  • Exponer la API del censo a través del punto de conexión de la puerta de enlace.
  • Quite un encabezado de la respuesta.

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.

Implementación de la API web de censo

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

Para ahorrar tiempo, vamos a comenzar ejecutando un script para hospedar nuestra API RESTful 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, la cual está configurada para la implementación de Git desde un repositorio local.
  • Establece las credenciales de implementación a nivel de la 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 comando git clone siguiente en Cloud Shell para clonar el repositorio que contiene el origen de la aplicación:

    git clone https://github.com/MicrosoftDocs/mslearn-protect-apis-on-api-management.git
    
  4. Para ir a la carpeta del repositorio localmente, ejecute el siguiente comando:

    cd mslearn-protect-apis-on-api-management
    
  5. Como su nombre indica, setup.sh es el script que ejecutará para crear la API de prueba. Este script genera una aplicación web pública que expone una interfaz de OpenAPI:

    bash setup.sh
    

    El script tarda aproximadamente un minuto en ejecutarse. Cuando finaliza, el script muestra dos direcciones URL que se pueden usar para probar la implementación de la aplicación. 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.

  6. Para probar que la aplicación se ha implementado correctamente, copie y pegue la primera URL de la salida de Cloud Shell en el explorador. 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/census: devuelve un censo y las personas asociadas.
    • api/census/{censusYear}: devuelve un censo y las personas asociadas durante el año especificado.
    • api/people/{reference}: devuelve información detallada sobre una persona en concreto.

    Screenshot of the Swagger page for the API, showing the RESTful endpoints.

  7. Para finalizar, copie la última dirección URL de la salida de Cloud Shell. Esta dirección URL es la dirección URL del archivo JSON de Swagger que 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 la siguiente sección, usará esta puerta de enlace para publicar la API:

  1. Inicie sesión en Azure Portal.

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

  3. En el panel de menú izquierdo, seleccione Integración y escriba API Management en el cuadro de búsqueda Buscar en servicios y Marketplace. Seleccione la tarjeta API Management en los resultados y elija Crear para abrir el panel Crear servicio 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 la 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 Introduzca apim-CensusData<random number>, y reemplace random number por una serie propia de números para asegurarse de que el nombre es único globalmente.
    Nombre de la organización Escriba Government-Census. El nombre de la organización que se va a usar en el portal para desarrolladores y en las notificaciones de correo electrónico (el portal para desarrolladores y las notificaciones no están disponibles en todos los niveles de servicio).
    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 (99.95% SLA) en la lista desplegable.

    Screenshot of the completed settings on the Basics tab of the Create API Management service screen.

    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.

  5. Seleccione Revisar + crear. Una vez pasada la validación, seleccione Crear. La implementación puede tardar varios minutos. Una vez que se haya completado la implementación, verá que la instancia de API Management aparece en los recursos de Azure. Seleccione Ir al recurso para ver el panel del servicio API Management.

Importación de la API

Ahora, importe la API de censo en la puerta de enlace de API Management:

  1. En el panel de menús izquierdo de la instancia de API Management, en API, seleccione API y, a continuación, + Agregar API.

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

  3. En el campo Especificación OpenAPI, pegue la dirección URL JSON de swagger que ha guardado antes en el ejercicio.

    Screenshot of the Create from OpenAPI specification dialog box with the swagger JSON URL entered.

    Nota:

    Observará que, cuando presiona la tecla de tabulación para salir del cuadro, algunos de los otros campos se rellenan automáticamente. Esto se debe a que se ha usado OpenAPI, que especifica la mayoría de los detalles de conexión necesarios.

  4. Deje el resto de opciones en sus valores predeterminados y, luego, seleccione Crear.

Prueba de la API

Vamos a ver qué datos se devuelven desde la API de forma predeterminada:

  1. En el menú de Azure Portal, o bien en la página Inicio, seleccione Todos los recursos y, luego, seleccione la instancia de API Management.

  2. En el panel de menús de la izquierda, en API, seleccione API y, en el panel central, seleccione Datos del censo.

  3. En la barra de menús superior, seleccione la pestaña Prueba y después la operación GetLatestCensus.

  4. Seleccione Enviar.

    Screenshot of the test results for the GetLatestCensus operation, showing the default Response content.

  5. Observe que aparece x-powered-by en la respuesta y muestra que el marco es ASP.NET.

Eliminación de encabezados

Ahora se agrega una directiva para quitar el encabezado x-powered-by de las respuestas enviadas por la API:

  1. Vuelva a seleccionar Datos del censo y, en la barra de menús superior, seleccione la pestaña Diseño.

  2. Seleccione Todas las operaciones y, después, en la sección Procesamiento de salida, seleccione el icono </>. Aparece el editor XML de directivas.

    Screenshot of the Design tab with the Policies icon highlighted in the Outbound processing section.

  3. Reemplace la etiqueta <outbound> predeterminada por este código:

    <outbound>
       <set-header name="x-powered-by" exists-action="delete" />
       <base />
    </outbound>
    
  4. Seleccione Guardar.

Prueba de la eliminación de encabezados

Ahora debería poder ejecutar una prueba para comprobar que se han quitado los encabezados:

  1. Vuelva a seleccionar Datos del censo y, en la barra de menús superior, seleccione la pestaña Probar.

  2. Seleccione la operación GetLatestCensus y, después, seleccione Enviar.

    Screenshot of the test results for the GetLatestCensus operation, showing the headers removed in the Response.

  3. El encabezado x-powered-by no debería aparecer en la respuesta.