Políticas entre domínios da API ManagementAPI Management cross domain policies

Este tópico fornece uma referência para as seguintes políticas de gerenciamento de API.This topic provides a reference for the following API Management policies. Para obter informações sobre como adicionar e configurar políticas, consulte políticas no gerenciamento de API.For information on adding and configuring policies, see Policies in API Management.

Políticas entre domíniosCross domain policies

  • Permitir chamadas entre domínios – torna a API acessível a partir de clientes do Adobe Flash e do Microsoft Silverlight baseados em navegador.Allow cross-domain calls - Makes the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.
  • CORS -adiciona suporte a CORS (compartilhamento de recursos entre origens) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegador.CORS - Adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.
  • JSONP -adiciona suporte a JSON com preenchimento (JSONP) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegador JavaScript.JSONP - Adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients.

Permitir chamadas entre domíniosAllow cross-domain calls

Use a cross-domain política para tornar a API acessível por meio de clientes do Adobe Flash e do Microsoft Silverlight baseados em navegador.Use the cross-domain policy to make the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.

Declaração de políticaPolicy statement

<cross-domain>
    <!-Policy configuration is in the Adobe cross-domain policy file format,
        see https://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html-->
</cross-domain>

ExemploExample

<cross-domain>
    <cross-domain>
        <allow-http-request-headers-from domain='*' headers='*' />
    </cross-domain>
</cross-domain>

ElementosElements

NomeName DescriçãoDescription RequeridoRequired
entre domínioscross-domain Elemento raiz.Root element. Os elementos filho devem estar em conformidade com a especificação de arquivo de política entre domínios do Adobe.Child elements must conform to the Adobe cross-domain policy file specification. SimYes

UtilizaçãoUsage

Essa política pode ser usada nas seções e nos escopos de política a seguir. This policy can be used in the following policy sections and scopes.

  • Seções de política: entradaPolicy sections: inbound
  • Escopos de política: todos os escoposPolicy scopes: all scopes

CORSCORS

A cors política adiciona suporte a CORS (compartilhamento de recursos entre origens) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegador.The cors policy adds cross-origin resource sharing (CORS) support to an operation or an API to allow cross-domain calls from browser-based clients.

O CORS permite que um navegador e um servidor interajam e determinem se devem ou não permitir solicitações entre origens específicas (ou seja, chamadas de XMLHttpRequest feitas do JavaScript em uma página da Web para outros domínios).CORS allows a browser and a server to interact and determine whether or not to allow specific cross-origin requests (i.e. XMLHttpRequests calls made from JavaScript on a web page to other domains). Isso permite mais flexibilidade do que permitir apenas solicitações de mesma origem, mas é mais seguro do que permitir todas as solicitações entre origens.This allows for more flexibility than only allowing same-origin requests, but is more secure than allowing all cross-origin requests.

Declaração de políticaPolicy statement

<cors allow-credentials="false|true">
    <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>

ExemploExample

Este exemplo demonstra como dar suporte a solicitações de simulação, como aquelas com cabeçalhos personalizados ou métodos diferentes de GET e POST.This example demonstrates how to support pre-flight requests, such as those with custom headers or methods other than GET and POST. Para dar suporte a cabeçalhos personalizados e verbos HTTP adicionais, use allowed-methods as allowed-headers seções e, conforme mostrado no exemplo a seguir.To support custom headers and additional HTTP verbs, use the allowed-methods and allowed-headers sections as shown in the following example.

<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>

ElementosElements

NomeName DescriçãoDescription RequeridoRequired PredefiniçãoDefault
CORScors Elemento raiz.Root element. SimYes N/AN/A
origens permitidasallowed-origins Contém origin elementos que descrevem as origens permitidas para solicitações entre domínios.Contains origin elements that describe the allowed origins for cross-domain requests. allowed-originspode conter um único origin elemento que especifica * para permitir qualquer origem, ou um ou mais origin elementos que contenham um URI.allowed-origins can contain either a single origin element that specifies * to allow any origin, or one or more origin elements that contain a URI. SimYes N/AN/A
origemorigin O valor pode ser * para permitir todas as origens ou um URI que especifique uma única origem.The value can be either * to allow all origins, or a URI that specifies a single origin. O URI deve incluir um esquema, um host e uma porta.The URI must include a scheme, host, and port. SimYes Se a porta for omitida em um URI, a porta 80 será usada para HTTP e a porta 443 será usada para HTTPS.If the port is omitted in a URI, port 80 is used for HTTP and port 443 is used for HTTPS.
métodos permitidosallowed-methods Esse elemento será necessário se forem permitidos métodos diferentes de GET ou POST.This element is required if methods other than GET or POST are allowed. Contém method elementos que especificam os verbos HTTP com suporte.Contains method elements that specify the supported HTTP verbs. NãoNo Se esta seção não estiver presente, GET e POST terão suporte.If this section is not present, GET and POST are supported.
methodmethod Especifica um verbo HTTP.Specifies an HTTP verb. Pelo menos um method elemento será necessário se a allowed-methods seção estiver presente.At least one method element is required if the allowed-methods section is present. N/AN/A
cabeçalhos permitidosallowed-headers Esse elemento contém header elementos que especificam os nomes dos cabeçalhos que podem ser incluídos na solicitação.This element contains header elements specifying names of the headers that can be included in the request. NãoNo N/AN/A
expose-headersexpose-headers Esse elemento contém header elementos que especificam os nomes dos cabeçalhos que poderão ser acessados pelo cliente.This element contains header elements specifying names of the headers that will be accessible by the client. NãoNo N/AN/A
cabeçalhoheader Especifica um nome de cabeçalho.Specifies a header name. Pelo menos um header elemento é necessário no allowed-headers ou expose-headers se a seção estiver presente.At least one header element is required in allowed-headers or expose-headers if the section is present. N/AN/A

