Zabezpečení rozhraní API pomocí předplatných
Když publikujete rozhraní API prostřednictvím služby API Management, je snadné a běžné zabezpečit přístup k těmto rozhraním 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 zahrnout platný klíč předplatného v požadavcích HTTP. Brána SLUŽBY API Management odmítne volání bez klíče předplatného a volání se nepřesměrují do back-endových služeb.
K získání klíče předplatného pro přístup k rozhraním API se vyžaduje předplatné. Předplatné je v podstatě pojmenovaný kontejner pro dvojici klíčů předplatného. Vývojáři, kteří potřebují využívat publikovaná rozhraní API, můžou získat předplatná. A nepotřebují schválení od vydavatelů rozhraní API. Vydavatelé rozhraní API můžou také vytvářet předplatná přímo pro uživatele rozhraní API.
Poznámka:
API Management také podporuje další mechanismy zabezpečení přístupu k rozhraním API, včetně OAuth2.0, klientských certifikátů a výpisu povolených IP adres.
Předplatná a klíče
Klíč předplatného je jedinečný automaticky vygenerovaný klíč, který lze předat prostřednictvím hlaviček požadavku klienta nebo jako parametr řetězce dotazu. 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 | Tento obor 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í. |
Aplikace, které volají chráněné rozhraní API, musí v každém požadavku obsahovat klíč.
Tyto klíče předplatného můžete kdykoli znovu vygenerovat, například když máte podezření, že byl klíč sdílen s neoprávněnými uživateli.
Každé předplatné má dva klíče, primární a sekundární. 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íč.
Při volání rozhraní API v produktech s povolenými předplatnými musí klienti 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í zahrnovat platný klíč ve všech požadavcích HTTP při volání do koncových bodů rozhraní API, které jsou chráněny předplatným. Klíče lze předávat v hlavičce žádosti nebo jako řetězec dotazu v adrese URL.
Výchozí název hlavičky je Ocp-Apim-Subscription-Key a výchozí řetězec dotazu je subscription-key.
K otestování volání rozhraní API můžete použít vývojářský portál nebo nástroje příkazového řádku, jako například 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:
Tady je postup, jak můžete předat klíč v hlavičce žádosti pomocí nástroje curl:
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
Tady je příklad příkazu curl, který předá klíč v adrese URL jako řetězec dotazu:
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Pokud klíč není předán v hlavičce nebo jako řetězec dotazu v adrese URL, získáte odpověď 401 Přístup odepřen z brány rozhraní API.