Névvel ellátott értékek használata az Azure API Management-szabályzatokban
A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint
Az API Management-szabályzatok a rendszer hatékony funkciói, amelyek lehetővé teszik a közzétevő számára, hogy konfiguráción keresztül módosítsa az API viselkedését. A házirendek utasítások gyűjteményei, amelyeket az API-k kérelmei és válaszai szerint egymást követően hajtanak végre. A házirend-utasítások konstans szöveges értékek, szabályzatkifejezések és elnevezett értékek használatával hozhatók létre.
Az elnevezett értékek az egyes API Management-példányokban található név-érték párok globális gyűjteményei. A gyűjteményben lévő elemek száma nincs korlátozva. Az elnevezett értékek az állandó sztringértékek és titkos kódok kezelésére használhatók minden API-konfigurációban és szabályzatban.
Értéktípusok
Típus | Leírás |
---|---|
Síkság | Literális sztring vagy szabályzatkifejezés |
Titkos | Az API Management által titkosított literális sztring vagy szabályzatkifejezés |
Key Vault | Egy Azure-kulcstartóban tárolt titkos kód azonosítója. |
Az egyszerű értékek vagy titkos kódok szabályzatkifejezéseket tartalmazhatnak. A kifejezés @(DateTime.Now.ToString())
például egy sztringet ad vissza, amely az aktuális dátumot és időt tartalmazza.
A névvel ellátott értékattribútumokról az API Management REST API-referenciában talál további információt.
Kulcstartó titkos kulcsai
A titkos értékek titkosított sztringekként tárolhatók az API Managementben (egyéni titkos kódok), vagy hivatkozhatnak titkos kulcsokra az Azure Key Vaultban.
A Key Vault titkos kulcsok használata azért ajánlott, mert segít az API Management biztonságának javításában:
- A kulcstartókban tárolt titkos kulcsok a szolgáltatások között újra felhasználhatók
- Részletes hozzáférési szabályzatok alkalmazhatók titkos kódokra
- A kulcstartóban frissített titkos kulcsok automatikusan el lesznek forgatva az API Managementben. A key vault frissítése után az API Management egy elnevezett értéke 4 órán belül frissül. A titkos kód manuálisan is frissíthető az Azure Portalon vagy a felügyeleti REST API-val.
Feljegyzés
Az Azure Key Vaultban tárolt titkos kódoknak 1 és 4096 karakter közöttinek kell lenniük, mivel az API Management nem tudja lekérni a korlátot meghaladó értékeket.
Előfeltételek
- Ha még nem hozott létre API Management szolgáltatáspéldányt, olvassa el az API Management szolgáltatáspéldány létrehozása című témakört.
A Key Vault integrációjának előfeltételei
Feljegyzés
Ez a funkció jelenleg nem érhető el a munkaterületeken.
Ha még nincs kulcstartója, hozzon létre egyet. A kulcstartó létrehozásának lépéseit a rövid útmutatóban találja : Kulcstartó létrehozása az Azure Portal használatával.
Titkos kulcs létrehozásához vagy a kulcstartóba való importálásához lásd : Rövid útmutató: Titkos kulcs beállítása és lekérése az Azure Key Vaultból az Azure Portal használatával.
Engedélyezze a rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitást az API Management-példányban.
A Key Vaulthoz való hozzáférés konfigurálása
A portálon keresse meg a kulcstartót.
A bal oldali menüben válassza az Access-konfigurációt, és jegyezze fel a konfigurált engedélymodellt.
Az engedélymodelltől függően konfiguráljon kulcstartó-hozzáférési szabályzatot vagy Azure RBAC-hozzáférést egy API Management által felügyelt identitáshoz.
Kulcstartó hozzáférési szabályzatának hozzáadása:
- A bal oldali menüben válassza az Access-szabályzatok lehetőséget.
- Az Access-szabályzatok lapon válassza a + Létrehozás lehetőséget.
- Az Engedélyek lap Titkos engedélyek csoportjában válassza a Beolvasás és a Lista lehetőséget, majd a Tovább gombot.
- Az Egyszerű lapon válassza ki az egyszerű nevet, keresse meg a felügyelt identitás erőforrásnevét, majd válassza a Tovább gombot. Ha rendszer által hozzárendelt identitást használ, az egyszerű az API Management-példány neve.
- Kattintson ismét a Tovább gombra. A Véleményezés + létrehozás lapon válassza a Létrehozás lehetőséget.
Az Azure RBAC-hozzáférés konfigurálása:
- A bal oldali menüben válassza a Hozzáférés-vezérlés (IAM) lehetőséget.
- A Hozzáférés-vezérlés (IAM) lapon válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget.
- A Szerepkör lapon válassza a Key Vault tanúsítványfelhasználója lehetőséget.
- A Tagok lapon válassza a Felügyelt identitás>+ Tagok kijelölése lehetőséget.
- A Felügyelt identitás kiválasztása lapon válassza ki a rendszer által hozzárendelt felügyelt identitást vagy az API Management-példányhoz társított felhasználó által hozzárendelt felügyelt identitást, majd válassza a Kiválasztás lehetőséget.
- Válassza az Áttekintés + hozzárendelés lehetőséget.
A Key Vault tűzfalának követelményei
Ha a Key Vault tűzfala engedélyezve van a kulcstartón, a következő további követelmények teljesülnek:
A kulcstartó eléréséhez az API Management-példány rendszer által hozzárendelt felügyelt identitását kell használnia.
A Key Vault tűzfalában engedélyezze a Megbízható Microsoft-szolgáltatások engedélyezését a tűzfal lehetőség megkerüléséhez.
Győződjön meg arról, hogy a helyi ügyfél IP-címe átmenetileg hozzáférhet a kulcstartóhoz, miközben kiválaszt egy tanúsítványt vagy titkos kulcsot, amelyet fel szeretne adni az Azure API Managementbe. További információ: Az Azure Key Vault hálózati beállításainak konfigurálása.
A konfiguráció befejezése után letilthatja az ügyfél címét a Key Vault tűzfalán.
A virtuális hálózatra vonatkozó követelmények
Ha az API Management-példány virtuális hálózaton van üzembe helyezve, konfigurálja a következő hálózati beállításokat is:
- Szolgáltatásvégpont engedélyezése az Azure Key Vaultban az API Management alhálózaton.
- Konfiguráljon egy hálózati biztonsági csoportot (NSG- szabályt) az AzureKeyVault és az AzureActiveDirectory szolgáltatáscímkék kimenő forgalmának engedélyezéséhez.
További információ: Hálózati konfiguráció az Azure API Management virtuális hálózaton való beállításakor.
Névvel ellátott érték hozzáadása vagy szerkesztése
Kulcstartó titkos kulcsának hozzáadása az API Managementhez
Tekintse meg a Key Vault integrációjának előfeltételeit.
Fontos
Amikor kulcstartó-titkos kulcsot ad hozzá az API Management-példányhoz, rendelkeznie kell a kulcstartó titkos kulcsainak listázásához szükséges engedélyekkel.
Figyelemfelhívás
Ha kulcstartó-titkos kulcsot használ az API Managementben, ügyeljen arra, hogy ne törölje a kulcstartó eléréséhez használt titkos kulcsot, kulcstartót vagy felügyelt identitást.
Az Azure Portalon keresse meg az API Management-példányt.
Az API-k alatt válassza az Elnevezett értékek>+Hozzáadás lehetőséget.
Adjon meg egy névazonosítót, és adjon meg egy megjelenítendő nevet, amellyel a házirendekben hivatkozhat a tulajdonságra.
Az Érték típusban válassza a Key Vault lehetőséget.
Adja meg a kulcstartó titkos kulcsának azonosítóját (verzió nélkül), vagy válassza a Kiválasztás lehetőséget a kulcstartó titkos kulcsának kiválasztásához.
Fontos
Ha saját maga adja meg a key vault titkos azonosítóját, győződjön meg arról, hogy nem rendelkezik verzióinformációval. Ellenkező esetben a titkos kód nem forog automatikusan az API Managementben a kulcstartó frissítését követően.
Az ügyfélidentitásban válasszon ki egy rendszer által hozzárendelt vagy egy meglévő, felhasználó által hozzárendelt felügyelt identitást. Megtudhatja, hogyan vehet fel vagy módosíthat felügyelt identitásokat az API Management szolgáltatásban.
Feljegyzés
Az identitásnak engedélyekre van szüksége a kulcstartó titkos kulcsainak lekéréséhez és listázásához. Ha még nem konfigurálta a kulcstartóhoz való hozzáférést, az API Management kéri, hogy automatikusan konfigurálhassa az identitást a szükséges engedélyekkel.
Adjon hozzá egy vagy több választható címkét a névvel ellátott értékek rendszerezéséhez, majd a Mentés parancshoz.
Válassza a Létrehozás lehetőséget.
Egyszerű vagy titkos érték hozzáadása az API Managementhez
- Az Azure Portalon keresse meg az API Management-példányt.
- Az API-k alatt válassza az Elnevezett értékek>+Hozzáadás lehetőséget.
- Adjon meg egy névazonosítót, és adjon meg egy megjelenítendő nevet, amellyel a házirendekben hivatkozhat a tulajdonságra.
- Az Érték típusban válassza az Egyszerű vagy a Titkos elemet.
- Az Érték mezőbe írjon be egy sztringet vagy egy szabályzatkifejezést.
- Adjon hozzá egy vagy több választható címkét a névvel ellátott értékek rendszerezéséhez, majd a Mentés parancshoz.
- Válassza a Létrehozás lehetőséget.
A névvel ellátott érték létrehozása után a név kiválasztásával szerkesztheti azt. Ha módosítja a megjelenített nevet, a névvel ellátott értékre hivatkozó házirendek automatikusan frissülnek az új megjelenítendő név használatára.
Névvel ellátott érték használata
Az ebben a szakaszban szereplő példák az alábbi táblázatban látható elnevezett értékeket használják.
Név szerint | Érték | Titkos |
---|---|---|
ContosoHeader | TrackingId |
Hamis |
ContosoHeaderValue | •••••••••••••••••••••• | Igaz |
ExpressionProperty | @(DateTime.Now.ToString()) |
Hamis |
ContosoHeaderValue2 | This is a header value. |
Hamis |
Ha elnevezett értéket szeretne használni egy szabályzatban, helyezze a megjelenítendő nevét egy dupla zárójelpárba, például {{ContosoHeader}}
a következő példában látható módon:
<set-header name="{{ContosoHeader}}" exists-action="override">
<value>{{ContosoHeaderValue}}</value>
</set-header>
Ebben a példában ContosoHeader
a szabályzat fejlécének set-header
neveként használatos, és ContosoHeaderValue
az adott fejléc értékeként használatos. Ha a szabályzat kiértékelése az API Management-átjáróra irányuló kérés vagy válasz során történik, {{ContosoHeader}}
és {{ContosoHeaderValue}}
a rendszer lecseréli a megfelelő értékeket.
Az elnevezett értékek használhatók teljes attribútumként vagy elemértékként az előző példában látható módon, de a literális szövegkifejezések egy részével is beilleszthetők vagy kombinálhatók az alábbi példában látható módon:
<set-header name = "CustomHeader{{ContosoHeader}}" ...>
A névvel ellátott értékek szabályzatkifejezéseket is tartalmazhatnak. Az alábbi példában a ExpressionProperty
kifejezés használatos.
<set-header name="CustomHeader" exists-action="override">
<value>{{ExpressionProperty}}</value>
</set-header>
A szabályzat kiértékelése {{ExpressionProperty}}
után a rendszer lecseréli annak értékét. @(DateTime.Now.ToString())
Mivel az érték egy szabályzatkifejezés, a rendszer kiértékeli a kifejezést, és a szabályzat végrehajtása folytatódik.
Ezt az Azure Portalon vagy a fejlesztői portálon tesztelheti úgy, hogy meghív egy olyan műveletet, amelynek szabályzata nevesített értékekkel rendelkezik a hatókörben. Az alábbi példában a rendszer meghív egy műveletet az előző két példaszabályzattal set-header
nevesített értékekkel. Figyelje meg, hogy a válasz két egyéni fejlécet tartalmaz, amelyek nevesített értékekkel rendelkező szabályzatok használatával lettek konfigurálva.
Ha egy olyan hívás kimenő API-nyomkövetését tekinti meg, amely tartalmazza a két korábbi, névvel ellátott mintaszabályzatot, láthatja a két set-header
szabályzatot a beszúrt névvel ellátott értékekkel, valamint a szabályzatkifejezést tartalmazó névvel ellátott érték szabályzatkifejezés-kiértékelését.
A sztring interpolációja névvel ellátott értékekkel is használható.
<set-header name="CustomHeader" exists-action="override">
<value>@($"The URL encoded value is {System.Net.WebUtility.UrlEncode("{{ContosoHeaderValue2}}")}")</value>
</set-header>
Az érték a CustomHeader
következő lesz The URL encoded value is This+is+a+header+value.
: .
Figyelemfelhívás
Ha egy szabályzat egy titkos kódra hivatkozik az Azure Key Vaultban, a kulcstartóból származó érték látható lesz azoknak a felhasználóknak, akik hozzáférnek az API-kérések nyomon követéséhez engedélyezett előfizetésekhez.
Bár a névvel ellátott értékek tartalmazhatnak szabályzatkifejezéseket, más elnevezett értékeket nem tartalmazhatnak. Ha névvel ellátott értékhivatkozást tartalmazó szöveget használ egy értékhez, például Text: {{MyProperty}}
, a hivatkozás nem lesz feloldva és lecserélve.
Névvel ellátott érték törlése
Névvel ellátott érték törléséhez jelölje ki a nevet, majd válassza a Törlés lehetőséget a helyi menüből (...).
Fontos
Ha az elnevezett értékre bármely API Management-szabályzat hivatkozik, nem törölheti, amíg el nem távolítja az elnevezett értéket az azt használó összes szabályzatból.
Következő lépések
- További információ a szabályzatok használatával kapcsolatban