Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
APLICA-SE A: Todas as camadas de gerenciamento de API
A cors política adiciona suporte a compartilhamento de recursos entre origens (CORS) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegador.
Nota
Defina os elementos da política e os elementos filho na ordem fornecida na declaração de política. Para ajudá-lo a configurar essa política, o portal fornece um editor guiado baseado em formulários. Saiba mais sobre como definir ou editar políticas de Gerenciamento de API.
Declaração de política
<cors allow-credentials="false | true" terminate-unmatched-request="true | false">
<allowed-origins>
<origin>origin uri</origin>
</allowed-origins>
<allowed-methods preflight-result-max-age="number of seconds">
<method>HTTP verb</method>
</allowed-methods>
<allowed-headers>
<header>header name</header>
</allowed-headers>
<expose-headers>
<header>header name</header>
</expose-headers>
</cors>
Atributos
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| permitir-credenciais | O Access-Control-Allow-Credentials cabeçalho na resposta de comprovação será definido com o valor desse atributo e afetará a capacidade do cliente de enviar credenciais em solicitações entre domínios. São permitidas expressões de política. |
Não | false |
| terminate-unmatched-request | Controla o processamento de solicitações de origem cruzada que não correspondem às configurações de política. São permitidas expressões de política. Quando OPTIONS a solicitação é processada como uma solicitação de comprovação e Origin o cabeçalho não corresponde às configurações de política:- Se o atributo estiver definido como true, encerre imediatamente a solicitação com uma resposta vazia 200 OK- Se o atributo estiver definido como false, verifique se há outras políticas no escopo cors que são filhos diretos do elemento de entrada e aplique-as. Se nenhuma cors política for encontrada, encerre a solicitação com uma resposta vazia 200 OK . Quando GET a solicitação inclui HEAD o cabeçalho (e, portanto, é processada Origin como uma simples solicitação de origem cruzada) e não corresponde às configurações de política:- Se o atributo estiver definido como true, encerre imediatamente a solicitação com uma resposta vazia 200 OK .- Se o atributo estiver definido como false, permita que a solicitação prossiga normalmente e não adicione cabeçalhos CORS à resposta. |
Não | false |
Elementos
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| origens permitidas | Contém origin elementos que descrevem as origens permitidas para solicitações entre domínios.
allowed-origins pode conter um único origin elemento que especifica * para permitir qualquer origem ou um ou mais origin elementos que contêm um URI. |
Sim | N/A |
| métodos permitidos | Este elemento é necessário se métodos diferentes ou GETPOST permitidos. Contém method elementos que especificam os verbos HTTP suportados. O valor * indica todos os métodos. |
Não | Se esta seção não estiver presente GET e POST for suportada. |
| cabeçalhos permitidos | Este elemento contém header elementos que especificam nomes dos cabeçalhos que podem ser incluídos na solicitação. |
Sim | N/A |
| expor-cabeçalhos | Este elemento contém header elementos que especificam nomes dos cabeçalhos que serão acessíveis pelo cliente. |
Não | N/A |
Atenção
Use o curinga * com cuidado nas configurações de política. Essa configuração pode ser excessivamente permissiva e pode tornar uma API mais vulnerável a determinadas ameaças à segurança da API.
elementos de origem permitida
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| origem | O valor pode ser * para permitir todas as origens ou um URI que especifica uma única origem. O URI deve incluir um esquema, host e porta. Não inclua as aspas. |
Sim | Se a porta for omitida em um URI, a porta 80 será usada para HTTP e a porta 443 será usada para HTTPS. |
atributos allowed-methods
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| pré-voo-resultado-max-idade | O Access-Control-Max-Age cabeçalho na resposta de comprovação será definido com o valor desse atributo e afetará a capacidade do agente do usuário de armazenar em cache a resposta de comprovação. São permitidas expressões de política. |
Não | 0 |
elementos de métodos permitidos
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| método | Especifica um verbo HTTP. São permitidas expressões de política. | Pelo menos um method elemento é necessário se a allowed-methods seção estiver presente. |
N/A |
elementos de cabeçalhos permitidos
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| cabeçalho | Especifica um nome de cabeçalho. | Pelo menos um header elemento é necessário se allowed-headers essa secção estiver presente. |
N/A |
elementos expose-headers
| Nome | Descrição | Necessário | Predefinição |
|---|---|---|---|
| cabeçalho | Especifica um nome de cabeçalho. | Pelo menos um header elemento é necessário se expose-headers essa secção estiver presente. |
N/A |
Utilização
- Secções políticas: entrada
- Âmbitos de política: global, área de trabalho, produto, API, operação
- Gateways: clássico, v2, consumo, auto-hospedado, espaço de trabalho
Notas de utilização
- Você pode configurar a
corspolítica em mais de um escopo (por exemplo, no escopo do produto e no escopo global). Certifique-se de que obaseelemento esteja configurado nos escopos de operação, API e produto para herdar as políticas necessárias nos escopos pai. - Apenas a apólice
corsé avaliada no pedido durante oOPTIONSpré-voo. As restantes políticas configuradas são avaliadas no pedido aprovado.
- Esta política só pode ser utilizada uma vez numa secção de política.
Sobre o CORS
CORS é um padrão baseado em cabeçalho HTTP que permite que um navegador e um servidor interajam e determinem se devem ou não permitir solicitações de origem cruzada específicas (XMLHttpRequest chamadas feitas de JavaScript em uma página da Web para outros domínios). Isso permite mais flexibilidade do que permitir apenas solicitações de mesma origem, mas é mais seguro do que permitir todas as solicitações de origem cruzada.
O CORS especifica dois tipos de solicitações de origem cruzada:
Solicitações de comprovação (ou "comprovação") - O navegador primeiro envia uma solicitação HTTP usando o
OPTIONSmétodo para o servidor, para determinar se a solicitação real tem permissão para enviar. Se a resposta do servidor incluir o cabeçalho que permite oAccess-Control-Allow-Originacesso, o navegador segue com a solicitação real.Solicitações simples - Essas solicitações incluem um ou mais cabeçalhos extras
Origin, mas não acionam uma comprovação do CORS. Somente solicitações usando osGETmétodos eHEADe um conjunto limitado de cabeçalhos de solicitação são permitidas.
cors Cenários políticos
Configure a cors política no Gerenciamento de API para os seguintes cenários:
Ative a consola de teste interativa no portal do programador. Veja a documentação do portal do programador para obter detalhes.
Nota
Quando você habilita o CORS para o console interativo, por padrão, o Gerenciamento de API configura a
corspolítica no escopo global.Ative a Gestão de API para responder aos pedidos de verificação prévia ou passar por pedidos CORS simples quando os back-ends não fornecem o seu próprio suporte CORS.
Nota
Se uma solicitação corresponder a uma operação com um
OPTIONSmétodo definido na API, a lógica de processamento da solicitação de comprovação associada àcorspolítica não será executada. Portanto, tais operações podem ser usadas para implementar lógica de processamento de comprovação personalizada - por exemplo, para aplicar acorspolítica apenas sob certas condições.
Problemas comuns de configuração
-
Chave de assinatura no cabeçalho - Se você configurar a
corspolítica no escopo do produto e sua API usar autenticação de chave de assinatura, a política não funcionará quando a chave de assinatura for passada em um cabeçalho. Como solução, modifique os pedidos para incluírem uma chave de subscrição como parâmetro de consulta. -
API com controle de versão de cabeçalho - Se você configurar a
corspolítica no escopo da API e sua API usar um esquema de controle de versão de cabeçalho, a política não funcionará porque a versão é passada em um cabeçalho. Poderá ter de configurar um método de controlo de versões alternativo, como um caminho ou parâmetro de consulta. -
Ordem da política - Você pode enfrentar um comportamento inesperado se a
corspolítica não for a primeira política na seção de entrada. Selecione Calcular política efetiva no editor de políticas para verificar a ordem de avaliação da política em cada escopo. Geralmente, apenas a primeiracorspolítica é aplicada. -
Resposta vazia 200 OK - Em algumas configurações de política, certas solicitações de origem cruzada são concluídas com uma resposta vazia
200 OK. Essa resposta é esperada quandoterminate-unmatched-requesté definida como seu valor padrão de e uma solicitação de entrada tem umtruecabeçalho que não corresponde aOriginuma origem permitida configuradacorsna política.
Exemplo
Este exemplo demonstra como dar suporte a solicitações de comprovação, como aquelas com cabeçalhos personalizados ou métodos diferentes de GET e POST. Para oferecer suporte a cabeçalhos personalizados e outros verbos HTTP, use as allowed-methods seções e allowed-headers conforme mostrado no exemplo a seguir.
<cors allow-credentials="true">
<allowed-origins>
<!-- Localhost useful for development -->
<origin>http://localhost:8080/</origin>
<origin>http://example.com/</origin>
</allowed-origins>
<allowed-methods preflight-result-max-age="300">
<method>GET</method>
<method>POST</method>
<method>PATCH</method>
<method>DELETE</method>
</allowed-methods>
<allowed-headers>
<!-- Examples below show Azure Mobile Services headers -->
<header>x-zumo-installation-id</header>
<header>x-zumo-application</header>
<header>x-zumo-version</header>
<header>x-zumo-auth</header>
<header>content-type</header>
<header>accept</header>
</allowed-headers>
<expose-headers>
<!-- Examples below show Azure Mobile Services headers -->
<header>x-zumo-installation-id</header>
<header>x-zumo-application</header>
</expose-headers>
</cors>
Políticas relacionadas
Conteúdos relacionados
Para obter mais informações sobre como trabalhar com políticas, consulte:
- Tutorial: Transforme e proteja sua API
- Referência de política para uma lista completa de declarações de política e suas configurações
- Expressões de política
- Definir ou editar políticas
- Reutilizar configurações de política
- Recompra de trechos de política
- Política de recompra de parques infantis
- Kit de ferramentas de política de Gerenciamento de API do Azure
- Obtenha assistência do Copilot para criar, explicar e resolver problemas com políticas