Dela via


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.

Både systemtilldelad identitet och någon av de flera användartilldelade identiteterna kan användas för att begära en token. Om client-id inte anges antas systemtilldelad identitet. Om variabeln client-id anges begärs token för den användartilldelade identiteten från Microsoft Entra-ID.

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.

Principuttryck

<authentication-managed-identity resource="resource" client-id="clientid of user-assigned identity" output-token-variable-name="token-variable" ignore-error="true|false"/>  

Attribut

Attribut beskrivning Obligatoriskt Standardvärde
resource Sträng. Program-ID för målwebb-API:et (skyddad resurs) i Microsoft Entra-ID. Principuttryck tillåts. Ja Ej tillämpligt
klient-ID Sträng. Klient-ID för den användartilldelade identiteten i Microsoft Entra-ID. Principuttryck tillåts inte. Nej systemtilldelad identitet
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

Användning

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>

Mer information om hur du arbetar med principer finns i: