Předplatná ve službě Azure API Management

PLATÍ PRO: Všechny úrovně služby API Management

Ve službě Azure API Management jsou předplatná nejběžnějším způsobem, jak uživatelé rozhraní API přistupovat k rozhraním API publikovaným prostřednictvím instance služby API Management. Tento článek obsahuje přehled konceptu.

Poznámka:

Předplatné služby API Management se používá speciálně k volání rozhraní API prostřednictvím služby API Management pomocí klíče předplatného. Není to stejné jako předplatné Azure.

Co jsou předplatná?

Publikováním rozhraní API prostřednictvím API Management můžete snadno zabezpečit přístup k rozhraní API pomocí klíčů předplatného. Vývojáři, kteří potřebují využívat publikovaná rozhraní API, musí při volání těchto rozhraní API v požadavcích HTTP zahrnout platný klíč předplatného. Bez platného klíče předplatného jsou volání:

  • Okamžitě odmítnuta bránou API Management.
  • Nejsou přesměrována na back-endové služby.

Pro přístup k rozhraním API potřebují vývojáři předplatné a klíč předplatného. Předplatné je pojmenovaný kontejner pro dvojici klíčů předplatného.

Navíc

  • Vývojáři můžou získat předplatná bez nutnosti schválení od vydavatelů rozhraní API.
  • Vydavatelé rozhraní API můžou vytvářet předplatná přímo pro uživatele rozhraní API.

Tip

API Management také podporuje další mechanismy zabezpečení přístupu k rozhraním API, včetně následujících příkladů:

Správa klíčů předplatného

Pravidelné opětovné vygenerování klíčů je běžná bezpečnostní opatření. Stejně jako většina služeb Azure vyžadujících klíč předplatného generuje služba API Management klíče ve dvojicích. Každá aplikace používající službu může přepnout z klíče A na klíč B a znovu vygenerovat klíč A s minimálním přerušením a naopak.

Nastavení konkrétních klíčů místo opětovného vygenerování je možné provést vyvoláním předplatného služby Azure API Management – Vytvoření nebo aktualizace rozhraní Azure REST API. Konkrétně je properties.primaryKey potřeba nastavit v textu požadavku HTTP a/nebo properties.secondaryKey je potřeba ho nastavit.

Poznámka:

  • Api Management neposkytuje integrované funkce pro správu životního cyklu klíčů předplatného, jako je nastavení dat vypršení platnosti nebo automatické obměny klíčů. Můžete vyvíjet pracovní postupy pro automatizaci těchto procesů pomocí nástrojů, jako je Azure PowerShell nebo sady Azure SDK.
  • Pokud chcete vynutit časově omezený přístup k rozhraním API, můžou vydavatelé rozhraní API používat zásady s klíči předplatného nebo použít mechanismus, který poskytuje integrované vypršení platnosti, jako je ověřování na základě tokenu.

Rozsah předplatných

Předplatná můžou být přidružená k různým rozsahům: produkt, všechna rozhraní API nebo jednotlivá rozhraní API.

Předplatná pro produkt

Předplatná ve službě API Management byla tradičně přidružená k jednomu oboru produktu . Vývojáři:

  • Našel se seznam produktů na portálu pro vývojáře.
  • Odeslali žádosti o předplatné pro produkty, které chtěli použít.
  • Klíče v těchto předplatných (schválené automaticky nebo vydavateli rozhraní API) použijte pro přístup ke všem rozhraním API v produktu.

Portál pro vývojáře v současné době zobrazuje jenom předplatná oboru produktů v části Profil uživatele.

Předplatná produktů

Předplatná pro všechna rozhraní API nebo jednotlivá rozhraní API

Můžete také vytvořit klíče, které udělí přístup:

  • Jedno rozhraní API nebo
  • Všechna rozhraní API v instanci služby API Management.

V těchto případech nemusíte nejdřív vytvářet produkt a přidávat do něj rozhraní API.

Předplatné s přístupem pro celý přístup

Každá instance služby API Management je součástí integrovaného předplatného s přístupem, které uděluje přístup ke všem rozhraním API. Toto předplatné s vymezeným oborem služby usnadňuje vlastníkům služeb testování a ladění rozhraní API v rámci testovací konzoly.

Upozorňující

Předplatné s veškerým přístupem umožňuje přístup ke každému rozhraní API v instanci služby API Management a mělo by ho používat jenom autorizovaní uživatelé. Toto předplatné nikdy nepoužívejte pro rutinní přístup k rozhraní API ani do klientských aplikací vkládejte klíč předplatného s přístupem.

Poznámka:

Pokud používáte předplatné s oborem rozhraní API, předplatné all-API nebo předdefinované předplatné s přístupem, zásady nakonfigurované v oboru produktu se na žádosti z tohoto předplatného nepoužijí.

