Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR: Alla API Management-nivåer
Använd principen för att autentisera authentication-managed-identity med en serverdelstjänst med hjälp av den hanterade identiteten. Den här principen använder i princip den hanterade identiteten för att hämta en åtkomsttoken från Microsoft Entra ID för åtkomst till den angivna resursen. När token har hämtats anger principen värdet för token i Authorization huvudet med hjälp av schemat Bearer . API Management cachelagrar token tills den upphör att gälla.
På hanterade gateways kan både systemtilldelad identitet och någon av de flera användar-tilldelade identiteterna användas för att begära en token. Om client-id inte anges antas systemtilldelad identitet. Om attributet client-id tillhandahålls begärs en token för den användartilldelade identiteten från Microsoft Entra ID.
På en självhostad gateway, använd Microsoft Entra Workload ID genom att sätta authentication-provider="WorkloadIdentity". Policyn använder identiteten konfigurerad för gatewayens arbetsbelastning, inte den hanterade identitet som tilldelats API-hanteringsinstansen. Specificera client-id inte med denna leverantör. Se Självhostad gateway med arbetsbelastningsidentitet.
Kommentar
Ange principens element och underordnade element i den ordning som anges i principbeskrivningen. Läs mer om hur du anger eller redigerar API Management-principer.
Försiktighet
Säkerhetsövervägande: Användare med behörighet att redigera API Management-principer kan använda den här principen för att autentisera som tjänstens hanterade identitet. De kan dock inte få direkt åtkomst till resurser utan att först tilldela en hanterad identitet till API Management-instansen. När en hanterad identitet har tilldelats kan användare som kan ändra principer kunna exfiltera autentiseringstoken, sprida den till en serverdel eller logga den för senare användning. Detaljerad säkerhetsvägledning och riskreduceringsstrategier finns i Säkerhetsöverväganden för hanterade identiteter i översikten över hanterad identitet.
Principuttryck
<authentication-managed-identity resource="resource" client-id="clientid of user-assigned identity" authentication-provider="BuiltIn|WorkloadIdentity" output-token-variable-name="token-variable" ignore-error="true|false"/>
Attribut
| Attribut | beskrivning | Obligatoriskt | Standardvärde |
|---|---|---|---|
| resurs | Sträng. Program-ID för målwebb-API:et (skyddad resurs) i Microsoft Entra ID. Principuttryck tillåts. | Ja | Ej tillämpligt |
| autentiseringsleverantör | Sträng. Leverantören användes för att få tag på en token. Tillåtna värden: BuiltIn för gatewayens inbyggda hanterade identitetsautentisering, eller WorkloadIdentity för Microsoft Entra Workload ID på en självhostad gateway. Principuttryck tillåts inte. |
Nej | BuiltIn |
| klient-ID | Sträng. Klient-ID för den användartilldelade identiteten i Microsoft Entra ID. Endast stödd med en inbyggd autentiseringsleverantör. Principuttryck tillåts inte. | Nej | Saknas. Med BuiltIn, används systemtilldelad identitet om attributet inte finns. |
| output-token-variable-name | Sträng. Namnet på kontextvariabeln som ska ta emot tokenvärdet som ett objekt av typen string. Principuttryck tillåts inte. |
Nej | Ej tillämpligt |
| ignore-error | Boolesk. Om värdet är trueinställt på fortsätter princippipelinen att köras även om en åtkomsttoken inte hämtas. |
Nej | false |
Förbrukning
- Principavsnitt: inkommande
- Principomfattningar: global, produkt, API, åtgärd
- Gatewayer: klassisk, v2, förbrukning, lokalt installerad
Användningsanteckningar
Om den här principen definieras i det globala omfånget blir den erhållna token tillgänglig i principkörningskontexten för alla API:er, inklusive de i arbetsytor. Om token endast ska vara tillgänglig för specifika API:er bör du överväga att tillämpa principen på ett smalare omfång (till exempel produkt- eller API-nivå) i stället för den globala principen.
Vidarebefordran av token är kundens ansvar. När du utvärderar den här principen hämtar API Management en token från Microsoft Entra ID och vidarebefordrar den till serverdelen as-is i rubriken
Authorization. API Management verifierar inte vilken serverdel token skickas till. Det är kundens ansvar att se till att token endast vidarebefordras till avsedda och betrodda serverdelstjänster. Konfigurera serverdelsentiteter och andra principer noggrant för att förhindra att token skickas till oavsiktliga mål.
Självhostad gateway med arbetsbelastningsidentitet
För att använda denna policy på en självhostad gateway, konfigurera Microsoft Entra Workload ID för gatewayens arbetsbelastning och sätt authentication-provider="WorkloadIdentity" in policyn. För installationsguider, se Aktivera autentisering av arbetsbelastningsidentitet för den självhostade gatewayen.
Den länkade guiden täcker autentisering till API-hanteringskonfigurationsändpunkten. Denna policy autentiserar förfrågningar till en backend, och ger därmed också arbetsbelastningens identitet de behörigheter som krävs för att få tillgång till den backend-resursen.
Exempel
Använda hanterad identitet för att autentisera med en serverdelstjänst
<authentication-managed-identity resource="https://graph.microsoft.com"/>
<authentication-managed-identity resource="https://cognitiveservices.azure.com"/> <!--Azure OpenAI-->
<authentication-managed-identity resource="https://management.azure.com/"/> <!--Azure Resource Manager-->
<authentication-managed-identity resource="https://vault.azure.net"/> <!--Azure Key Vault-->
<authentication-managed-identity resource="https://servicebus.azure.net/"/> <!--Azure Service Bus-->
<authentication-managed-identity resource="https://eventhubs.azure.net/"/> <!--Azure Event Hub-->
<authentication-managed-identity resource="https://storage.azure.com/"/> <!--Azure Blob Storage-->
<authentication-managed-identity resource="https://database.windows.net/"/> <!--Azure SQL-->
<authentication-managed-identity resource="https://signalr.azure.com"/> <!--Azure SignalR-->
<authentication-managed-identity resource="AD_application_id"/> <!--Application (client) ID of your own Azure AD Application-->
Använda hanterad identitet och ange sidhuvud manuellt
<authentication-managed-identity resource="AD_application_id"
output-token-variable-name="msi-access-token" ignore-error="false" /> <!--Application (client) ID of your own Azure AD Application-->
<set-header name="Authorization" exists-action="override">
<value>@("Bearer " + (string)context.Variables["msi-access-token"])</value>
</set-header>
Använda hanterad identitet i principen för att skicka begäran
<send-request mode="new" timeout="20" ignore-error="false">
<set-url>https://example.com/</set-url>
<set-method>GET</set-method>
<authentication-managed-identity resource="ResourceID"/>
</send-request>
Använd arbetsbelastningsidentitet på en självhostad gateway
Följande exempel autentiseras mot Azure Key Vault med gateway-arbetsbelastningens identitet:
<authentication-managed-identity resource="https://vault.azure.net" authentication-provider="WorkloadIdentity" />
Relaterade principer
Relaterat innehåll
Mer information om hur du arbetar med principer finns i:
- Självstudie: Transformera och skydda ditt API
- Principreferens för en fullständig lista över principinstruktioner och deras inställningar
- Principuttryck
- Ange eller redigera principer
- Återanvända principkonfigurationer
- Lagringsplats för principfragment
- Policy-exempellagringsplats
- Azure API Management principverktyg
- Hämta Copilot hjälp med att skapa, förklara och felsöka principer