Authentifier avec l’identité gérée

S’APPLIQUE À : Tous les niveaux de Gestion des API

La stratégie authentication-managed-identity permet l’authentification auprès d’un service principal à l’aide de l’identité managée. Cette stratégie utilise essentiellement l’identité managée pour obtenir un jeton d’accès à partir de Microsoft Entra ID pour accéder à la ressource spécifiée. Une fois le jeton obtenu, la stratégie définit la valeur du jeton dans l'en-tête Authorization à l’aide du schéma Bearer. Gestion des API met en cache le jeton jusqu’à son expiration.

Tant les identités attribuées par le système que les identités attribuées par l’utilisateur permettent de demander un jeton. Si la valeur client-id n’est pas fournie, l’identité attribuée par le système est supposée. Si la variable client-id est fournie, le jeton est demandé pour cette identité affectée par l’utilisateur à partir de Microsoft Entra ID.

Remarque

Définissez les éléments enfants et de stratégie dans l’ordre fourni dans l’instruction de stratégie. En savoir plus sur comment définir ou modifier des stratégies du service Gestion des API.

Avertissement

Considérations relatives à la sécurité : Les utilisateurs disposant des autorisations nécessaires pour modifier les stratégies gestion des API peuvent utiliser cette stratégie pour s’authentifier en tant qu’identité managée du service. Toutefois, ils ne peuvent pas accéder directement aux ressources sans affecter d’abord une identité managée à l’instance Gestion des API. Une fois qu’une identité managée est affectée, les utilisateurs qui peuvent modifier des stratégies peuvent exfiltrer le jeton d’authentification, le propager à un back-end ou le journaliser pour une utilisation ultérieure. Pour obtenir des conseils de sécurité détaillés et des stratégies d’atténuation, consultez Considérations relatives à la sécurité pour les identités managées dans la vue d’ensemble de l’identité managée.

Instruction de la stratégie

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

Attributs

Attribut Descriptif Obligatoire Par défaut
ressource Chaîne. ID d’application de l’API web cible (ressource sécurisée) dans Microsoft Entra ID. Les expressions de stratégie sont autorisées. Oui N/A
identifiant-client Chaîne. ID client de l’identité affectée par l’utilisateur dans Microsoft Entra ID. Les expressions de stratégie ne sont pas autorisées. Non N/A. L'identité affectée par le système est utilisée si l’attribut n’est pas présent.
output-token-variable-name Chaîne. Nom de la variable de contexte qui recevra la valeur du jeton en tant que type d’objet string. Les expressions de stratégie ne sont pas autorisées. Non N/A
ignore-error Propriété booléenne. Si cet attribut a la valeur true, le pipeline de stratégie continue à s’exécuter même si aucun jeton d’accès n’est obtenu. Non false

Utilisation

Exemples

Utiliser Identité managée pour s’authentifier auprès d’un service principal

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

Utiliser l’identité managée et définir l’en-tête manuellement

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

Utiliser Identité managée dans la stratégie d’envoi de requête

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

Pour plus d’informations sur l’utilisation des stratégies, consultez :