API-k biztonságossá tétele előfizetések használatával
Amikor API-kat tesz közzé az API Management használatával, egyszerű és gyakori, hogy az előfizetési kulcsok használatával biztonságosan hozzáfér ezekhez az API-khoz. A közzétett API-k használatához szükséges fejlesztőknek érvényes előfizetési kulcsot kell tartalmazniuk a HTTP-kérésekben, amikor hívásokat kezdeményeznek az adott API-khoz. Az API Management-átjáró elutasítja az előfizetési kulcs nélküli hívásokat, és a rendszer nem továbbítja a hívásokat a háttérszolgáltatásoknak.
Az API-k eléréséhez szükséges előfizetési kulcs lekérése. Az előfizetés lényegében egy elnevezett tároló egy pár előfizetési kulcs számára. Azok a fejlesztők, akiknek a közzétett API-kat kell használniuk, előfizetéseket szerezhetnek be. És nincs szükségük az API-közzétevők jóváhagyására. Az API-közzétevők közvetlenül is létrehozhatnak előfizetéseket az API-felhasználók számára.
Feljegyzés
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 OAuth2.0-t, az ügyféltanúsítványokat és az IP-engedélyezési listákat.
Előfizetések és azonosítók
Az előfizetői azonosítók egyedi, automatikusan létrehozott kulcsok, amelyeket az ügyfélkérelmek fejlécén keresztül vagy egy lekérdezési sztring paramétereként kell megadni. 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 APIk | Az átjáróból elérhető összes API-ra vonatkozik |
| Egyetlen API | Ez a hatókör 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. |
A védett API-kat hívó alkalmazások kérelemhívásaiban szerepelnie kell az azonosítónak.
Bármikor újra létrehozhatja az előfizetői azonosítókat, például ha azt gyanítja, hogy az azonosító jogosulatlan felhasználókkal lett megosztva.
Minden előfizetéshez két azonosító tartozik, egy elsődleges és egy másodlagos. Két kulccsal könnyebb a dolga, amikor egy kulcsot újra kell generálnia. Ha például módosítani szeretné az elsődleges kulcsot, és el szeretné kerülni a leállást, a másodlagos kulcsot használhatja az alkalmazásokban.
Azokban a termékekben, ahol engedélyezettek az előfizetések, az ügyfeleknek meg kell adniuk egy azonosítót, amikor a termékben lévő API-kat hívják. 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ágos módon kell elküldenie nekik az előfizetői azonosítót, 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 minden HTTP-kérésbe bele kell foglalniuk egy érvényes azonosítót, amikor előfizetéssel védett API-végpontokra irányuló hívásokat indítanak. Az azonosítók a kérelem fejlécében vagy az URL-ben, lekérdezési sztringként továbbíthatók.
Az alapértelmezett fejléc neve Ocp-Apim-Subscription-Key, és az alapértelmezett lekérdezési sztring a subscription-key.
Az API-hívások teszteléséhez használhatja a fejlesztői portált vagy a parancssori eszközöket, például a curl parancsot. Íme egy példa egy GET kérelemre a fejlesztői portálon, az előfizetői azonosító fejlécével:
Így állíthatja be a kulcsot a kérés fejlécébe 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 curl parancsra, amely egy kulcsot ad át az URL-ben lekérdezési sztringként.
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Ha a kulcs nincs átadva a fejlécben, vagy lekérdezési sztringként az URL-címben, az API-átjáró 401 - Hozzáférés megtagadva válaszüzenetet küld.