Samostatná předplatná

Api Management také umožňuje samostatná předplatná, která nejsou přidružená k vývojářskému účtu. Tato funkce je užitečná ve scénářích podobných několika vývojářům nebo týmům, které sdílejí předplatné.

Vytvořením předplatného bez přiřazení vlastníka se stane samostatné předplatné. Pokud chcete vývojářům a zbytku týmu udělit přístup k samostatnému klíči předplatného, proveďte následující:

  • Ručně sdílejte klíč předplatného.
  • Pomocí vlastního systému zpřístupněte klíč předplatného vašemu týmu.

Vytváření a správa předplatných na webu Azure Portal

Vydavatelé rozhraní API můžou vytvářet předplatná přímo na webu Azure Portal.

Při vytváření na portálu je předplatné ve stavu Aktivní , což znamená, že odběratel může volat přidružené rozhraní API pomocí platného klíče předplatného. Podle potřeby můžete změnit stav předplatného. Můžete například pozastavit, zrušit nebo odstranit jakékoli předplatné (včetně integrovaného předplatného s přístupem) a zabránit tak přístupu k rozhraní API.

Použití klíče předplatného

Předplatitel může použít klíč předplatného služby API Management jedním ze dvou způsobů:

  • Přidejte do požadavku hlavičku HTTP klíče Ocp-Apim-Subscription-Key a předáte hodnotu platného klíče předplatného.

  • Do adresy URL zahrňte parametr dotazu klíč předplatného a platnou hodnotu. Parametr dotazu se kontroluje jenom v případě, že hlavička není k dispozici.

Tip

Ocp-Apim-Subscription-Key je výchozí název hlavičky klíče předplatného a klíč předplatného je výchozí název parametru dotazu. V případě potřeby můžete tyto názvy upravit v nastavení pro každé rozhraní API. Například na portálu aktualizujte tyto názvy na kartě Nastavení rozhraní API.

Poznámka:

Pokud je součástí hlavičky požadavku nebo parametru dotazu, klíč předplatného se ve výchozím nastavení předá back-endu a může být vystavený v protokolech monitorování back-endu nebo v jiných systémech. Pokud se tato data považují za citlivá, můžete na konci oddílu inbound nakonfigurovat zásadu pro odebrání hlavičky klíče předplatného (set-header) nebo parametru dotazu (set-query-parameter).

Povolení nebo zakázání požadavku předplatného pro přístup k rozhraní API nebo produktu

Při vytváření rozhraní API se ve výchozím nastavení vyžaduje klíč předplatného pro přístup k rozhraní API. Podobně když vytvoříte produkt, ve výchozím nastavení se pro přístup k rozhraní API přidanému do produktu vyžaduje klíč předplatného. V určitých scénářích může vydavatel rozhraní API chtít publikovat produkt nebo konkrétní rozhraní API veřejnosti bez požadavků na předplatná. I když se vydavatel může rozhodnout povolit nezabezpečený (anonymní) přístup k určitým rozhraním API, doporučujeme nakonfigurovat jiný mechanismus pro zabezpečený klientský přístup.

Upozornění

Při konfiguraci produktu nebo rozhraní API, které nevyžaduje předplatné, používejte opatrně. 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.

Poznámka:

Otevřené produkty mají zakázané nastavení Vyžadovat předplatné , což znamená, že uživatelé se k odběru nemusí přihlásit. Z tohoto důvodu se otevřené produkty nezobrazují na stránce Produkty na portálu pro vývojáře.

Požadavek na předplatné můžete zakázat při vytváření rozhraní API nebo produktu nebo později.

Zakázání požadavku na předplatné pomocí portálu:

  • Zakázat požadavek na produkt – Na stránce Nastavení produktu zakažte předplatné.
  • Zákaz požadavku na rozhraní API – Na stránce Nastavení rozhraní API zakažte požadované předplatné.

Po zakázání požadavku na předplatné se k vybranému rozhraní API nebo rozhraním API dostanete bez klíče předplatného.

Jak služba API Management zpracovává požadavky s klíči předplatného nebo bez klíče předplatného

Požadavek rozhraní API s klíčem předplatného

Když API Management obdrží od klienta požadavek rozhraní API s klíčem předplatného, zpracuje požadavek podle těchto pravidel:

  1. Zkontrolujte, jestli se jedná o platný klíč přidružený k aktivnímu předplatnému:

    • Předplatné s oborem rozhraní API
    • Předplatné s oborem produktu, který je přiřazený k rozhraní API
    • Předplatné s oborem všech rozhraní API
    • Předplatné s oborem služby (předdefinované předplatné se všemi přístupy)

    Pokud je zadaný platný klíč pro aktivní předplatné v příslušném oboru, je přístup povolený. Zásady se použijí v závislosti na konfiguraci definice zásad v daném oboru.

  2. V opačném případě dojde k odepření přístupu (401 Chyba odepření přístupu).

