Políticas entre domínios de Gerenciamento de APIAPI Management cross domain policies

Este tópico fornece uma referência para as políticas de Gerenciamento de API a seguir.This topic provides a reference for the following API Management policies. Para obter mais informações sobre como adicionar e configurar políticas, consulte Políticas de 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 por meio de clientes Adobe Flash e Microsoft Silverlight baseados em navegadores.Allow cross-domain calls - Makes the API accessible from Adobe Flash and Microsoft Silverlight browser-based clients.
  • CORS - Adicionar suporte de compartilhamento de recursos entre origens (CORS) a uma operação ou a uma API para permitir chamadas entre domínios de clientes baseados em navegadores.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 JSON com preenchimento (JSONP) a uma operação ou a uma API para permitir chamadas entre domínios de clientes JavaScript baseados em navegadores.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 política cross-domain para tornar a API acessível por clientes baseados em navegadores do Adobe Flash e do Microsoft Silverlight.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-policy>
        <allow-http-request-headers-from domain='*' headers='*' />
    </cross-domain-policy>
</cross-domain>

ElementosElements

NOMEName DESCRIÇÃODescription ObrigatórioRequired
cross-domaincross-domain Elemento raiz.Root element. Elementos filho devem estar de acordo 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

UsoUsage

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

  • Seções de política: de entradaPolicy sections: inbound
  • Escopos de política: globalPolicy scopes: global

CORSCORS

A política cors adiciona suporte do CORS (compartilhamento de recurso entre origens) a uma operação ou 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 determina e solicitações entre origens específicas devem ou não ser aceitas (por exemplo, chamadas XMLHttpRequests feitas por meio de 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 maior flexibilidade do que permitir somente solicitações com a 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 preliminares, como as 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 oferecer suporte a cabeçalhos personalizados e verbos HTTP adicionais, use as seções allowed-methods e allowed-headers 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 ObrigatórioRequired PadrãoDefault
corscors Elemento raiz.Root element. SimYes N/DN/A
allowed-originsallowed-origins Contém elementos origin que descrevem as origens permitidas para solicitações entre domínios.Contains origin elements that describe the allowed origins for cross-domain requests. allowed-origins pode conter um único elemento origin que especifica * para permitir qualquer origem, ou um ou mais elementos origin que contêm uma 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/DN/A
originorigin O valor pode ser * para permitir todas as origens ou um URI que especifica uma origem única.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 é usada para HTTP e a porta 443 é usada para HTTPS.If the port is omitted in a URI, port 80 is used for HTTP and port 443 is used for HTTPS.
allowed-methodsallowed-methods Esse elemento é necessário se métodos diferentes de GET ou POST forem permitidos.This element is required if methods other than GET or POST are allowed. Contém elementos method que especificam os verbos HTTP compatíveis.Contains method elements that specify the supported HTTP verbs. NãoNo Se esta seção não estiver presente, GET e POST são compatíveis.If this section is not present, GET and POST are supported.
methodmethod Especifica um verbo HTTP.Specifies an HTTP verb. Pelo menos um elemento method é necessário se a seção allowed-methods estiver presente.At least one method element is required if the allowed-methods section is present. N/DN/A
allowed-headersallowed-headers Esse elemento contém elementos header 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/DN/A
expose-headersexpose-headers Esse elemento contém elementos header que especificam os nomes dos cabeçalhos que ficarão acessíveis para o cliente.This element contains header elements specifying names of the headers that will be accessible by the client. NãoNo N/DN/A
cabeçalhoheader Especifica um nome de cabeçalho.Specifies a header name. Pelo menos um elemento header é necessário em 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/DN/A

AtributosAttributes

NOMEName DESCRIÇÃODescription ObrigatórioRequired PadrãoDefault
allow-credentialsallow-credentials O cabeçalho Access-Control-Allow-Credentials na resposta preliminar será definido com o valor desse atributo e afetará a capacidade do cliente para enviar credenciais nas 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 falsofalse
preflight-result-max-agepreflight-result-max-age O cabeçalho Access-Control-Max-Age na resposta preliminar será definido com o valor desse atributo e afetará a capacidade do agente do usuário para colocar em cache a resposta preliminar.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

UsoUsage

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

  • Seções de política: de entradaPolicy sections: inbound
  • Escopos de política: global, produto, API, operaçãoPolicy scopes: global, product, API, operation

JSONPJSONP

A política jsonp adiciona suporte a JSONP com padding (JSONP) a uma operação ou API para permitir chamadas entre domínios de clientes JavaScript baseados em navegador.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. O 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. O JSONP ignora a limitação aplicada pela maioria dos navegadores da Web quando o acesso às páginas da Web precisa ser do 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, será retornado o 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 de retorno de chamada ?cb=XXX, será retornado um resultado JSONP, dispondo os resultados JSON originais em torno da função de retorno de chamada como XYZ('<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 ObrigatórioRequired
jsonpjsonp Elemento raiz.Root element. SimYes

AtributosAttributes

NOMEName DESCRIÇÃODescription ObrigatórioRequired PadrãoDefault
callback-parameter-namecallback-parameter-name A chamada da função JavaScript entre domínios, prefixada com o nome do domínio onde a função reside totalmente qualificado.The cross-domain JavaScript function call prefixed with the fully qualified domain name where the function resides. SimYes N/DN/A

UsoUsage

Essa política pode ser usada nas seções e nos escopos da 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: global, produto, API, operaçãoPolicy scopes: global, product, API, operation

Próximas etapasNext steps

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