Enmascaramiento de URL con una directiva de transformación

Completado

Es posible que las organizaciones necesiten ajustar en muy poco tiempo la información que publica una API. Por ejemplo, para adaptarse a un cambio en la legislación o abordar una nueva amenaza de seguridad.

El ejemplo de la API del censo expone detalles sobre la URL desde la que se llama a la API. Esta información podría permitir que un usuario malintencionado intentara acceder a los datos censales al omitir la puerta de enlace de API Management y exponer un punto de conexión menos seguro. Como desarrollador jefe, es recomendable que enmascare estas URL en el cuerpo de la respuesta de API.

Aquí aprenderá a usar las directivas de API Management que manipulan el contenido de los encabezados y los cuerpos de las respuestas de API.

¿Por qué transformar una respuesta?

El cuerpo de la respuesta de una llamada API contiene los datos que se solicitan. En la API del censo, por ejemplo, el cuerpo de la respuesta contiene los datos JSON de los encuestados. También puede observar que el cuerpo contiene vínculos URL para ver personas individuales:

Screenshot of a default HTTP response with the href value highlighted, showing an unmasked URL link.

Estos vínculos se basan en los puntos de conexión de la API del censo y deben enmascararse para mostrar las URL de API Management en su lugar.

Para lograr esta configuración, cree una directiva de transformación.

Nota:

Se recomienda proteger la API de back-end mediante uno de los mecanismos disponibles en API Management. Por ejemplo, configúrelo para requerir un certificado de cliente y, a continuación, configure API Management para proporcionar ese certificado. En esta configuración, no se permite llamar a la API de back-end directamente y eludir la puerta de enlace de API Management porque se necesita un certificado reconocido por el back-end.

Directiva de transformación

Una directiva de transformación modifica el contenido de una llamada API. Algunas directivas de transformación se aplican al encabezado y otras al cuerpo. Están disponibles las siguientes transformaciones:

Transformación Descripción
Convertir JSON a XML Convierte un cuerpo de solicitud o respuesta de JSON a XML.
Convertir XML a JSON Convierte un cuerpo de solicitud o respuesta de XML a JSON.
Buscar y reemplazar la cadena en el cuerpo Busca una subcadena de solicitud o de respuesta y la sustituye por otra distinta.
Enmascarar URL en el contenido Reescribe los vínculos del cuerpo de la respuesta para que apunten al vinculo equivalente a través de la puerta de enlace.
Establecer el servicio back-end Cambia el servicio back-end para una solicitud entrante.
Establecer cuerpo Establece el cuerpo del mensaje para una solicitud o respuesta.
Establecer encabezado HTTP Asigna un valor a un encabezado de respuesta o de solicitud existente o agrega un nuevo encabezado de este tipo.
Establecer el parámetro de cadena de consulta Agrega o elimina el parámetro de cadena de consulta de la solicitud, o bien sustituye su valor.
URL de reescritura Convierte una URL de solicitud de su forma pública a la forma esperada por el servicio web.
Transformar XML mediante una XSLT Aplica una transformación XSL al XML del cuerpo de la solicitud o la respuesta.

En el ejercicio siguiente, usará la transformación Enmascarar URL en el contenido para modificar los vínculos.