Skydda API:er med hjälp av prenumerationer

Slutförd

När du publicerar API:er via API Management är det enkelt och vanligt att skydda åtkomsten till dessa API:er med hjälp av prenumerationsnycklar. Utvecklare som behöver använda publicerade API:er måste inkludera en giltig prenumerationsnyckel i HTTP-begäranden när de anropar dessa API:er. Annars avvisas anropen omedelbart av API Management-gatewayen. De vidarebefordras inte till serverdelstjänsterna.

För att få en prenumerationsnyckel för åtkomst till API:er krävs en prenumeration. En prenumeration är i princip en namngiven container för ett par prenumerationsnycklar. Utvecklare som behöver använda publicerade API:er kan hämta prenumerationer. Och de behöver inte godkännande från API-utgivare. API-utgivare kan också skapa prenumerationer direkt för API-konsumenter.

Kommentar

API Management stöder även andra mekanismer för att skydda åtkomsten till API:er, till exempel: OAuth2.0, Klientcertifikat och LISTA över TILLÅTNA IP-adresser.

Prenumerationer och nycklar

En prenumerationsnyckel är en unik automatiskt genererad nyckel som kan skickas via huvudet i klientbegäran eller som en frågesträngsparameter. Nyckeln är direkt relaterad till en prenumeration, som kan omfångsbegränsas till olika områden. Med prenumerationer får du detaljerad kontroll över behörigheter och principer.

Det finns tre huvudsakliga prenumerationsomfång:

Omfång Details
Alla API:er Gäller för alla tillgängliga API:er från gatewayen
Ett enda API Det här omfånget gäller för en enda importerad API och alla dess slutpunkter
Produkt En produkt är en samling med en eller flera API:er som du konfigurerar i API Management. Du kan tilldela API:er till mer än en produkt. Produkter kan ha olika åtkomstregler, användningskvoter och användningsvillkor.

När ett program anropar ett skyddat API måste nyckeln ingå i varje begäran.

Du kan när som helst återskapa prenumerationsnycklarna, till exempel om du misstänker att en nyckel har delats med obehöriga användare.

Image showing the Subscriptions screen.

Varje prenumeration har två nycklar, en primär och en sekundär. Om du har två nycklar blir det enklare om du behöver återskapa en nyckel. Om du till exempel vill ändra den primära nyckeln och undvika avbrott kan du använda den sekundära nyckeln i dina appar.

Klienter måste ange en nyckel när de anropar API:er i produkter där prenumerationer har aktiverats. Utvecklare kan hämta en nyckel genom att skicka en prenumerationsbegäran. Om du godkänner begäran måste du skicka prenumerationsnyckeln på ett säkert sätt, till exempel i ett krypterat meddelande. Det här steget är en grundläggande del av API Management-arbetsflödet.

Anropa ett API med en prenumerationsnyckel

Program måste ha en giltig nyckel i alla HTTP-begäranden när de anropar API-slutpunkter som skyddas av en prenumeration. Nycklar kan skickas i begärandehuvudet eller som en frågesträng i URL:en.

Standardnamnet för huvudet är Ocp-Apim-Subscription-Key, och standardfrågesträngen är subscription-key.

Om du vill testa dina API-anrop kan du använda utvecklarportalen eller kommandoradsverktyg som curl. Här är ett exempel på en GET-begäran med utvecklarportalen som visar huvudet med prenumerationsnyckeln:

Call API from developer portal

Så här skickar du en nyckel i begärandehuvudet med curl:

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

Här är ett exempel på ett curl-kommando som skickar en nyckel i URL som en frågesträng:

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

Om nyckeln inte skickas i huvudet, eller som en frågesträng i URL, får du svaret 401 Åtkomst nekad från API-gatewayen.