AtributosAttributes

NomeName DescriçãoDescription RequeridoRequired PredefiniçãoDefault
allow-credentialsallow-credentials O Access-Control-Allow-Credentials cabeçalho na resposta de simulação será definido como o valor desse atributo e afetará a capacidade do cliente de enviar credenciais em solicitações entre domínios.The Access-Control-Allow-Credentials header in the preflight response will be set to the value of this attribute and affect the client’s ability to submit credentials in cross-domain requests. NãoNo falsefalse
simulação-resultado-máx-idadepreflight-result-max-age O Access-Control-Max-Age cabeçalho na resposta de simulação será definido como o valor desse atributo e afetará a capacidade do agente do usuário de armazenar em cache a resposta de simulação.The Access-Control-Max-Age header in the preflight response will be set to the value of this attribute and affect the user agent’s ability to cache pre-flight response. NãoNo 00

UtilizaçãoUsage

Essa política pode ser usada nas seções e nos escopos de política a seguir. This policy can be used in the following policy sections and scopes.

  • Seções de política: entradaPolicy sections: inbound
  • Escopos de política: todos os escoposPolicy scopes: all scopes

JSONPJSONP

A jsonp política adiciona o suporte a JSON com preenchimento (JSONP) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegador JavaScript.The jsonp policy adds JSON with padding (JSONP) support to an operation or an API to allow cross-domain calls from JavaScript browser-based clients. JSONP é um método usado em programas JavaScript para solicitar dados de um servidor em um domínio diferente.JSONP is a method used in JavaScript programs to request data from a server in a different domain. JSONP ignora a limitação imposta pela maioria dos navegadores da Web onde o acesso a páginas da Web deve estar no mesmo domínio.JSONP bypasses the limitation enforced by most web browsers where access to web pages must be in the same domain.

Declaração de políticaPolicy statement

<jsonp callback-parameter-name="callback function name" />

ExemploExample

<jsonp callback-parameter-name="cb" />

Se você chamar o método sem o parâmetro de retorno de chamada? CB = XXX, ele retornará um JSON simples (sem um wrapper de chamada de função).If you call the method without the callback parameter ?cb=XXX it will return plain JSON (without a function call wrapper).

Se você adicionar o parâmetro ?cb=XXX de retorno de chamada, ele retornará um resultado de JSONP, encapsulando os resultados JSON originais em torno da função de retorno de chamada comoXYZ('<json result goes here>');If you add the callback parameter ?cb=XXX it will return a JSONP result, wrapping the original JSON results around the callback function like XYZ('<json result goes here>');

ElementosElements

NomeName DescriçãoDescription RequeridoRequired
JSONPjsonp Elemento raiz.Root element. SimYes

AtributosAttributes

NomeName DescriçãoDescription RequeridoRequired PredefiniçãoDefault
retorno de chamada-nome-do-parâmetrocallback-parameter-name A chamada de função JavaScript entre domínios prefixada com o nome de domínio totalmente qualificado em que a função reside.The cross-domain JavaScript function call prefixed with the fully qualified domain name where the function resides. SimYes N/AN/A

UtilizaçãoUsage

Essa política pode ser usada nas seções e nos escopos de política a seguir. This policy can be used in the following policy sections and scopes.

  • Seções de política: saídaPolicy sections: outbound
  • Escopos de política: todos os escoposPolicy scopes: all scopes

Passos SeguintesNext steps

Para obter mais informações sobre como trabalhar com políticas, consulte:For more information working with policies, see: