Zásady pro API Management napříč doménami
V tomto tématu najdete referenční informace pro následující zásady API Management. Informace o přidávání a konfiguraci zásad najdete v tématu zásady v API Management.
Zásady pro více domén
- Povolení mezidoménových volání – ZPŘÍSTUPŇUJE rozhraní API z klientů Adobe Flash a prohlížeče založeného na prohlížeči Microsoft Silverlight.
- CORS – přidává podporu pro sdílení prostředků mezi zdroji (CORS) pro operaci nebo rozhraní API, která umožňuje mezidoménová volání z klientů založených na prohlížeči.
- JSONP – přidá do operace nebo do rozhraní API podporu formátu JSON s doplňováním (JSONP), která umožňuje mezidoménová volání z klientů v prohlížeči JavaScript.
Povolení volání mezi doménami
Použijte cross-domain zásady, aby rozhraní API bylo dostupné z klientů založených na prohlížeči Adobe Flash a Microsoft Silverlight.
Prohlášení o zásadách
<cross-domain>
<!-Policy configuration is in the Adobe cross-domain policy file format,
see https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/CrossDomain_PolicyFile_Specification.pdf-->
</cross-domain>
Příklad
<cross-domain>
<allow-http-request-headers-from domain='*' headers='*' />
</cross-domain>
Elementy
| Název | Popis | Povinné |
|---|---|---|
| mezi doménami | Kořenový element. Podřízené elementy musí odpovídat specifikaci souboru zásad pro Adobe více domén. | Yes |
Využití
Tyto zásady se dají použít v následujících oddílech a oborechzásad.
- Oddíly zásad: příchozí
- Obory zásad: všechny rozsahy
CORS
Tato cors zásada přidá podporu pro sdílení prostředků mezi zdroji (CORS) pro operaci nebo rozhraní API, která umožňuje mezidoménová volání z klientů založených na prohlížeči.
Poznámka
Pokud požadavek odpovídá operaci s metodou, která je definovaná v rozhraní API, nespustí se logika zpracování požadavků před letem přidruženou k zásadám CORS. Proto je možné tyto operace použít k implementaci vlastní logiky zpracování před lety.
CORS umožňuje prohlížeči a serveru spolupracovat a určit, jestli se mají povolit konkrétní požadavky na více zdrojů (tj. volání XMLHttpRequest prováděné z JavaScriptu na webové stránce v jiných doménách). Díky tomu je větší flexibilita než povolování pouze stejných požadavků, ale je bezpečnější než povolení všech žádostí mezi zdroji.
Pokud chcete povolit interaktivní konzolu na portálu pro vývojáře, musíte použít zásadu CORS. Podrobnosti najdete v dokumentaci k portálu pro vývojáře .
Prohlášení o zásadách
<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>
Příklad
Tento příklad ukazuje, jak podporovat žádosti o předběžné lety, jako jsou ty s vlastními záhlavími nebo metodami, které jsou jiné než Get a post. Pro podporu vlastních hlaviček a dalších příkazů HTTP použijte allowed-methods oddíly a, allowed-headers jak je znázorněno v následujícím příkladu.
<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>
Elementy
| Název | Popis | Povinné | Výchozí |
|---|---|---|---|
| CORS | Kořenový element. | Yes | – |
| povolené – počátek | Obsahuje origin prvky, které popisují povolené zdroje pro požadavky mezi doménami. allowed-origins může obsahovat jeden origin prvek, který určuje, že * má být povolen libovolný původ, nebo jeden či více origin prvků, které obsahují identifikátor URI. |
Yes | – |
| origin (zdroj) | Hodnota může být buď * tak, aby povolovala všechny zdroje, nebo identifikátor URI, který určuje jeden počátek. Identifikátor URI musí obsahovat schéma, hostitele a port. |
Yes | Pokud je port v identifikátoru URI vynechán, použije se port 80 pro protokol HTTP a port 443 pro protokol HTTPS. |
| povolené – metody | Tento prvek je vyžadován, pokud jsou povoleny jiné metody než GET nebo POST. Obsahuje method prvky, které určují podporované příkazy HTTP. Hodnota * označuje všechny metody. |
No | Pokud tato část není k dispozici, jsou podporovány GET a POST. |
| method | Určuje příkaz HTTP. | methodPokud je oddíl přítomen, je vyžadován alespoň jeden prvek allowed-methods . |
– |
| povoleno – hlavičky | Tento prvek obsahuje header prvky, které určují názvy hlaviček, které mohou být zahrnuty v žádosti. |
No | – |
| vystavení – hlavičky | Tento prvek obsahuje header prvky, které určují názvy hlaviček, které budou přístupné pro klienta. |
No | Není k dispozici |
| header | Určuje název záhlaví. | headerV nebo je- allowed-headers li oddíl přítomen, je požadován alespoň jeden prvek expose-headers . |
– |
Atributy
| Název | Popis | Povinné | Výchozí |
|---|---|---|---|
| povolení – pověření | Access-Control-Allow-CredentialsZáhlaví v odpovědi na kontrolu před výstupem bude nastaveno na hodnotu tohoto atributu a bude mít vliv na schopnost klienta odesílat přihlašovací údaje v rámci požadavků mezi doménami. |
No | false (nepravda) |
| ukončené – nespárované – požadavek | Tento atribut řídí zpracování žádostí mezi zdroji, které neodpovídají nastavení zásad CORS. Pokud je žádost o možnosti zpracována jako požadavek před letem a neshoduje se s nastavením zásad CORS: Pokud je atribut nastaven na hodnotu true , okamžitě ukončí požadavek s prázdnou odpovědí 200 OK; Pokud je atribut nastavený na false , podívejte se na příchozí pro jiné zásady CORS v oboru, které jsou přímé podřízené elementu příchozího a použijte je. Pokud se nenaleznou žádné zásady CORS, ukončete žádost s prázdnou odpovědí 200 OK. Když požadavek GET nebo HEAD zahrnuje hlavičku Origin (a proto se zpracovává jako požadavek na více zdrojů) a neshoduje se s nastavením zásad CORS: Pokud je atribut nastavený na hodnotu true , okamžitě ukončete požadavek s prázdnou odpovědí 200 OK. Pokud je atribut nastavený na false , umožněte, aby požadavek pokračoval normálně a nepřidal do odpovědi HLAVIČKY CORS. |
No | true |
| Kontrola před výstupem – výsledek – maximum – stáří | Access-Control-Max-AgeZáhlaví v odpovědi na kontrolu před výstupem bude nastaveno na hodnotu tohoto atributu a bude mít vliv na schopnost uživatelského agenta ukládat do mezipaměti před letem. |
No | 0 |
Využití
Tyto zásady se dají použít v následujících oddílech a oborechzásad.
- Oddíly zásad: příchozí
- Obory zásad: všechny obory
JSONP
Tato zásada přidá do operace nebo rozhraní API json s podporou odsazení (JSONP), aby bylo možné volat z prohlížečových klientů jsonp JavaScriptu mezi doménami. JSONP je metoda, která se používá v programech JavaScriptu k vyžádání dat ze serveru v jiné doméně. JSONP obchází omezení vynucované většinou webových prohlížečů, ve kterých musí být přístup k webovým stránkám ve stejné doméně.
Prohlášení o zásadách
<jsonp callback-parameter-name="callback function name" />
Příklad
<jsonp callback-parameter-name="cb" />
Pokud zavoláte metodu bez parametru zpětného volání ?cb=XXX, vrátí prostý json (bez obálky volání funkce).
Pokud přidáte parametr zpětného volání, vrátí výsledek JSONP a zabalí původní výsledky ?cb=XXX JSON kolem funkce zpětného volání, jako je . XYZ('<json result goes here>');
Elementy
| Název | Popis | Povinné |
|---|---|---|
| Jsonp | Kořenový element. | Yes |
Atributy
| Název | Popis | Povinné | Výchozí |
|---|---|---|---|
| callback-parameter-name | Funkce JavaScriptu mezi doménami volá předponu s plně kvalifikovaným názvem domény, kde se funkce nachází. | Yes | – |
Využití
Tuto zásadu můžete použít v následujících oddílech zásad a oborech.
- Oddíly zásad: odchozí
- Obory zásad: všechny obory
Další kroky
Další informace o práci se zásadami najdete v těchto tématu:
- Zásady v API Management
- Transformovat rozhraní API
- Referenční informace o zásadách pro úplný seznam prohlášení o zásadách a jejich nastavení
- Ukázky zásad