Använda namngivna värden i Azure API Management principer
API Management principer är en kraftfull funktion i systemet som gör att utgivaren kan ändra API:ets beteende genom konfiguration. Principer är en samling instruktioner som körs sekventiellt på begäran av eller efter ett svar från ett API. Principuttryck kan konstrueras med hjälp av literaltextvärden, principuttryck och namngivna värden.
Namngivna värden är en global samling namn/värde-par i varje API Management instans. Det finns ingen begränsning för antalet objekt i samlingen. Namngivna värden kan användas för att hantera konstanta strängvärden och hemligheter i alla API-konfigurationer och principer.
Värdetyper
| Typ | Description |
|---|---|
| Vanligt | Literalsträng eller principuttryck |
| Hemlighet | Literalsträng eller principuttryck som krypteras av API Management |
| Nyckelvalv | Identifierare för en hemlighet som lagras i ett Azure-nyckelvalv. |
Oformaterad värden eller hemligheter kan innehålla principuttryck. Uttrycket returnerar till exempel @(DateTime.Now.ToString()) en sträng som innehåller aktuellt datum och tid.
Mer information om namngivna värdeattribut finns i API Management REST API referens.
Key Vault-hemligheter
Hemliga värden kan lagras antingen som krypterade strängar i API Management (anpassade hemligheter) eller genom att referera till hemligheter i Azure Key Vault.
Vi rekommenderar att du använder Key Vault-hemligheter eftersom det hjälper API Management säkerheten:
- Hemligheter som lagras i nyckelvalv kan återanvändas i olika tjänster
- Detaljerade åtkomstprinciper kan tillämpas på hemligheter
- Hemligheter som uppdateras i nyckelvalvet roteras automatiskt i API Management. Efter uppdateringen i nyckelvalvet uppdateras ett namngivet värde API Management inom 4 timmar. Du kan också uppdatera hemligheten manuellt med hjälp Azure Portal eller via REST API.
Krav för Key Vault-integrering
- Anvisningar för hur du skapar ett nyckelvalv finns i Snabbstart: Skapa ett nyckelvalv med hjälp av Azure Portal.
- Aktivera en system-tilldelad eller användar tilldelad hanterad identitet i API Management instansen.
- Tilldela en åtkomstprincip för nyckelvalv till den hanterade identiteten med behörighet att hämta och lista hemligheter från valvet. Så här lägger du till principen:
- Navigera till ditt nyckelvalv i portalen.
- Välj Inställningar > Åtkomstprinciper > +Lägg till åtkomstprincip.
- Välj Hemliga behörigheter och sedan Hämta och Lista.
- I Välj huvudnamn väljer du resursnamnet för din hanterade identitet. Om du använder en system tilldelad identitet är huvudnamnet namnet på din API Management instans.
- Skapa eller importera en hemlighet till nyckelvalvet. Se Snabbstart: Ange och hämta en hemlighet från Azure Key Vault med hjälp av Azure Portal.
Om du vill använda hemligheten för nyckelvalvet lägger du till eller redigerar ett namngivetvärde och anger en typ av nyckelvalv. Välj hemligheten från nyckelvalvet.
Krav för Key Vault brandvägg
Om Key Vault brandväggen är aktiverad på ditt nyckelvalv, är följande ytterligare krav:
- Du måste använda den API Management instansens system tilldelade hanterade identitet för att få åtkomst till nyckelvalvet.
- I Key Vault brandväggen aktiverar du alternativet Tillåt betrodda Microsoft-tjänster att kringgå brandväggen.
Krav för virtuellt nätverk
Om API Management-instansen distribueras i ett virtuellt nätverk konfigurerar du även följande nätverksinställningar:
- Aktivera en tjänstslutpunkt för Azure Key Vault på API Management undernätet.
- Konfigurera en regel för nätverkssäkerhetsgrupp (NSG) för att tillåta utgående trafik till tjänsttaggarna AzureKeyVault och AzureActiveDirectory.
Mer information finns i informationen om nätverkskonfiguration i Anslut till ett virtuellt nätverk.
Lägga till eller redigera ett namngivet värde
Lägga till en nyckelvalvshemlighet
Se Krav för Key Vault-integrering.
Varning
När du använder en nyckelvalvshemlighet i API Management bör du vara noga med att inte ta bort hemligheten, nyckelvalvet eller den hanterade identitet som används för att få åtkomst till nyckelvalvet.
I Azure Portalnavigerar du till din API Management instans.
Under API:er väljer du Namngivna värden > +Lägg till.
Ange ett Namn-ID och ange ett Visningsnamn som används för att referera till egenskapen i principer.
I Värdetyp väljer du Nyckelvalv.
Ange identifieraren för en nyckelvalvshemlighet (utan version) eller välj Välj för att välja en hemlighet från ett nyckelvalv.
Viktigt
Om du själv anger ett nyckelvalvshemlighets-ID måste du se till att det inte har versionsinformation. Annars roteras hemligheten inte automatiskt i API Management efter en uppdatering i nyckelvalvet.
I Klientidentitet väljer du en system-tilldelad eller en befintlig användar tilldelad hanterad identitet. Lär dig hur du lägger till eller ändrar hanterade identiteter i API Management tjänsten.
Anteckning
Identiteten måste ha behörighet att hämta och lista hemligheter från nyckelvalvet. Om du inte redan har konfigurerat åtkomst till nyckelvalvet uppmanas du API Management så att den automatiskt kan konfigurera identiteten med nödvändiga behörigheter.
Lägg till en eller flera valfria taggar för att organisera dina namngivna värden och sedan Spara.
Välj Skapa.
Lägga till ett oformaterad eller hemligt värde
- I Azure Portalnavigerar du till din API Management instans.
- Under API:er väljer du Namngivna värden > +Lägg till.
- Ange ett Namn-ID och ange ett Visningsnamn som används för att referera till egenskapen i principer.
- I Värdetyp väljer du Plain (Oformaterad) eller Secret (Hemlighet).
- I Värde anger du en sträng eller ett principuttryck.
- Lägg till en eller flera valfria taggar för att organisera dina namngivna värden och sedan Spara.
- Välj Skapa.
När det namngivna värdet har skapats kan du redigera det genom att välja namnet. Om du ändrar visningsnamnet uppdateras alla principer som refererar till det namngivna värdet automatiskt så att det nya visningsnamnet används.
Använda ett namngivet värde
Exemplen i det här avsnittet använder de namngivna värden som visas i följande tabell.
| Name | Värde | Hemlighet |
|---|---|---|
| ContosoHeader | TrackingId |
Falskt |
| ContosoHeaderValue | •••••••••••••••••••••• | Sant |
| ExpressionProperty | @(DateTime.Now.ToString()) |
Falskt |
Om du vill använda ett namngivet värde i en princip placerar du dess visningsnamn i ett dubbelt par med kparenteser som , som {{ContosoHeader}} du ser i följande exempel:
<set-header name="{{ContosoHeader}}" exists-action="override">
<value>{{ContosoHeaderValue}}</value>
</set-header>
I det här ContosoHeader exemplet används som namn på en rubrik i en princip och används som värde för set-header ContosoHeaderValue rubriken. När den här principen utvärderas under en begäran eller ett svar API Management gatewayen {{ContosoHeader}} {{ContosoHeaderValue}} och ersätts med deras respektive värden.
Namngivna värden kan användas som fullständiga attribut- eller elementvärden som visas i föregående exempel, men de kan också infogas i eller kombineras med en del av ett literalt textuttryck enligt följande exempel:
<set-header name = "CustomHeader{{ContosoHeader}}" ...>
Namngivna värden kan också innehålla principuttryck. I följande exempel används ExpressionProperty uttrycket .
<set-header name="CustomHeader" exists-action="override">
<value>{{ExpressionProperty}}</value>
</set-header>
När den här principen utvärderas {{ExpressionProperty}} ersätts med värdet @(DateTime.Now.ToString()) . Eftersom värdet är ett principuttryck utvärderas uttrycket och principen fortsätter med körningen.
Du kan testa detta i Azure Portal eller utvecklarportalen genom att anropa en åtgärd som har en princip med namngivna värden i omfånget. I följande exempel anropas en åtgärd med de två föregående set-header exempelprinciperna med namngivna värden. Observera att svaret innehåller två anpassade huvuden som har konfigurerats med principer med namngivna värden.
Om du tittar på den utgående API-spårningen för ett anrop som innehåller de två föregående exempelprinciperna med namngivna värden kan du se de två principerna med de namngivna värdena infogade samt utvärderingen av principuttryck för det namngivna värdet som innehöll set-header principuttrycket.
Varning
Om en princip refererar till en hemlighet i Azure Key Vault är värdet från nyckelvalvet synligt för användare som har aktiverat åtkomst till prenumerationer för spårning av API-förfrågningar.
Namngivna värden kan innehålla principuttryck, men de får inte innehålla andra namngivna värden. Om text som innehåller en namngiven värdereferens används för ett värde, till exempel , matchas inte Text: {{MyProperty}} den referensen och ersätts inte.
Ta bort ett namngivet värde
Om du vill ta bort ett namngivet värde väljer du namnet och sedan Ta bort på snabbmenyn (...).
Viktigt
Om det namngivna värdet refereras till av API Management principer kan du inte ta bort det förrän du tar bort det namngivna värdet från alla principer som använder det.
Nästa steg
- Läs mer om att arbeta med principer
