Capacidade

Regra de Política CORS

Liberte as equipes de API dos erros CORS do navegador — gerencie headers de preflight e resposta a partir de uma única regra.

A TR7 CORS Policy Rule gerencia os headers CORS necessários para acesso à API cross-origin na camada ADC, sem tocar no código da aplicação. A allow-list de Origin, os métodos permitidos, os headers permitidos, o comportamento de credentials e a duração do cache de preflight podem ser todos definidos em uma única política. Essa abordagem impede que equipes de frontend e API escrevam código CORS separado para cada serviço. A aplicação produz a resposta; o TR7 adiciona os headers CORS que o navegador espera como política central, responde adequadamente às requisições de preflight e completa os headers necessários no lado da resposta real. A política pode ser aplicada por vService, host, path ou diferentes condições de tráfego. Isso significa que APIs públicas, APIs admin, APIs de parceiros e APIs internas podem operar com comportamento CORS diferente no mesmo dispositivo. O resultado: o TR7 remove o gerenciamento CORS das configurações do framework da aplicação e o transforma em uma regra central, auditável e reutilizável na camada de segurança de API e entrega de aplicações.

5
Parâmetros CORS configuráveis: Origin, Methods, Headers, Credentials, Max-Age
2
Tipos de requisição gerenciados: OPTIONS preflight e resposta real
1
Regra central — política CORS consistente em todos os vServices e paths

Quando o CORS é deixado para o código da aplicação, cada API se torna um problema separado de compatibilidade com o navegador.

Aplicações web modernas tipicamente acessam APIs rodando em domínios, subdomínios ou portas diferentes. O navegador restringe esse acesso por meio da política CORS. Se uma API não retornar os headers Access-Control-Allow-* corretos, a requisição é bloqueada pelo navegador mesmo que execute com sucesso no lado do servidor. O resultado é uma aplicação quebrada para o usuário e um erro CORS difícil de diagnosticar para a equipe.

Na maioria das organizações, esse problema é distribuído para as equipes de aplicação. Cada serviço define seu comportamento de Origin, Method, Header, Credentials e Max-Age separadamente em suas próprias configurações de framework. À medida que o número de serviços cresce, torna-se inevitável que a mesma política CORS acabe escrita de forma diferente em diferentes aplicações.

Configurações CORS incorretas também criam riscos de segurança. Durante o desenvolvimento, Origins com wildcard são abertas como correção rápida, permissões muito amplas são concedidas junto com credentials, ou o comportamento de preflight fica incompleto. Quando tais configurações chegam à produção, a superfície de API fica desnecessariamente exposta.

A abordagem correta é gerenciar a política CORS como uma regra central de resposta/requisição. A allow-list de Origin, credentials, métodos permitidos, headers permitidos e cache de preflight devem ser todos definidos em um único lugar e não espalhados pelo código da aplicação.

A TR7 CORS Policy Rule entrega esse modelo: torna os headers CORS de preflight e resposta real gerenciáveis a partir de uma única ação, no nível de vService ou path.

Nossa abordagem

A política CORS do TR7 reúne validação de origin, gerenciamento de preflight, headers de resposta e lógica de aplicação condicional sob uma única regra.

A allow-list de Origin aceita apenas origens permitidas

O TR7 pode comparar o valor de Origin recebido com uma allow-list definida. A lista pode conter domínios fixos ou correspondências mais flexíveis baseadas em regex.

Requisições de preflight são respondidas sem adicionar carga à aplicação

O TR7 pode gerar os headers CORS necessários para requisições OPTIONS de preflight. Isso permite que a aplicação se concentre apenas na requisição de API real.

Headers de resposta real são completados para corresponder às expectativas do navegador

Headers como Access-Control-Allow-Origin, Allow-Methods, Allow-Headers, Allow-Credentials e Max-Age são adicionados pela política central. A compatibilidade com o navegador torna-se independente do código da aplicação.

Políticas por vService e por path mantêm APIs diferentes separadas

Diferentes superfícies de API no mesmo dispositivo podem operar com comportamento CORS diferente. A API pública pode ser mais ampla, a API de parceiro mais restrita e a API interna gerenciada com sua própria allow-list.

Capacidades

A CORS Policy Rule simplifica o processo de publicação de APIs fornecendo gerenciamento de preflight e resposta real a partir de uma única ação.

Uma única regra gerencia headers CORS de preflight e resposta real juntos

A ação CORS do TR7 pode tratar tanto as requisições OPTIONS de preflight quanto os headers de resposta de API real sob a mesma política. Isso impede que as equipes de aplicação codifiquem o comportamento de preflight e resposta real separadamente. A política é definida uma vez e aplicada ao vService ou path relevante. As operações podem gerenciar o comportamento CORS centralmente.

A allow-list de Origin permite apenas origens de frontend confiáveis

Os valores de Origin permitidos podem ser definidos explicitamente na política CORS. Essa lista pode consistir em domínios específicos, padrões de subdomínio ou correspondências baseadas em regex. O acesso é concedido a aplicações de frontend confiáveis sem ser forçado a usar wildcards. O acesso do navegador é fornecido sem expor desnecessariamente a superfície de API a origens indesejadas.

A correspondência de origin com suporte a regex simplifica estruturas multi-subdomínio

Organizações frequentemente usam estruturas de subdomínio baseadas em clientes, tenants ou ambientes. A correspondência de origin baseada em regex torna possível estabelecer uma política de permissão controlada sem escrever cada subdomínio individualmente. Por exemplo, frontends de tenant sob uma árvore de domínio específica podem ser aceitos. Essa flexibilidade habilita o gerenciamento CORS escalável sem abrir wildcards.

O toggle de credentials habilita o uso de cookie e header de auth de forma controlada

O comportamento de Access-Control-Allow-Credentials pode ser alternado centralmente. Essa configuração é crítica para frontends que trabalham com cookies ou headers de Authorization. Quando credentials estão habilitados, a allow-list de Origin deve ser mantida restrita. O TR7 move esse comportamento para fora das configurações dispersas das equipes de aplicação e para um único ponto de política.

A lista de métodos permitidos restringe a superfície de API no nível do navegador

Métodos como GET, POST, PUT, PATCH, DELETE ou OPTIONS podem ser definidos na política. O navegador aceita apenas os métodos permitidos durante o preflight. Isso esclarece quais tipos de operação a API expõe para o lado do cliente. Segurança e experiência do desenvolvedor são gerenciadas a partir da mesma lista.

A lista de headers permitidos governa o uso de headers customizados

Authorization, Content-Type, X-Request-ID ou headers de aplicação customizados podem ser definidos na allow-list. O navegador verifica durante uma requisição de preflight se esses headers podem ser usados. Permissões de header ausentes levam a erros de frontend; permissões de header muito amplas criam exposição desnecessária de superfície. O TR7 gerencia esse equilíbrio centralmente.

O cache de max-age de preflight reduz a carga de requisições do navegador

O valor Access-Control-Max-Age controla por quanto tempo o navegador armazena em cache o resultado do preflight. Um valor de max-age apropriado reduz o tráfego OPTIONS para chamadas frequentes de API. Um valor muito curto cria sobrecarga desnecessária de preflight; um muito longo significa que as alterações de política podem ser refletidas tarde. O TR7 torna essa configuração ajustável por necessidade de serviço.

A aplicação por vService fornece um padrão CORS separado para cada API

Cada vService pode ter sua própria política CORS. A API pública, API de parceiro, API admin ou API interna podem operar com diferentes listas de origin e método. Esse modelo impede que uma única configuração CORS global seja aplicada de forma muito ampla a todas as APIs. O operador estabelece limites de segurança por serviço.

A aplicação por path habilita comportamento de endpoint diferente dentro do mesmo serviço

Diferentes políticas CORS podem ser aplicadas a diferentes paths dentro do mesmo vService. Por exemplo, `/public/api` pode operar com uma lista de origin mais ampla enquanto `/admin/api` opera apenas com um frontend de gerenciamento específico. Isso separa a superfície de API no nível de endpoint. Não há necessidade de escrever blocos if CORS complexos no código da aplicação.

Comportamento CORS condicional pode ser estabelecido com o motor de regras de tráfego

A ação CORS pode ser usada como parte do motor de regras de tráfego. Os headers CORS podem ser aplicados com base em host, path, header, método ou outras condições. Isso permite que muitos modelos de publicação diferentes sejam gerenciados em um único dispositivo. A política CORS torna-se uma regra de tráfego consciente do contexto, em vez de uma configuração estática.

Os padrões CORS são aplicados sem dependência de framework de aplicação

Quando o comportamento CORS é distribuído entre frameworks de aplicação, cada linguagem e serviço requer lógica de configuração diferente. O TR7 move esse comportamento para a camada ADC, reduzindo a dependência da aplicação. As equipes de aplicação se concentram apenas na lógica de negócio da API enquanto o padrão CORS é mantido centralmente. Serviços legados e modernos podem ser publicados sob o mesmo modelo de política.

Auditoria e gerenciamento centralizado de mudanças reduzem o risco CORS

Quando a política CORS é alterada na configuração central, pode ser incluída nos processos de auditoria e rollback. As perguntas sobre quem abriu qual Origin, qual método ou qual comportamento de credentials podem ser rastreadas. Isso é especialmente importante durante revisões de segurança. O gerenciamento CORS auditável substitui as configurações dispersas da aplicação.

Profundidade operacional

A CORS Policy Rule é operada em conjunto com correspondência de origin, comportamento de credentials, resposta de preflight, equilíbrio de max-age, escopo de path e visibilidade de auditoria.

01

Correspondência de origin

O valor de Origin recebido pode ser comparado com uma allow-list ou regras regex. Se não houver correspondência, os headers CORS podem não ser adicionados, ou um comportamento de rejeição pode ser aplicado conforme exigido pela política. Recomenda-se usar uma lista explícita em vez de um wildcard.

02

Comportamento de credentials

Quando credentials estão ativas, informações de identidade como cookies e headers de auth podem ser usadas em requisições cross-origin. Nesse modo é importante que a política de Origin seja restrita e bem definida. Credentials junto com uma Origin wildcard não é uma premissa segura.

03

Resposta de preflight

Requisições OPTIONS são enviadas pelo navegador para verificar permissões de método e header. O TR7 pode gerenciar centralmente a resposta de preflight gerando os headers Allow-* necessários. Isso reduz a carga sobre o serviço de backend com sobrecarga desnecessária de OPTIONS.

04

Equilíbrio de max-age

A duração do cache de preflight requer um equilíbrio entre desempenho e atualidade da política. Uma duração maior produz menos requisições OPTIONS, mas as alterações CORS podem ser sentidas tarde devido ao cache do navegador. Esse valor deve ser escolhido cuidadosamente para APIs críticas.

05

Escopo de path

A política CORS pode ser vinculada a condições específicas de path ou host. Isso permite que diferentes comportamentos CORS sejam aplicados a diferentes superfícies de API dentro do mesmo vService. Endpoints admin e endpoints públicos não precisam compartilhar as mesmas permissões.

06

Registro de auditoria

As alterações na política CORS podem ser rastreadas no processo central de configuração e auditoria. As alterações na lista de Origin ou no comportamento de credentials devem ser consideradas significativas do ponto de vista de segurança. O histórico de alterações tem valor para rollback e fins de conformidade.

Quando usar

Resolver erros CORS de API de frontend sem tocar no código da aplicação

Quando uma aplicação frontend acessa uma API em um domínio diferente, o navegador pode receber um erro CORS. Adicionar a política correta de Origin, método e header pelo TR7 resolve o problema centralmente.

Política de origin regex para estruturas multi-tenant de subdomínio

Em um ambiente SaaS, cada tenant pode rodar seu próprio frontend em um subdomínio dedicado. Uma allow-list com suporte a regex aceita toda a árvore de domínio do tenant de forma controlada.

Lista restrita de origin e header para acesso de API de parceiro

Aplicações de parceiros podem acessar a API apenas com Origins e headers de Authorization específicos. A regra CORS do TR7 define essas permissões centralmente e fecha a superfície desnecessária de header e método.

Gerenciamento do comportamento de credentials em fluxos SSO baseados em cookie

Cookies cross-origin podem ser necessários em fluxos SSO ou de federação. O TR7 coloca esse comportamento sob controle com o toggle de credentials e uma lista restrita de Origin.

Aplicação de comportamento CORS diferente em paths de API pública e admin

Dentro do mesmo vService, o endpoint público pode operar com uma política CORS mais ampla e o endpoint admin com uma mais restrita. Essa separação é aplicada por meio de uma regra de tráfego sem escrevê-la no código da aplicação.

Perguntas frequentes

Como a regra CORS do TR7 gerencia requisições de preflight?
O TR7 pode gerar os headers Access-Control-Allow-Methods, Access-Control-Allow-Headers e Access-Control-Max-Age necessários para requisições OPTIONS de preflight a partir da política CORS central. Isso significa que o serviço de backend não fica sobrecarregado com sobrecarga de preflight — ele se concentra apenas na requisição de API real.
A allow-list de Origin força o uso de wildcards?
Não. A política CORS do TR7 suporta a definição de valores de Origin permitidos por meio de uma lista explícita ou regras regex. Fontes de frontend confiáveis podem ter acesso concedido sem precisar usar wildcards, proporcionando compatibilidade com o navegador sem expor desnecessariamente a superfície de API.
Habilitar o comportamento de credentials é seguro?
Quando credentials estão ativas, cookies e headers de Authorization podem ser usados em requisições cross-origin. Nesse modo é crítico que a allow-list de Origin seja restrita e bem definida; usar uma Origin wildcard junto com credentials não é uma configuração segura. O TR7 gerencia ambas as configurações juntas em um único ponto de política central.
Diferentes políticas CORS podem ser aplicadas a APIs diferentes no mesmo dispositivo?
Sim. A política CORS pode ser definida independentemente por vService ou path. APIs públicas, APIs de parceiro, APIs admin e APIs internas podem operar no mesmo dispositivo com diferentes listas de Origin, diferentes permissões de método e diferentes comportamentos de credentials.
Para qual valor o Max-Age deve ser definido?
Um Max-Age apropriado reduz o tráfego OPTIONS para chamadas frequentes de API, mas um valor muito longo pode fazer com que as alterações na política CORS sejam refletidas tarde devido ao cache do navegador. Um valor mais curto é preferido para APIs críticas ou frequentemente atualizadas. O TR7 torna esse parâmetro configurável por necessidade de serviço.
A política CORS está vinculada ao framework da aplicação?
Não. A TR7 CORS Policy Rule opera na camada ADC e é independente da linguagem ou framework da aplicação. Todas as APIs, incluindo serviços legados, podem ser publicadas sob a mesma política CORS central. As equipes de aplicação alcançam conformidade CORS sem tocar nas configurações do framework.

Remova o gerenciamento CORS do código da aplicação

Gerencie preflight, headers de resposta, allow-list de origin e comportamento de credentials a partir de uma única regra ADC. Vamos percorrer uma configuração ao vivo nos seus próprios serviços.