Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Všechny úrovně služby API Management
Zásada cors přidává podporu sdílení prostředků mezi zdroji (CORS) k operaci nebo rozhraní API, aby bylo možné volat mezi doménami z klientů založených na prohlížeči.
Poznámka:
Nastavte prvky zásad a podřízené prvky v pořadí uvedeném v prohlášení o zásadách. Portál poskytuje průvodce editorem založeným na formulářích, který vám pomůže s konfigurací této zásady. Přečtěte si další informace o tom, jak nastavit nebo upravit zásady služby API Management.
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>
Atributy
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| allow-credentials | Hlavička Access-Control-Allow-Credentials v předběžné odpovědi se nastaví na hodnotu tohoto atributu a ovlivní schopnost klienta odesílat přihlašovací údaje v požadavcích mezi doménou. Výrazy zásad jsou povolené. |
Ne | false |
| terminate-unmatched-request | Řídí zpracování požadavků mezi zdroji, které neodpovídají nastavení zásad. Výrazy zásad jsou povolené. Když OPTIONS se požadavek zpracuje jako předběžný požadavek a Origin hlavička neodpovídá nastavení zásad:- Pokud je atribut nastaven na true, okamžitě ukončete požadavek prázdnou 200 OK odpovědí.– Pokud je atribut nastaven na false, zkontrolujte příchozí u jiných zásad v oboru cors , které jsou přímé podřízené položky příchozího elementu, a použijte je. Pokud nejsou nalezeny žádné cors zásady, ukončete žádost prázdnou 200 OK odpovědí. Pokud GET nebo HEAD požadavek obsahuje hlavičku Origin (a proto se zpracuje jako jednoduchý požadavek mezi zdroji) a neodpovídá nastavení zásad:- Pokud je atribut nastaven na true, okamžitě ukončete požadavek prázdnou 200 OK odpovědí.– Pokud je atribut nastavený na false, povolte požadavku normální pokračování a nepřidávejte do odpovědi hlavičky CORS. |
Ne | false |
Elementy
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| povolené zdroje | 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á povolit jakýkoli původ, nebo jeden nebo více origin prvků, které obsahují identifikátor URI. |
Ano | – |
| allowed-methods | Tento prvek je povinný, pokud jsou povoleny jiné GET metody nebo POST jsou povoleny. Obsahuje method prvky, které určují podporované příkazy HTTP. Hodnota * označuje všechny metody. |
Ne | Pokud tento oddíl není k dispozici GET a POST podporuje se. |
| allowed-headers | Tento element obsahuje header prvky určující názvy hlaviček, které lze zahrnout do požadavku. |
Ano | – |
| expose-headers | Tento element obsahuje header prvky určující názvy hlaviček, které budou přístupné klientem. |
Ne | – |
Upozornění
* V nastavení zásad používejte zástupný znak s opatrností. Tato konfigurace může být příliš přesvědčivá a může být rozhraní API zranitelnější vůči určitým hrozbám zabezpečení rozhraní API.
prvky s povolenými zdroji
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| origin | Hodnota může být buď * povolení všech zdrojů, nebo identifikátor URI, který určuje jeden zdroj. Identifikátor URI musí obsahovat schéma, hostitele a port. Nezadávejte uvozovky. |
Ano | Pokud je port vynechán v identifikátoru URI, použije se port 80 pro PROTOKOL HTTP a port 443 se používá pro HTTPS. |
atributy allowed-methods
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| preflight-result-max-age | Hlavička Access-Control-Max-Age v předběžné odpovědi se nastaví na hodnotu tohoto atributu a ovlivní schopnost uživatelského agenta ukládat předběžnou odpověď do mezipaměti. Výrazy zásad jsou povolené. |
Ne | 0 |
povolené elementy metod
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| metoda | Určuje příkaz HTTP. Výrazy zásad jsou povolené. | Nejméně jeden method prvek je vyžadován, pokud allowed-methods je oddíl k dispozici. |
– |
povolené elementy záhlaví
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| hlavička | Určuje název záhlaví. | Nejméně jeden header prvek je vyžadován v allowed-headers případě, že je tento oddíl k dispozici. |
– |
* Hodnota označuje všechna záhlaví.
prvky zpřístupňované hlavičky
| Jméno | Popis | Požaduje se | Výchozí |
|---|---|---|---|
| hlavička | Určuje název záhlaví. | Nejméně jeden header prvek je vyžadován v expose-headers případě, že je tento oddíl k dispozici. |
– |
* Hodnota označuje všechna záhlaví.
Využití
- Oddíly zásad: příchozí
- Obory zásad: globální, pracovní prostor, produkt, rozhraní API, operace
- Brány: Classic, v2, consumption, self-host, workspace
Poznámky k využití
- Zásady můžete nakonfigurovat
corsve více než jednom oboru (například v oboru produktu a globálním rozsahu). Ujistěte se, žebaseje element nakonfigurovaný v rozsahech operací, rozhraní API a produktů tak, aby dědil potřebné zásady v nadřazených oborech. -
corsBěhem předběžného letu se vyhodnocujíOPTIONSpouze zásady na požadavku. Zbývající nakonfigurované zásady se vyhodnocují na schválené žádosti.
- Tuto zásadu je možné v oddílu zásad použít jenom jednou.
Informace o CORS
CORS je standard založený na hlavičce HTTP, který umožňuje prohlížeči a serveru interagovat a určit, jestli mají povolit konkrétní požadavky mezi zdroji (XMLHttpRequest volání z JavaScriptu na webové stránce do jiných domén). To umožňuje větší flexibilitu než povolení pouze požadavků stejného zdroje, ale je bezpečnější než povolení všech požadavků mezi zdroji.
CORS určuje dva typy požadavků mezi zdroji:
Předběžné (nebo předběžné) požadavky – prohlížeč nejprve odešle požadavek HTTP pomocí
OPTIONSmetody na server, aby zjistil, jestli je skutečný požadavek povolený k odeslání. Pokud odpověď serveru obsahuje hlavičkuAccess-Control-Allow-Origin, která umožňuje přístup, prohlížeč následuje se skutečným požadavkem.Jednoduché požadavky – Tyto požadavky zahrnují jednu nebo více hlaviček navíc
Origin, ale neaktivují předběžný výstup CORS. Jsou povoleny pouze požadavky používající metodyGETaHEADomezenou sadu hlaviček požadavků.
cors scénáře zásad
Nakonfigurujte zásady ve službě cors API Management pro následující scénáře:
Na portálu pro vývojáře povolte interaktivní testovací konzolu. Podrobnosti najdete v dokumentaci k portálu pro vývojáře .
Poznámka:
Když povolíte CORS pro interaktivní konzolu, služba API Management ve výchozím nastavení nakonfiguruje
corszásady v globálním oboru.Povolte API Management odpovídat na předběžné požadavky nebo předávat jednoduché žádosti CORS, když back-endy neposkytují vlastní podporu CORS.
Poznámka:
Pokud požadavek odpovídá operaci s metodou definovanou
OPTIONSv rozhraní API, logika předběžného zpracování požadavků přidružená kcorszásadě se nespustí. Tyto operace se proto dají použít k implementaci vlastní logiky předběžnéhocorszpracování – například k použití zásad pouze za určitých podmínek.
Běžné problémy s konfigurací
-
Klíč předplatného v hlavičce – Pokud zásadu
corsnakonfigurujete v oboru produktu a vaše rozhraní API používá ověřování pomocí klíče předplatného, zásady nebudou fungovat, když se klíč předplatného předá v hlavičce. Alternativním řešením je upravit požadavky tak, aby jako parametr dotazu obsahovaly klíč předplatného. -
Rozhraní API s správou verzí hlaviček – Pokud nakonfigurujete zásadu
corsv oboru rozhraní API a vaše rozhraní API používá schéma správy verzí hlaviček, zásady nebudou fungovat, protože verze se předává v hlavičce. Možná budete muset nakonfigurovat alternativní metodu správy verzí, jako je cesta nebo parametr dotazu. -
Pořadí zásad – V případě,
corsže zásady nejsou první zásadou v příchozí části, může docházet k neočekávanému chování. Výběrem možnosti Vypočítat efektivní zásady v editoru zásad zkontrolujte pořadí vyhodnocení zásad v jednotlivých oborech. Obecně platí, že se použijí pouze prvnícorszásady. -
Prázdná odpověď 200 OK – v některých konfiguracích zásad se některé požadavky mezi zdroji dokončí s prázdnou
200 OKodpovědí. Tato odpověď se očekává, kdyžterminate-unmatched-requestje nastavená výchozí hodnotatruea příchozí požadavek má hlavičkuOrigin, která neodpovídá povolenému zdroji nakonfigurovaným v zásadáchcors.
Příklad
Tento příklad ukazuje, jak podporovat předběžné požadavky, například ty, které mají vlastní hlavičky nebo jiné metody než GET a POST. Pokud chcete podporovat vlastní hlavičky a další příkazy HTTP, použijte allowed-methods oddíly a allowed-headers oddíly, 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>
Související zásady
Související obsah
Další informace o práci se zásadami najdete v tématech:
- Kurz: Transformace a ochrana rozhraní API
- Referenční informace o zásadách pro úplný seznam prohlášení o zásadách a jejich nastavení
- Výrazy zásad
- Nastavení nebo úprava zásad
- Opakované použití konfigurací zásad
- Úložiště fragmentů zásad
- úložiště ukázek Policy
- Sada nástrojů zásad služby Azure API Management
- Získejte asistenci Copilotu při vytváření, vysvětlování a řešení problémů se zásadami.