Eseguire l'autenticazione con un'identità gestita

SI APPLICA A: Tutti i livelli di Gestione API

Usare il criterio authentication-managed-identity per eseguire l'autenticazione con un servizio back-end usando l'identità gestita. Questo criterio usa essenzialmente l'identità gestita per ottenere un token di accesso dall'ID Microsoft Entra per accedere alla risorsa specificata. Dopo aver ottenuto correttamente il token, il criterio imposta il valore del token nell'intestazione Authorization usando lo schema Bearer. Gestione API memorizza nella cache il token fino alla scadenza.

È possibile usare sia l'identità assegnata dal sistema che una delle identità assegnate dall'utente per richiedere un token. Se client-id non viene specificato, si presuppone un'identità assegnata dal sistema. Se viene specificata la variabile client-id, viene richiesto il token per l'identità assegnata dall'utente dall'ID Microsoft Entra.

Nota

Impostare gli elementi e gli elementi figlio del criterio nell'ordine specificato nell'istruzione del criterio. Altre informazioni su come impostare o modificare i criteri di API Management.

Istruzione del criterio

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

Attributi

Attributo Descrizione Richiesto Valore predefinito
resource String. ID applicazione dell'API Web di destinazione (risorsa protetta) nell'ID Microsoft Entra. Le espressioni di criteri sono consentite. N/D
client-id String. ID client dell'identità assegnata dall'utente in Microsoft Entra ID. Le espressioni di criteri non sono consentite. No identità assegnata dal sistema
output-token-variable-name String. Nome della variabile di contesto che riceverà il valore del token come oggetto di tipo string. Le espressioni di criteri non sono consentite. No N/D
ignore-error Booleano. Se impostata su true, la pipeline dei criteri continua a essere eseguita anche se non viene ottenuto un token di accesso. No false

Utilizzo

Esempi

Usare l'identità gestita per l'autenticazione con un servizio back-end

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

Usare manualmente l'identità gestita e impostare l'intestazione

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

Usare l'identità gestita nei criteri di richiesta di invio

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

Per ulteriori informazioni sull'utilizzo dei criteri, vedere: