Vytváření předplatných ve službě Azure API Management

Dokončeno

Když publikujete rozhraní API pomocí služby API Management, definujete, kdo má k rozhraní API přístup prostřednictvím brány.

Pro vaši meteorologickou aplikaci chcete zajistit, aby k rozhraní API měli přístup jenom zákazníci, kteří se přihlásili k odběru vaší služby, a mohli používat data prognózy. Toto řízení přístupu dosáhnete vydáním klíčů předplatného.

Důležité

Předplatná v tomto kontextu nesouvisí s předplatnými Azure používanými ke správě účtu Azure.

Tady se naučíte, jak používat klíče předplatného k zabezpečení rozhraní API.

Předplatná a klíče

Můžete se rozhodnout, že vaše rozhraní API a informace, které obsahují, budou volně dostupné. Obvykle ale chcete omezit přístup k uživatelům, kteří mají placené nebo organizace, se kterými máte pracovní vztah. Jedním ze způsobů, jak řídit přístup k vašim rozhraním API, je použití předplatných. Předplatná se používají k segmentace uživatelského přístupu k rozhraní API.

Klíče předplatného tvoří autorizaci umožňující přístup k těmto předplatným. Pokaždé, když klient odešle požadavek na chráněné rozhraní API, musí být do požadavku HTTP zahrnutý platný klíč předplatného, jinak se volání odmítne.

Klíč předplatného je jedinečný automaticky vygenerovaný klíč, který lze předat jako součást volání rozhraní API. Klíč přímo souvisí s předplatným, které se dá vymezit na různé oblasti. Předplatná poskytují podrobnou kontrolu nad oprávněními a zásadami.

Tři hlavní obory předplatného jsou:

Obor Detaily
Všechna rozhraní API Platí pro každé rozhraní API přístupné z brány.
Jedno rozhraní API Platí pro jedno importované rozhraní API a všechny jeho koncové body.
Produkt Produkt je kolekce jednoho nebo více rozhraní API, kterou konfigurujete ve službě API Management. Rozhraní API můžete přiřadit více produktům. Produkty můžou mít různá pravidla přístupu, kvóty využití a podmínky použití. Pokud tedy chcete, aby vaši partneři a dodavatelé měli různá přístupová práva k vašemu rozhraní WeatherData API, přiřaďte rozhraní API k produktu a pak pomocí webu Azure Portal přidružte rozhraní API k produktu.

Aplikace, které volají chráněné rozhraní API, musí do každého požadavku obsahovat klíč předplatného.

Tyto klíče předplatného můžete kdykoli znovu vygenerovat; Pokud máte například podezření, že klíč byl sdílen s neoprávněnými uživateli, můžete vytvořit nový.

Klíče předplatného.

Každé předplatné má dva klíče – primární klíč a sekundární klíč. Když máte dva klíče, můžete klíč snadněji vygenerovat znovu. Pokud například chcete změnit primární klíč a vyhnout se tak výpadku, použijte ve svých aplikacích sekundární klíč.

U produktů, ve kterých jsou povolená předplatná, musí klienti při volání rozhraní API v daném produktu zadat klíč. Vývojáři můžou klíč získat odesláním žádosti o předplatné. Pokud žádost schválíte, musíte jim klíč předplatného odeslat bezpečným způsobem, třeba v zašifrované zprávě. Tento krok je základní součástí pracovního postupu služby API Management.

Volání rozhraní API s klíčem předplatného

Aplikace musí ve všech požadavcích HTTP obsahovat platný klíč, který volá koncové body rozhraní API, které jsou chráněné předplatným. Klíče je možné předat v hlavičce požadavku nebo jako parametr řetězce dotazu v adrese URL.

Výchozí název hlavičky klíče předplatného je Ocp-Apim-Subscription-Key a výchozí název řetězce dotazu je subscription-key.

K otestování volání rozhraní API můžete použít testovací konzolu na webu Azure Portal nebo na portálu pro vývojáře nebo nástroje příkazového řádku, jako je curl. Tady je příklad požadavku GET s použitím vývojářského portálu zobrazující hlavičku klíče předplatného:

Snímek obrazovky, který ukazuje, jak volat rozhraní API z portálu pro vývojáře

Tady je příklad předání klíče v hlavičce požadavku pomocí curl:

curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path

Tady je příklad použití příkazu curl k předání klíče jako řetězce dotazu v adrese URL:

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

Pokud se v hlavičce nepředá požadovaný klíč nebo jako řetězec dotazu v adrese URL, získáte odpověď 401 Odepření přístupu z brány rozhraní API.