Požadavek rozhraní API s klíčem předplatného

Když API Management obdrží od klienta požadavek rozhraní API s klíčem předplatného, zpracuje požadavek podle těchto pravidel:

  1. Nejprve zkontrolujte existenci produktu, který obsahuje rozhraní API, ale nevyžaduje předplatné ( otevřený produkt). Pokud otevřený produkt existuje, zpracujte požadavek v kontextu rozhraní API, zásad a pravidel přístupu nakonfigurovaných pro produkt. Rozhraní API může být přidružené maximálně k jednomu otevřenému produktu.
  2. Pokud se nenajde otevřený produkt zahrnující rozhraní API, zkontrolujte, jestli rozhraní API vyžaduje předplatné. Pokud předplatné není povinné, zpracujte požadavek v kontextu tohoto rozhraní API a operace.
  3. Pokud se nenajde žádný nakonfigurovaný produkt nebo rozhraní API, přístup se odepře (401 Chyba odepření přístupu).

Souhrnná tabulka

Následující tabulka shrnuje, jak brána zpracovává požadavky rozhraní API s klíči předplatného nebo bez těchto klíčů v různých scénářích. Jsou zaznamenány konfigurace, které by mohly potenciálně povolit nezamýšlený anonymní přístup k rozhraní API.

Všechny produkty přiřazené k rozhraní API vyžadují předplatné. Rozhraní API vyžaduje předplatné. Volání rozhraní API s klíčem předplatného Volání rozhraní API bez klíče předplatného Typické scénáře
✔️ ✔️ Povolený přístup:

• Kód s vymezeným produktem
• Klíč s oborem rozhraní API
• Všechny klíče s vymezeným oborem rozhraní API
• Klíč s vymezeným oborem služby

Přístup byl odepřen:

• Jiný klíč, který není vymezen na příslušný produkt nebo rozhraní API
Odepřený přístup Přístup k chráněnému rozhraní API pomocí předplatného s oborem produktu nebo s oborem rozhraní API
✔️ Povolený přístup:

• Kód s vymezeným produktem
• Klíč s oborem rozhraní API
• Všechny klíče s vymezeným oborem rozhraní API
• Klíč s vymezeným oborem služby

Přístup byl odepřen:

• Jiný klíč, který není vymezen na příslušný produkt nebo rozhraní API
Povolený přístup (kontext rozhraní API) • Chráněný přístup k rozhraní API s předplatným vymezeným produktem

• Anonymní přístup k rozhraní API. Pokud anonymní přístup není zamýšlený, nakonfigurujte zásady na úrovni rozhraní API tak, aby vynucovali ověřování a autorizaci.
1 ✔️ Povolený přístup:

• Kód s vymezeným produktem
• Klíč s oborem rozhraní API
• Všechny klíče s vymezeným oborem rozhraní API
• Klíč s vymezeným oborem služby

Přístup byl odepřen:

• Jiný klíč, který není vymezen na příslušný produkt nebo rozhraní API
Povolený přístup (otevřít kontext produktu) • Chráněný přístup k rozhraní API s předplatným vymezeným rozhraním API

• Anonymní přístup k rozhraní API. Pokud anonymní přístup není zamýšlený, nakonfigurujte zásady produktu tak, aby vynucovali ověřování a autorizaci.
1 Povolený přístup:

• Kód s vymezeným produktem
• Klíč s oborem rozhraní API
• Všechny klíče s vymezeným oborem rozhraní API
• Klíč s vymezeným oborem služby

Přístup byl odepřen:

• Jiný klíč, který není vymezen na příslušný produkt nebo rozhraní API
Povolený přístup (otevřít kontext produktu) Anonymní přístup k rozhraní API Pokud anonymní přístup není zamýšlený, nakonfigurujte zásady produktu tak, aby vynucovali ověřování a autorizaci.

1 Otevřený produkt existuje, který je přidružený k rozhraní API.

Důležité informace

  • Přístup k rozhraní API v kontextu produktu je stejný bez ohledu na to, jestli je produkt publikovaný nebo ne. Zrušení publikování produktu ho skryje z portálu pro vývojáře, ale neoznačí nové nebo existující klíče předplatného.
  • I když produkt nebo rozhraní API nevyžaduje předplatné, je možné použít platný klíč z aktivního předplatného, který umožňuje přístup k produktu nebo rozhraní API.
  • Kontext přístupu k rozhraní API znamená zásady a řízení přístupu, které se použijí v určitém oboru (například v rozhraní API nebo produktu).

Další kroky

Získejte další informace o službě API Management: