Előfizetések az Azure API Managementben
A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint
Az Azure API Managementben az előfizetések a leggyakoribb módja annak, hogy az API-felhasználók hozzáférjenek egy API Management-példányon közzétett API-khoz. Ez a cikk áttekintést nyújt a koncepcióról.
Feljegyzés
Az API Management-előfizetések kifejezetten az API Managementen keresztüli API-k előfizetési kulccsal történő meghívására szolgálnak. Ez nem ugyanaz, mint egy Azure-előfizetés.
Mik azok az előfizetések?
Az API-k API Management használatával történő közzétételével egyszerűen biztonságossá teheti az API-hozzáférést az előfizetői azonosítókkal. A közzétett API-kat használni kívánó fejlesztőknek egy érvényes előfizetői azonosítót kell használniuk a HTTP-kérésekben, amikor meghívják ezeket az API-kat. Érvényes előfizetői azonosító nélkül a hívások:
- Azonnal el lesznek utasítva az API Management által.
- Nem lesznek továbbítva a háttérszolgáltatásoknak.
Az API-k eléréséhez a fejlesztőknek előfizetésre és előfizetői azonosítóra van szükségük. Az előfizetés az előfizetési kulcsok párjának nevesített tárolója.
Ráadásul
- A fejlesztők anélkül szerezhetnek be előfizetéseket, hogy az API-közzétevők jóváhagyásra szorulnak.
- Az API-közzétevők közvetlenül az API-felhasználók számára hozhatnak létre előfizetéseket.
Tipp.
Az API Management az API-khoz való hozzáférés biztosításának egyéb mechanizmusait is támogatja, többek között az alábbi példákat:
Előfizetési kulcsok kezelése
A kulcsok rendszeres újragenerálása gyakori biztonsági elővigyázatosság. A legtöbb, előfizetési kulcsot igénylő Azure-szolgáltatáshoz hasonlóan az API Management párokban hozza létre a kulcsokat. A szolgáltatást használó alkalmazások az A kulcsról a B kulcsra válthatnak, és minimális megszakítással újragenerálhatják az A kulcsot, és fordítva.
Az azure API Management-előfizetés meghívásával – Az Azure REST API létrehozása vagy frissítése – az egyes kulcsok újragenerálása helyett meghatározott kulcsok beállítása végezhető el. Pontosabban a properties.primaryKey
HTTP-kérelem törzsében kell beállítani és/vagy properties.secondaryKey
be kell állítani.
Feljegyzés
- Az API Management nem nyújt beépített funkciókat az előfizetési kulcsok életciklusának kezeléséhez, például a lejárati dátumok beállításához vagy a kulcsok automatikus elforgatásához. Olyan munkafolyamatokat fejleszthet, amelyek automatizálják ezeket a folyamatokat olyan eszközökkel, mint az Azure PowerShell vagy az Azure SDK.
- Az API-khoz való időkorlátos hozzáférés kényszerítéséhez az API-közzétevők használhatnak előfizetési kulcsokkal rendelkező szabályzatokat, vagy használhatnak beépített lejárati mechanizmust, például jogkivonatalapú hitelesítést.
Előfizetések hatóköre
Az előfizetések különböző hatókörökhöz társíthatók: termékhez, minden API-hoz vagy egy egyéni API-hoz.
Termékre vonatkozó előfizetések
Az API Management előfizetései hagyományosan egyetlen termékhatókörhöz voltak társítva. Fejlesztők számára:
- A fejlesztői portálon található termékek listája.
- Elküldött előfizetési kérelmek a használni kívánt termékekre vonatkozóan.
- Az előfizetések kulcsaival (amelyeket automatikusan vagy API-közzétevők hagynak jóvá) a termék összes API-jának eléréséhez használhatja.
A fejlesztői portál jelenleg csak a felhasználói profil szakaszban jeleníti meg a termékhatókör-előfizetéseket.
Előfizetések az összes API-hoz vagy egy egyéni API-hoz
Olyan kulcsokat is létrehozhat, amelyek hozzáférést biztosítanak a következőkhöz:
- Egyetlen API, vagy
- Egy API Management-példány összes API-ja.
Ezekben az esetekben nem kell létrehoznia egy terméket, és először hozzá kell adnia az API-kat.
Teljes hozzáférésű előfizetés
Minden API Management-példány beépített teljes hozzáférésű előfizetéssel rendelkezik, amely minden API-hoz hozzáférést biztosít. Ez a szolgáltatáshatókörű előfizetés megkönnyíti a szolgáltatástulajdonosok számára az API-k tesztelését és hibakeresését a tesztkonzolon belül.
Figyelmeztetés
A teljes hozzáférésű előfizetés lehetővé teszi az API Management-példány minden API-jának elérését, és csak a jogosult felhasználók használhatják. Soha ne használja ezt az előfizetést rutin API-hozzáféréshez, vagy ágyazza be a teljes hozzáférésű előfizetési kulcsot az ügyfélalkalmazásokba.
Feljegyzés
Ha API-hatókörű előfizetést, teljes API-előfizetést vagy beépített teljes hozzáférésű előfizetést használ, a termék hatókörében konfigurált szabályzatok nem lesznek alkalmazva az adott előfizetésből érkező kérelmekre.
Önálló előfizetések
Az API Management lehetővé teszi az önálló előfizetéseket is, amelyek nincsenek fejlesztői fiókhoz társítva. Ez a funkció hasznosnak bizonyul az előfizetést használó fejlesztőkhöz vagy csapatokhoz hasonló forgatókönyvekben.
Ha egy előfizetést tulajdonos hozzárendelése nélkül hoz létre, az önálló előfizetéssé válik. Ha hozzáférést szeretne adni a fejlesztőknek és a csapat többi tagjának az önálló előfizetési kulcshoz, az alábbiak szerint:
- Az előfizetési kulcs manuális megosztása.
- Egyéni rendszer használatával tegye elérhetővé az előfizetési kulcsot a csapat számára.
Előfizetések létrehozása és kezelése az Azure Portalon
Az API-közzétevők közvetlenül az Azure Portalon hozhatnak létre előfizetéseket .
A portálon létrehozott előfizetés aktív állapotban van, ami azt jelenti, hogy az előfizető egy érvényes előfizetési kulccsal meghívhat egy társított API-t. Szükség szerint módosíthatja az előfizetés állapotát. Az API-hozzáférés megakadályozása érdekében például bármely előfizetést (beleértve a beépített teljes hozzáférésű előfizetést is) felfüggeszthet, mondhat le vagy törölhet.
Előfizetési kulcs használata
Az előfizetők az API Management előfizetési kulcsát kétféleképpen használhatják:
Adja hozzá az Ocp-Apim-Subscription-Key HTTP-fejlécet a kéréshez, átadva egy érvényes előfizetési kulcs értékét.
Adja meg az előfizetéskulcs lekérdezési paraméterét és egy érvényes értéket az URL-címben. A lekérdezési paraméter csak akkor van bejelölve, ha a fejléc nem található.
Tipp.
Az Ocp-Apim-Subscription-Key az előfizetési kulcs fejlécének alapértelmezett neve, az előfizetési kulcs pedig a lekérdezési paraméter alapértelmezett neve. Igény szerint módosíthatja ezeket a neveket az egyes API-k beállításaiban. A portálon például frissítse ezeket a neveket egy API Gépház lapján.
Feljegyzés
Ha egy kérelemfejlécben vagy lekérdezési paraméterben szerepel, az előfizetési kulcsot alapértelmezés szerint a rendszer átadja a háttérrendszernek, és közzéteheti a háttérbeli figyelési naplókban vagy más rendszerekben. Ha bizalmas adatoknak minősülnek, a szakasz végén konfigurálhat egy szabályzatot az inbound
előfizetéskulcs fejlécének (set-header
) vagy lekérdezési paraméterének (set-query-parameter
) eltávolításához.
Az API- vagy termékhozzáférés előfizetési követelményeinek engedélyezése vagy letiltása
Az API létrehozásakor alapértelmezés szerint előfizetési kulcsra van szükség az API-hozzáféréshez. Hasonlóképpen, ha létrehoz egy terméket, alapértelmezés szerint egy előfizetési kulcsra van szükség a termékhez hozzáadott API-k eléréséhez. Bizonyos esetekben előfordulhat, hogy egy API-közzétevő előfizetések nélkül szeretne közzétenni egy terméket vagy egy adott API-t a nyilvánosság számára. Bár a közzétevők dönthetnek úgy, hogy engedélyezik bizonyos API-k nem biztonságos (névtelen) hozzáférését, egy másik mechanizmus konfigurálása javasolt az ügyfélhozzáférés biztonságossá tételéhez.
Figyelemfelhívás
Ügyeljen arra, hogy olyan terméket vagy API-t konfiguráljon, amely nem igényel előfizetést. Ez a konfiguráció túlságosan megengedő lehet, és sebezhetőbbé teheti az API-t bizonyos API-biztonsági fenyegetésekkel szemben.
Feljegyzés
A megnyitott termékeknél le van tiltva az Előfizetés megkövetelése beállítás, ami azt jelenti, hogy a felhasználóknak nem kell előfizetnie rá. Ezért a megnyitott termékek nem jelennek meg a fejlesztői portál Termékek lapján.
Az előfizetési követelményt az API vagy a termék létrehozásakor vagy egy későbbi időpontban tilthatja le.
Az előfizetési követelmény letiltása a portálon:
- Termékre vonatkozó követelmény letiltása – A termék Gépház lapján tiltsa le az Előfizetés megkövetelése beállítást
- Az API-ra vonatkozó követelmény letiltása – Az API Gépház lapján tiltsa le a szükséges előfizetést.
Az előfizetési követelmény letiltása után a kiválasztott API-k vagy API-k előfizetési kulcs nélkül is elérhetők.
Hogyan kezeli az API Management a kéréseket előfizetési kulcsokkal vagy anélkül
API-kérés előfizetői azonosítóval
Amikor az API Management előfizetői azonosítót tartalmazó API-kérést kap egy ügyféltől, a következő szabályok szerint kezeli a kérést:
Ellenőrzi, hogy egy aktív előfizetéshez társított érvényes azonosítóról, mely a következők egyike:
- Az API-ra vonatkozó előfizetés
- Az API-hoz rendelt termékre vonatkozó előfizetés
- Az összes API-ra vonatkozó előfizetés
- Szolgáltatásra kiterjedő hatókörű előfizetés (beépített, teljes hozzáférésű előfizetés)
Ha egy megfelelő hatókörű aktív előfizetéshez érvényes azonosító van megadva, a hozzáférést engedélyezi. A szabályzatok az adott hatókörben lévő szabályzatdefiníció konfigurációjától függően lesznek alkalmazva.
Ellenkező esetben a hozzáférés meg lesz tagadva (401 Hozzáférés megtagadva hiba).
API-kérés előfizetői azonosító nélkül
Amikor az API Management előfizetői azonosítót nem tartalmazó API-kérést kap egy ügyféltől, a következő szabályok szerint kezeli a kérést:
- Először ellenőrizze, hogy létezik-e olyan termék, amely tartalmazza az API-t, de nem igényel előfizetést (nyitott termék). Ha a nyitott termék létezik, a kérést a termékhez konfigurált API-k, szabályzatok és hozzáférési szabályok kontextusában kezeli. Egy API legfeljebb egy nyitott termékhez társítható.
- Ha nem található az API-t is tartalmazó nyitott termék, ellenőrzi, hogy az API-hoz szükség van-e előfizetésre. Ha nincs szükség előfizetésre, a kérést az API és a művelet kontextusában kezeli.
- Ha nem található konfigurált termék vagy API, a hozzáférést megtagadja (401 Hozzáférés megtagadva hiba).
Összegző táblázat
Az alábbi táblázat összefoglalja, hogy az átjáró hogyan kezeli az API-kéréseket előfizetési kulcsokkal vagy anélkül különböző helyzetekben. A rendszer feljegyezi azokat a konfigurációkat, amelyek esetleg engedélyezhetik a nem szándékos, névtelen API-hozzáférést.
Az API-hoz rendelt összes termékhez előfizetés szükséges | Az API-nak előfizetésre van szüksége | API-hívás előfizetési kulccsal | API-hívás előfizetési kulcs nélkül | Tipikus forgatókönyvek |
---|---|---|---|---|
✔️ | ✔️ | Hozzáférés engedélyezett: • Termékhatókörű kulcs • API-hatókörű kulcs • Minden API-hatókörű kulcs • Szolgáltatás hatókörű kulcs Hozzáférés megtagadva: • Az alkalmazandó termékre vagy API-ra nem terjed ki egyéb kulcs |
Hozzáférés megtagadva | Védett API-hozzáférés termékhatókörű vagy API-hatókörű előfizetéssel |
✔️ | ❌ | Hozzáférés engedélyezett: • Termékhatókörű kulcs • API-hatókörű kulcs • Minden API-hatókörű kulcs • Szolgáltatás hatókörű kulcs Hozzáférés megtagadva: • Az alkalmazandó termékre vagy API-ra nem terjed ki egyéb kulcs |
Hozzáférés engedélyezett (API-környezet) | • Védett API-hozzáférés termékhatókörű előfizetéssel • Névtelen hozzáférés az API-hoz. Ha a névtelen hozzáférés nem célja, konfiguráljon API-szintű szabályzatokat a hitelesítés és az engedélyezés kikényszerítéséhez. |
❌1 | ✔️ | Hozzáférés engedélyezett: • Termékhatókörű kulcs • API-hatókörű kulcs • Minden API-hatókörű kulcs • Szolgáltatás hatókörű kulcs Hozzáférés megtagadva: • Az alkalmazandó termékre vagy API-ra nem terjed ki egyéb kulcs |
Hozzáférés engedélyezett (termékkörnyezet megnyitása) | • Védett API-hozzáférés API-hatókörű előfizetéssel • Névtelen hozzáférés az API-hoz. Ha a névtelen hozzáférés nem célja, konfiguráljon termékszabályzatokkal a hitelesítés és az engedélyezés kikényszerítéséhez |
❌1 | ❌ | Hozzáférés engedélyezett: • Termékhatókörű kulcs • API-hatókörű kulcs • Minden API-hatókörű kulcs • Szolgáltatás hatókörű kulcs Hozzáférés megtagadva: • Az alkalmazandó termékre vagy API-ra nem terjed ki egyéb kulcs |
Hozzáférés engedélyezett (termékkörnyezet megnyitása) | Névtelen hozzáférés az API-hoz. Ha a névtelen hozzáférés nem célja, konfiguráljon termékszabályzatokkal a hitelesítés és az engedélyezés kikényszerítéséhez |
1 Létezik egy nyitott termék, amely az API-hoz van társítva.
Megfontolások
- Az API-hozzáférés a termékkörnyezetben ugyanaz, függetlenül attól, hogy a termék közzé van-e téve. A termék közzétételének megszüntetése elrejti a fejlesztői portálról, de nem érvényteleníti az új vagy meglévő előfizetési kulcsokat.
- Még ha egy termék vagy API nem is igényel előfizetést, továbbra is használható egy aktív előfizetés érvényes kulcsa, amely lehetővé teszi a termékhez vagy API-hoz való hozzáférést.
- Az API-hozzáférés "környezete" egy adott hatókörben (például API vagy termék) alkalmazott szabályzatokat és hozzáférési vezérlőket jelenti.
Következő lépések
További információ az API Managementről:
- Megtudhatja, hogyan alkalmazzák az API Management-szabályzatokat különböző hatókörökben.
- További fogalmak az API Managementben.
- Az API Managementtel kapcsolatos további információkért kövesse oktatóanyagainkat.
- Gyakori kérdésekért tekintse meg a gyakori kérdéseket a GYIK oldalon.