Skapa prenumerationer i Azure API Management

Slutförd

När du publicerar ett API med API Management definierar du vem som kan komma åt API:et via gatewayen.

För din meteorologiska app vill du se till att endast kunder som prenumererar på din tjänst kan komma åt API:et och använda dina prognosdata. Du utför den här åtkomstkontrollen genom att utfärda prenumerationsnycklar.

Viktigt!

Prenumerationer i den här kontexten är inte relaterade till Azure-prenumerationer som används för att hantera ditt Azure-konto.

Här får du lära dig hur du använder prenumerationsnycklar för att skydda dina API:er.

Prenumerationer och nycklar

Du kan välja att göra dina API:er och den information som de innehåller fritt tillgänglig. Men vanligtvis vill du begränsa åtkomsten till användare som har betalat eller organisationer som du har en arbetsrelation med. Ett sätt att styra åtkomsten till dina API:er är att använda prenumerationer. Prenumerationer används för att segmentera användaråtkomst till ett API.

Prenumerationsnycklar definierar auktoriseringen för att ge åtkomst till prenumerationerna. När en klient skickar en begäran till ett skyddat API måste en giltig prenumerationsnyckel inkluderas i HTTP-begäran, annars avvisas anropet.

En prenumerationsnyckel är en unik autogenererad nyckel som kan skickas som en del av ett API-anrop. 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:

Omfattning Details
Alla API:er Gäller för varje API som är tillgängligt från gatewayen.
Ett enda API Gäller för ett enda importerat 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. Så om du vill att dina partner och leverantörer ska ha olika åtkomsträttigheter till ditt WeatherData-API tilldelar du API:et till en produkt och använder sedan Azure Portal för att associera API:er med en produkt.

Program som anropar ett skyddat API måste innehålla en prenumerationsnyckel i varje begäran.

Du kan återskapa dessa prenumerationsnycklar när som helst. Om du till exempel misstänker att en nyckel har delats med obehöriga användare kan du skapa en ny.

Prenumerationsnycklar.

Varje prenumeration har två nycklar – en primärnyckel och en sekundär nyckel. 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.

För produkter där prenumerationer är aktiverade måste klienter ange en nyckel när de anropar API:er i produkten. 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 innehålla en giltig nyckel i alla HTTP-begäranden som gör anrop till API-slutpunkter som skyddas av en prenumeration. Nycklar kan skickas i begärandehuvudet eller som en frågesträngsparameter i URL:en.

Standardnamnet för prenumerationsnyckeln är Ocp-Apim-Subscription-Key och standardnamnet för frågesträngen är subscription-key.

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

Skärmbild som visar hur du anropar ditt API från utvecklarportalen.

Här är ett exempel på hur du skickar en nyckel i en begäranderubrik med curl:

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

Här är ett exempel på hur du använder ett curl-kommando för att skicka en nyckel som en frågesträng i en URL:

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

Om en nödvändig nyckel inte skickas i huvudet eller som en frågesträng i URL:en får du svaret 401 Åtkomst nekad från API-gatewayen.