Capacidad

Regla de Política CORS

Libere a los equipos de API de los errores CORS del navegador — gestione las cabeceras de preflight y respuesta desde una única regla.

La Regla de Política CORS de TR7 gestiona las cabeceras CORS necesarias para el acceso a APIs de origen cruzado en la capa ADC, sin tocar el código de la aplicación. La lista de origins permitidos, los métodos permitidos, las cabeceras permitidas, el comportamiento de credenciales y la duración de caché de preflight pueden definirse todos dentro de una única política. Este enfoque evita que los equipos de frontend y API escriban código CORS separado para cada servicio. La aplicación produce la respuesta; TR7 adjunta las cabeceras CORS que el navegador espera como política central, responde apropiadamente a las solicitudes de preflight y completa las cabeceras requeridas en el lado de la respuesta real. La política puede aplicarse por vService, host, ruta u otras condiciones de tráfico. Esto significa que las APIs públicas, las APIs de administración, las APIs de socios y las APIs internas pueden operar con diferente comportamiento CORS en el mismo dispositivo. El resultado: TR7 elimina la gestión CORS de la configuración del framework de la aplicación y la convierte en una regla central, auditable y reutilizable en la capa de seguridad de API y entrega de aplicaciones.

5
Parámetros CORS configurables: Origin, Methods, Headers, Credentials, Max-Age
2
Tipos de solicitudes gestionadas: preflight OPTIONS y respuesta real
1
Regla central — política CORS coherente en todos los vServices y rutas

Cuando el CORS se deja al código de la aplicación, cada API se convierte en un problema de compatibilidad de navegador separado.

Las aplicaciones web modernas típicamente acceden a APIs que corren en diferentes dominios, subdominios o puertos. El navegador restringe este acceso mediante la política CORS. Si una API no devuelve las cabeceras Access-Control-Allow-* correctas, la solicitud es bloqueada por el navegador aunque se ejecute correctamente en el servidor. El resultado es una aplicación rota para el usuario y un error CORS difícil de diagnosticar para el equipo.

En la mayoría de las organizaciones, este problema se distribuye a los equipos de aplicación. Cada servicio define su Origin, Method, Header, Credentials y comportamiento Max-Age por separado dentro de su propia configuración del framework. A medida que crece el número de servicios, se vuelve inevitable que la misma política CORS acabe escrita de forma diferente en distintas aplicaciones.

La configuración CORS incorrecta también crea riesgos de seguridad. Durante el desarrollo, los Origins con wildcard se abren como solución rápida, se otorgan permisos demasiado amplios junto con credenciales, o el comportamiento de preflight se deja incompleto. Cuando esas configuraciones llegan a producción, la superficie de la API queda expuesta innecesariamente.

El enfoque correcto es gestionar la política CORS como una regla central de respuesta/solicitud. La lista de origins permitidos, las credenciales, los métodos permitidos, las cabeceras permitidas y la caché de preflight deben definirse en un solo lugar y no dispersarse en el código de la aplicación.

La Regla de Política CORS de TR7 ofrece este modelo: hace que las cabeceras CORS de preflight y de respuesta real sean manejables desde una única acción, al nivel de vService o ruta.

Nuestro enfoque

La política CORS de TR7 reúne la validación de origen, la gestión de preflight, las cabeceras de respuesta y la lógica de aplicación condicional bajo una única regla.

La lista de origins permitidos acepta solo las fuentes permitidas

TR7 puede comparar el valor de Origin entrante con una lista de permitidos definida. La lista puede contener dominios fijos o coincidencias más flexibles basadas en regex.

Las solicitudes de preflight se responden sin añadir carga a la aplicación

TR7 puede generar las cabeceras CORS requeridas para las solicitudes de preflight OPTIONS. Esto permite que la aplicación se centre solo en la solicitud real de la API.

Las cabeceras de respuesta real se completan para cumplir las expectativas del navegador

Cabeceras como Access-Control-Allow-Origin, Allow-Methods, Allow-Headers, Allow-Credentials y Max-Age se agregan a través de la política central. La compatibilidad del navegador se vuelve independiente del código de la aplicación.

Las políticas por vService y por ruta mantienen separadas las diferentes APIs

Diferentes superficies de API en el mismo dispositivo pueden operar con diferente comportamiento CORS. La API pública puede ser más amplia, la API de socios más estrecha y la API interna gestionada con su propia lista de permitidos.

Capacidades

La Regla de Política CORS simplifica el proceso de publicación de APIs proporcionando gestión de preflight y respuesta real desde una única acción.

Una única regla gestiona conjuntamente las cabeceras CORS de preflight y de respuesta real

La acción CORS de TR7 puede manejar tanto las solicitudes de preflight OPTIONS como las cabeceras de respuesta real de la API bajo la misma política. Esto evita que los equipos de aplicación codifiquen por separado el comportamiento de preflight y de respuesta real. La política se define una vez y se aplica al vService o ruta relevante. Las operaciones pueden gestionar el comportamiento CORS de forma centralizada.

La lista de origins permitidos permite solo fuentes de frontend de confianza

Los valores de Origin permitidos pueden definirse explícitamente en la política CORS. Esta lista puede consistir en dominios específicos, patrones de subdominio o coincidencias basadas en regex. Se otorga acceso a aplicaciones de frontend de confianza sin verse obligado a usar wildcards. Se proporciona acceso al navegador sin exponer innecesariamente la superficie de la API a fuentes no deseadas.

La coincidencia de origen con soporte regex simplifica las estructuras multi-subdominio

Las organizaciones frecuentemente usan estructuras de subdominio basadas en clientes, tenants o entornos. La coincidencia de origen basada en regex permite establecer una política de permisos controlada sin escribir cada subdominio individualmente. Por ejemplo, los frontends de tenants bajo un árbol de dominio específico pueden aceptarse. Esta flexibilidad permite una gestión CORS escalable sin abrir wildcards.

El toggle de credenciales permite el uso de cookies y cabeceras de autenticación de forma controlada

El comportamiento de Access-Control-Allow-Credentials puede activarse o desactivarse de forma centralizada. Este ajuste es crítico para los frontends que trabajan con cookies o cabeceras de autorización. Cuando las credenciales están habilitadas, la lista de origins permitidos debe mantenerse estrecha. TR7 extrae este comportamiento de la configuración dispersa de los equipos de aplicación y lo lleva a un único punto de política.

La lista de métodos permitidos restringe la superficie de la API a nivel del navegador

Los métodos como GET, POST, PUT, PATCH, DELETE u OPTIONS pueden definirse dentro de la política. El navegador acepta solo los métodos permitidos durante el preflight. Esto aclara qué tipos de operaciones expone la API al lado del cliente. La seguridad y la experiencia del desarrollador se gestionan desde la misma lista.

La lista de cabeceras permitidas regula el uso de cabeceras personalizadas

Authorization, Content-Type, X-Request-ID u otras cabeceras de aplicación personalizadas pueden definirse en la lista de permitidos. El navegador comprueba durante una solicitud de preflight si estas cabeceras pueden usarse. Los permisos de cabeceras faltantes generan errores en el frontend; los permisos de cabeceras demasiado amplios crean una exposición de superficie innecesaria. TR7 gestiona este equilibrio de forma centralizada.

El caché de max-age de preflight reduce la carga de solicitudes del navegador

El valor Access-Control-Max-Age controla cuánto tiempo el navegador almacena en caché el resultado del preflight. Un valor max-age apropiado reduce el tráfico OPTIONS para llamadas frecuentes a la API. Un valor demasiado corto genera sobrecarga innecesaria de preflight; uno demasiado largo puede significar que los cambios de política se reflejen tarde. TR7 hace que este ajuste sea configurable por necesidad del servicio.

La aplicación por vService proporciona un estándar CORS separado para cada API

Cada vService puede tener su propia política CORS. La API pública, la API de socios, la API de administración o la API interna pueden operar con diferentes listas de origen y métodos. Este modelo evita que una única configuración CORS global se aplique de forma demasiado amplia a todas las APIs. El operador establece límites de seguridad por servicio.

La aplicación por ruta permite diferentes comportamientos de endpoint dentro del mismo servicio

Se pueden aplicar diferentes políticas CORS a diferentes rutas dentro del mismo vService. Por ejemplo, `/public/api` puede operar con una lista de origen más amplia mientras que `/admin/api` opera solo con un frontend de gestión específico. Esto separa la superficie de la API a nivel de endpoint. No es necesario escribir complejos bloques if de CORS en el código de la aplicación.

El comportamiento CORS condicional puede establecerse con el motor de reglas de tráfico

La acción CORS puede usarse como parte del motor de reglas de tráfico. Las cabeceras CORS pueden aplicarse basándose en condiciones de host, ruta, cabecera, método u otras condiciones. Esto permite gestionar muchos modelos de publicación diferentes en un único dispositivo. La política CORS se convierte en una regla de tráfico consciente del contexto en lugar de una configuración estática.

Los estándares CORS se aplican sin dependencia del framework de la aplicación

Cuando el comportamiento CORS se distribuye entre los frameworks de la aplicación, cada lenguaje y servicio requiere diferente lógica de configuración. TR7 lleva este comportamiento a la capa ADC, reduciendo la dependencia de la aplicación. Los equipos de aplicación se centran solo en la lógica de negocio de la API mientras el estándar CORS se mantiene centralmente. Los servicios legacy y modernos pueden publicarse bajo el mismo modelo de política.

La auditoría y la gestión centralizada de cambios reducen el riesgo CORS

Cuando la política CORS se cambia dentro de la configuración central, puede incluirse en los procesos de auditoría y reversión. Las preguntas de quién abrió qué Origin, qué método o qué comportamiento de credenciales pueden rastrearse. Esto es especialmente importante durante las revisiones de seguridad. La gestión CORS auditable reemplaza la configuración dispersa de las aplicaciones.

Profundidad operacional

La Regla de Política CORS opera junto con la coincidencia de origen, el comportamiento de credenciales, la respuesta de preflight, el equilibrio de max-age, el alcance de ruta y la visibilidad de auditoría.

01

Coincidencia de origen

El valor de Origin entrante puede compararse con una lista de permitidos o reglas regex. Si no hay coincidencia, las cabeceras CORS pueden no agregarse, o puede aplicarse un comportamiento de rechazo según lo requiera la política. Se recomienda el uso de una lista explícita en lugar de un wildcard.

02

Comportamiento de credenciales

Cuando las credenciales están activas, la información de identidad como cookies y cabeceras de autenticación puede usarse en solicitudes cross-origin. En este modo es importante que la política de Origin sea estrecha y bien definida. Las credenciales junto con un Origin wildcard no son una suposición segura.

03

Respuesta de preflight

El navegador envía solicitudes OPTIONS para verificar los permisos de métodos y cabeceras. TR7 puede gestionar centralmente la respuesta de preflight generando las cabeceras Allow-* requeridas. Esto reduce la carga que recae sobre el servicio backend por el tráfico OPTIONS innecesario.

04

Equilibrio de max-age

La duración de la caché de preflight requiere un equilibrio entre rendimiento y actualidad de la política. Una duración mayor produce menos solicitudes OPTIONS, pero los cambios CORS pueden sentirse tarde debido al caché del navegador. Este valor debe elegirse con cuidado para las APIs críticas.

05

Alcance de ruta

La política CORS puede vincularse a condiciones específicas de ruta o host. Esto permite aplicar diferente comportamiento CORS a diferentes superficies de API dentro del mismo vService. Los endpoints de administración y los endpoints públicos no necesitan compartir los mismos permisos.

06

Registro de auditoría

Los cambios de política CORS pueden rastrearse dentro de la configuración central y el proceso de auditoría. Los cambios en la lista de Origin o en el comportamiento de credenciales deben considerarse significativos desde el punto de vista de la seguridad. El historial de cambios tiene valor para la reversión y el cumplimiento.

Cuándo utilizarlo

Resolver errores CORS de la API del frontend sin tocar el código de la aplicación

Cuando una aplicación frontend accede a una API en un dominio diferente, el navegador puede recibir un error CORS. Agregar la política correcta de Origin, método y cabecera a través de TR7 resuelve el problema de forma centralizada.

Política de origen regex para estructuras de subdominio multi-tenant

En un entorno SaaS, cada tenant puede ejecutar su propio frontend en un subdominio dedicado. Una lista de permitidos con soporte regex acepta de forma controlada todo el árbol de dominios del tenant.

Lista de origen y cabeceras estrecha para acceso a API de socios

Las aplicaciones de socios pueden acceder a la API solo con Origins específicos y cabeceras de Authorization. La regla CORS de TR7 define estos permisos centralmente y cierra la superficie innecesaria de cabeceras y métodos.

Gestionar el comportamiento de credenciales en flujos SSO basados en cookies

Pueden requerirse cookies cross-origin en flujos SSO o de federación. TR7 pone este comportamiento bajo control con el toggle de credenciales y una lista de Origin estrecha.

Aplicar diferente comportamiento CORS a rutas de API pública y de administración

Dentro del mismo vService, el endpoint público puede operar con una política CORS más amplia y el endpoint de administración con una más estrecha. Esta separación se aplica mediante una regla de tráfico sin escribirla en el código de la aplicación.

Preguntas frecuentes

¿Cómo gestiona la regla CORS de TR7 las solicitudes de preflight?
TR7 puede generar las cabeceras Access-Control-Allow-Methods, Access-Control-Allow-Headers y Access-Control-Max-Age requeridas para las solicitudes de preflight OPTIONS desde la política CORS central. Esto significa que el servicio backend no está cargado con la sobrecarga de preflight — se centra solo en la solicitud real de la API.
¿La lista de origins permitidos fuerza el uso de wildcards?
No. La política CORS de TR7 admite definir los valores de Origin permitidos a través de una lista explícita o reglas regex. Se puede otorgar acceso a fuentes de frontend de confianza sin necesidad de usar wildcards, proporcionando compatibilidad con el navegador sin exponer innecesariamente la superficie de la API.
¿Es seguro habilitar el comportamiento de credenciales?
Cuando las credenciales están activas, las cookies y las cabeceras de Authorization pueden usarse en solicitudes cross-origin. En este modo es crítico que la lista de origins permitidos sea estrecha y bien definida; usar un Origin wildcard junto con credenciales no es una configuración segura. TR7 gestiona ambos ajustes juntos en un único punto de política central.
¿Pueden aplicarse diferentes políticas CORS a diferentes APIs en el mismo dispositivo?
Sí. La política CORS puede definirse independientemente por vService o ruta. Las APIs públicas, las APIs de socios, las APIs de administración y las APIs internas pueden operar todas en el mismo dispositivo con diferentes listas de Origin, diferentes permisos de métodos y diferentes comportamientos de credenciales.
¿A qué valor debe establecerse Max-Age?
Un Max-Age apropiado reduce el tráfico OPTIONS para llamadas frecuentes a la API, pero un valor demasiado largo puede provocar que los cambios de política CORS se reflejen tarde debido al caché del navegador. Se prefiere un valor más corto para las APIs críticas o de actualización frecuente. TR7 hace que este parámetro sea configurable por necesidad del servicio.
¿La política CORS está vinculada al framework de la aplicación?
No. La Regla de Política CORS de TR7 opera en la capa ADC y es independiente del lenguaje o framework de la aplicación. Todas las APIs, incluidos los servicios legacy, pueden publicarse bajo la misma política CORS central. Los equipos de aplicación logran el cumplimiento CORS sin tocar la configuración del framework.

Elimine la gestión CORS del código de la aplicación

Gestione el preflight, las cabeceras de respuesta, la lista de origins permitidos y el comportamiento de credenciales desde una única regla ADC. Revisemos juntos una configuración en vivo en sus propios servicios.