Előfizetések létrehozása az Azure API Managementben
Amikor API-t tesz közzé az API Management használatával, meg kell határoznia, hogy ki férhet hozzá az API-hez az átjárón keresztül.
A meteorológiai alkalmazás esetében biztosítani szeretné, hogy csak a szolgáltatásra feliratkozott ügyfelek férhessenek hozzá az API-hoz, és használhassák az előrejelzési adatokat. Ezt a hozzáférés-vezérlést előfizetési kulcsok kiadásával hajthatja végre.
Fontos
Az ebben a kontextusban lévő előfizetések nem kapcsolódnak az Azure-fiók kezeléséhez használt Azure-előfizetésekhez.
Itt azzal ismerkedhet meg, hogyan használhat előfizetői azonosítókat az API-k védelméhez.
Előfizetések és azonosítók
Dönthet úgy, hogy az API-kat és az azokat tartalmazó információkat szabadon elérhetővé teszi. Általában azonban korlátozni szeretné azoknak a felhasználóknak a hozzáférését, akik fizetett vagy olyan szervezetekkel rendelkeznek, akikkel munkakapcsolatban áll. Az API-khoz való hozzáférés szabályozásának egyik módja az előfizetések használata. Az előfizetések az API-hoz való felhasználói hozzáférés szegmentálására szolgálnak.
Az előfizetési kulcsok jelentik az engedélyt az előfizetésekhez való hozzáférés engedélyezéséhez. Amikor egy ügyfél kérést intéz egy védett API-hoz, érvényes előfizetési kulcsot kell tartalmaznia a HTTP-kérelemben; ellenkező esetben a rendszer elutasítja a hívást.
Az előfizetési kulcs egy egyedi, automatikusan létrehozott kulcs, amely egy API-hívás részeként adható át. Az azonosító közvetlenül kapcsolódik egy előfizetéshez, amelynek a hatóköre többféle is lehet. Az előfizetések lehetővé teszik az engedélyek és szabályzatok nagyobb mértékű kontrollját.
A három fő előfizetési hatókör a következő:
Hatókör | Részletek |
---|---|
Minden API-k | Minden, az átjáróból elérhető API-ra vonatkozik. |
Egyetlen API | Egyetlen importált API-ra és annak összes végpontjára vonatkozik. |
Termék | Egy termék egy vagy több, az API Managementben konfigurált API-k gyűjteménye. Egy API-t több termékhez is hozzárendelhet. A termékekre különböző hozzáférési szabályok, használati kvóták és használati feltételek vonatkozhatnak. Ha tehát azt szeretné, hogy partnerei és szállítói eltérő hozzáférési jogosultságokkal rendelkezzenek a WeatherData API-hoz, rendelje hozzá az API-t egy termékhez, majd az Azure Portal használatával társítsa az API-kat egy termékhez. |
A védett API-t hívó alkalmazásoknak minden kéréshez tartalmazniuk kell egy előfizetési kulcsot.
Ezeket az előfizetési kulcsokat bármikor újra létrehozhatja; Ha például arra gyanakszik, hogy egy kulcs meg lett osztva jogosulatlan felhasználókkal, létrehozhat egy újat.
Minden előfizetéshez két kulcs tartozik: egy elsődleges és egy másodlagos kulcs. Két kulcs birtoklása megkönnyíti a dolgot, amikor újat kell generálni. Ha például módosítani szeretné az elsődleges kulcsot, és el szeretné kerülni az állásidőt, a másodlagos kulcsot használhatja az alkalmazásokban.
Az olyan termékek esetében, amelyekben az előfizetések engedélyezve vannak, az ügyfeleknek meg kell adniuk a kulcsot a termék API-jaihoz való hívások során. A fejlesztők egy előfizetési kérés elküldésével szerezhetnek be azonosítót. Ha jóváhagyja a kérést, biztonságosan el kell küldenie az előfizetési kulcsot; például egy titkosított üzenetben. Ez a lépés az API Management-munkafolyamat fontos része.
API hívása előfizetői azonosítóval
Az alkalmazásoknak érvényes kulcsot kell tartalmazniuk minden olyan HTTP-kérésben, amely az előfizetés által védett API-végpontokra irányuló hívásokat indít. A kulcsok átadhatók a kérelem fejlécében vagy az URL-cím lekérdezési sztringparamétereként.
Az alapértelmezett előfizetési kulcs fejlécének neve Ocp-Apim-Subscription-Key, az alapértelmezett lekérdezési sztring neve pedig előfizetési kulcs.
Az API-hívások teszteléséhez használhat tesztkonzolt az Azure Portalon vagy a fejlesztői portálon, vagy parancssori eszközöket, például a curlt. Íme egy példa egy GET
kérelemre a fejlesztői portálon, az előfizetői azonosító fejlécével:
Íme egy példa arra, hogyan adná át a kulcsot egy kérésfejlécben a curl használatával:
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
Íme egy példa arra, hogy egy curl-paranccsal hogyan adhat át egy kulcsot lekérdezési sztringként egy URL-címben:
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Ha egy szükséges kulcs nem kerül átadásra a fejlécben vagy az URL-lekérdezési sztringként, akkor 401-es hozzáférés megtagadva választ kap az API-átjárótól.