Autentisera med hanterad identitet

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

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" />

Mer information om hur du arbetar med principer finns i: