Share via


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.

Termék-előfizetések

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:

  1. 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.

  2. 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:

  1. 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ó.
  2. 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.
  3. 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: