Előfizetések az Azure API Managementben

VONATKOZIK A KÖVETKEZŐKRE: 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 API Managementen keresztüli API-k meghívására szolgálnak egy előfizetési kulcs használatával. Ez nem ugyanaz, mint egy Azure-előfizetés.

Mik azok az előfizetések?

Az API-k API Managementen keresztüli közzétételével egyszerűen biztonságossá teheti az API-hozzáférést az előfizetési kulcsok használatával. 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 elutasítja az API Management átjáró.
  • 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 olyan Azure-szolgáltatáshoz hasonlóan, amelyekhez előfizetési kulcs szükséges, 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.

A kulcsok újragenerálása helyett konkrét kulcsokat állíthat be az Azure API Management-előfizetés meghívásával – Az Azure REST API létrehozása vagy frissítése. Pontosabban állítsa be properties.primaryKey és/vagy properties.secondaryKey a HTTP-kérelem törzsében.

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éseket különböző hatókörökhöz társíthatja: termékhez, az összes API-hoz vagy egy egyéni API-hoz.

Termékre vonatkozó előfizetések

Az API Managementben az előfizetéseket hagyományosan egyetlen termékhatókörrel társítja. Fejlesztők:

  • Keresse meg a termékek listáját a fejlesztői portálon.
  • Küldje el az előfizetési kérelmeket a használni kívánt termékekre vonatkozóan.
  • A termék API-jaihoz az automatikusan jóváhagyott előfizetések kulcsaival vagy AZ API-közzétevők által jóváhagyott kulcsokkal férhet hozzá.

A fejlesztői portál jelenleg csak a felhasználói profil szakaszban jeleníti meg a termékhatókör-előfizetéseket.

Egy termékhatókör-előfizetés hagyományos folyamatát bemutató ábra. A fejlesztők elküldenek egy előfizetési kérelmet egy termékhez, és kapnak egy kulcsot a hozzáféréshez.

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ányhoz tartozik egy beépített teljes hozzáférésű előfizetés, 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 összes API-jának elérését. Ezt az előfizetést 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ó olyan helyzetekben hasznos, mint például több fejlesztő vagy csapat, amelyek előfizetést osztanak meg.

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.

Feljegyzés

Az API Managementben közvetlenül nem rendelhet előfizetéseket a Microsoft Entra ID biztonsági csoportokhoz. Ha egy csoport több felhasználójának szeretne előfizetési hozzáférést biztosítani, hozzon létre egy különálló előfizetést, és ossza el az előfizetési kulcsokat a csoporttagok között, vagy integrálható a Microsoft Entra-azonosítóval a hitelesítéshez, és szabályzatok használatával szabályozza a csoporttagságon alapuló API-hozzáférést.

Előfizetések létrehozása és kezelése az Azure Portalon

Az API-közzétevők (megfelelő engedélyekkel rendelkező rendszergazdák vagy fejlesztők) közvetlenül az Azure Portalon hozhatnak létre előfizetéseket az API Management-példányba való bejelentkezéssel. Az API-felhasználók nem hozhatnak létre előfizetéseket az Azure Portalon; általában a fejlesztői portálon keresztül igényelnek előfizetéseket, vagy api-közzétevőktől fogadják őket.

Amikor létrehoz egy előfizetést a portálon, az 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 kétféleképpen használhatnak API Management-előfizetési kulcsot:

  • 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. Csak akkor ellenőrizzük a lekérdezési paramétert, 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 Beállítások 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 átadják a háttérrendszernek, és a háttérbeli figyelési naplókban vagy más rendszerekben is megjelenhetnek. Ha ezek az adatok bizalmasak, a szakasz végén konfigurálhat egy szabályzatot az inbound előfizetéskulcs fejlécének (set-header) vagy a lekérdezési paraméter (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, amikor létrehoz egy terméket, alapértelmezés szerint egy előfizetési kulcs szükséges 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úl 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 feliratkoznia rájuk. Ezért a megnyitott termékek nem jelennek meg a fejlesztői portál Termékek lapján.

API vagy termék vagy újabb verzió létrehozásakor letilthatja az előfizetési követelményt.

Az előfizetési követelmény letiltása a portálon:

  • Termékre vonatkozó követelmény letiltása – A termék Beállítások lapján tiltsa le az Előfizetést igényel.
  • Az API-ra vonatkozó követelmény letiltása – Az API Beállítások lapján tiltsa le az 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 a kulcs érvényes-e, és egy aktív előfizetéshez van-e társítva, a következőként definiálva:

    • Az API-ra kiterjedő előfizetés.
    • Az API-hoz rendelt termékre vonatkozó előfizetés.
    • Az összes API-ra kiterjedő előfizetés.
    • A szolgáltatás hatókörű előfizetése (az összes hozzáférési előfizetésben beépített).

    Ha a kulcs érvényes egy megfelelő hatókörű aktív előfizetésre, az API Management hozzáférést biztosít. A szabályzatokat az adott hatókörben lévő szabályzatdefiníció konfigurációjától függően alkalmazza.

  2. Ha a kulcs érvénytelen, de létezik olyan termék, amely előfizetés ( nyitott termék) megkövetelése nélkül tartalmazza az API-t, az API Management figyelmen kívül hagyja a kulcsot, és előfizetési kulcs nélkül kezeli a kérést API-kérésként (lásd a következő szakaszt).

  3. Ellenkező esetben az API Management megtagadja a hozzáférést (401 Hozzáférés megtagadása 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. Ellenőrzi, 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, az API Management a nyitott termékhez konfigurált API-k, szabályzatok és hozzáférési szabályok kontextusában kezeli a kérést. Egy API legfeljebb egy nyitott termékhez társítható.
  2. Ha nem található egy nyitott termék, beleértve az API-t, az API Management ellenőrzi, hogy az API-nak előfizetésre van-e szüksége. Ha nincs szükség előfizetésre, az API Management az adott API és művelet kontextusában kezeli a kérést.
  3. Ha nem található konfigurált termék vagy API, akkor az API Management megtagadja a hozzáférést (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 táblázat olyan konfigurációkat jegyez fel, amelyek esetleg nem szándékos, névtelen API-hozzáférést tehetnek lehetővé.

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:

• Más kulcs nem vonatkozik az alkalmazandó termékre vagy API-ra.
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
• Más kulcs nem vonatkozik az alkalmazandó termékre vagy API-ra.
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:

• Más kulcs nem vonatkozik az alkalmazandó termékre vagy API-ra.
Hozzáférés engedélyezve (nyitott termékkörnyezet) • 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
• Más kulcs nem vonatkozik az alkalmazandó termékre vagy API-ra.
Hozzáférés engedélyezve (nyitott termékkörnyezet) 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.
  • Ha egy API nem igényel előfizetés-hitelesítést, az előfizetési kulcsot tartalmazó API-kérések ugyanúgy lesznek kezelve, mint az előfizetési kulcs nélküli kérések. Az előfizetési kulcs figyelmen kívül lesz hagyva.
  • 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.

További információ az API Managementről: