Partager via


Authentifier et autoriser l’accès aux API LLM à l’aide de Gestion des API Azure

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

Dans cet article, vous allez apprendre à authentifier et autoriser l’accès aux points de terminaison d’API IA gérés par Gestion des API Azure. Cet article présente les méthodes courantes suivantes :

  • Authentification : authentifiez-vous auprès d’une API IA à l’aide de stratégies qui utilisent une clé API ou une identité managée d’ID Microsoft Entra.

  • Autorisation : pour un contrôle d’accès plus précis, préauthorisez les demandes qui transmettent les jetons OAuth 2.0 générés par un fournisseur d’identité tel que Microsoft Entra ID.

Pour plus d’informations, consultez :

Prerequisites

Pour suivre les exemples de cet article, vous devez disposer des suivants :

S’authentifier à l’aide de la clé API

Une méthode par défaut pour s’authentifier auprès d’une API IA consiste à utiliser une clé API. Pour ce type d’authentification, toutes les requêtes d’API doivent inclure une clé API valide dans un en-tête HTTP. Le nom de l’en-tête dépend de l’API. Par exemple, Azure OpenAI dans les API Microsoft Foundry utilise l’en-tête api-key .

  • Gestion des API peut gérer la clé API de manière sécurisée à l’aide d’une valeur nommée.
  • Vous pouvez référencer la valeur nommée dans une stratégie d'API pour définir l'en-tête api-key dans les requêtes à l'API. Les deux exemples suivants montrent comment procéder : l’un utilise la set-backend-service stratégie et l’autre utilise la set-header stratégie.

Stocker la clé API dans une valeur nommée

Voici un exemple de stockage d’une clé API Azure OpenAI dans une valeur nommée dans Gestion des API :

  1. Obtenez une clé API à partir du déploiement du modèle IA. Pour un déploiement de modèle Azure OpenAI, recherchez ces informations sur la page d’accueil de votre projet dans le portail Microsoft Foundry.
  2. Accédez à votre instance Gestion des API, puis sélectionnez Valeurs nommées dans le menu de gauche.
  3. Sélectionnez + Ajouter, puis ajoutez la valeur en tant que secret. Pour plus de sécurité, utilisez éventuellement une référence de coffre de clés.

Transmettre la clé API des requêtes d’API – stratégie set-backend-service

  1. Créez un back-end qui pointe vers l’API Azure OpenAI.

    1. Dans le menu de gauche de votre instance Gestion des API, sélectionnez Back-ends.
    2. Sélectionnez + Ajouter, puis entrez un nom descriptif pour le back-end. Exemple : openai-backend.
    3. Sous Type, sélectionnez Personnalisé, puis entrez l’URL du point de terminaison Azure OpenAI. Exemple : https://contoso.services.ai.azure.com/openai.
    4. Sous Informations d’identification d’autorisation, sélectionnez En-têtes, puis entrez api-key comme nom d’en-tête et la valeur nommée comme valeur.
    5. Cliquez sur Créer.
  2. Ajoutez l’extrait de code de stratégie set-backend-service suivant dans la section de stratégie inbound pour transmettre la clé API des requêtes à l’API Azure OpenAI.

    Dans cet exemple, la ressource back-end est openai-backend.

    <set-backend-service backend-id="openai-backend" />
    

Transmettre la clé API des requêtes d’API – stratégie set-header

Il est également possible d’ajouter l’extrait de code de stratégie set-header suivant dans la section de stratégie inbound pour transmettre la clé API des requêtes à l’API Azure OpenAI. Cet extrait de code de stratégie définit l’en-tête api-key avec la valeur nommée que vous avez configurée.

Dans cet exemple, la valeur nommée dans Gestion des API est openai-api-key.

<set-header name="api-key" exists-action="override">
    <value>{{openai-api-key}}</value>
</set-header>

Authentifier avec l’identité gérée

Pour Azure OpenAI et d’autres déploiements de modèles dans Microsoft Foundry, utilisez une identité managée dans Microsoft Entra ID pour l’authentification. Pour plus d’informations, consultez Comment configurer Azure OpenAI dans Microsoft Foundry Models avec l’authentification Microsoft Entra ID.

Suivez ces étapes pour configurer votre instance Gestion des API afin d’utiliser une identité managée pour l’authentification.

  1. Activez une identité managée affectée par le système ou par l’utilisateur dans l’instance Gestion des API. L’exemple suivant suppose que vous avez activé l’identité managée affectée par le système de l’instance.

  2. Affectez à l’identité managée le rôle Utilisateur OpenAI Cognitive Services, dans les limites de la ressource appropriée. Par exemple, affectez l’identité managée affectée par le système au rôle d’utilisateur OpenAI Cognitive Services sur la ressource Microsoft Foundry. Pour une procédure détaillée, consultez Contrôle d’accès en fonction du rôle pour Azure OpenAI Service.

  3. Ajoutez l’extrait de code de stratégie suivant dans la inbound section stratégie pour authentifier les demandes auprès de l’API à l’aide de l’identité managée.

    Dans cet exemple :

    • La stratégie authentication-managed-identity obtient un jeton d’accès pour l’identité managée.
    • La stratégie set-header définit l’en-tête Authorization de la requête avec le jeton d’accès.
    <authentication-managed-identity resource="https://cognitiveservices.azure.com" output-token-variable-name="managed-id-access-token" ignore-error="false" /> 
    <set-header name="Authorization" exists-action="override"> 
        <value>@("Bearer " + (string)context.Variables["managed-id-access-token"])</value> 
    </set-header> 
    

Conseil / Astuce

Au lieu d’utiliser les authentication-managed-identity et set-header stratégies indiquées dans cet exemple, vous pouvez configurer une ressource backend qui dirige les demandes d’API vers le point de terminaison de service IA. Dans la configuration du back-end, configurez les informations d’identification d’identité managée sur la https://cognitiveservices.azure.com/ ressource. Gestion des API Azure automatise ces étapes lorsque vous importez une API directement à partir de Microsoft Foundry.

Autorisation OAuth 2.0 à l’aide du fournisseur d’identité

Pour permettre un accès plus précis à Azure OpenAPI ou à d’autres API LLM par des utilisateurs ou des clients particuliers, préauthorisez l’accès à l’API à l’aide de l’autorisation OAuth 2.0 avec Microsoft Entra ID ou un autre fournisseur d’identité. Pour plus d’informations, consultez Protéger une API dans la Gestion des API Azure à l’aide de l’autorisation OAuth 2.0 avec Microsoft Entra ID.

Note

Utilisez l’autorisation OAuth 2.0 dans le cadre d’une stratégie de défense en profondeur. Elle ne remplace pas l’authentification par clé API ni l’authentification par identité managée auprès d’une API Azure OpenAI.

Les étapes suivantes montrent comment restreindre l’accès d’API aux utilisateurs ou aux applications autorisés à l’aide d’un fournisseur d’identité.

  1. Créez une application dans votre fournisseur d’identité pour représenter l’API IA dans Gestion des API Azure. Si vous utilisez l’ID Microsoft Entra, inscrivez une application dans votre locataire Microsoft Entra ID. Enregistrez des détails tels que l’ID d’application et l’URI d’audience.

    Si nécessaire, configurez l’application pour qu’elle dispose de rôles ou d’étendues qui représentent les autorisations affinées nécessaires pour accéder à l’API IA.

  2. Ajoutez un extrait de code de stratégie inbound dans votre instance Gestion des API pour valider les requêtes qui présentent un jeton web JSON (JWT) dans l’en-tête Authorization. Placez cet extrait de code avant les autres stratégies inbound que vous avez définies pour vous authentifier auprès de l’API Azure OpenAI.

    Note

    Les exemples suivants montrent la structure générale des stratégies permettant de valider un jeton JWT. Personnalisez-les en fonction de votre fournisseur d’identité et des exigences de votre application et de votre API.

    • validate-azure-ad-token : si vous utilisez Microsoft Entra ID, configurez la stratégie validate-azure-ad-token pour valider l’audience et les revendications dans le jeton JWT. Pour plus d’informations, consultez les informations de référence sur la stratégie.

      <validate-azure-ad-token tenant-id={{TENANT_ID}} header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
          <client-application-ids>
                  <application-id>{{CLIENT_APP_ID}}</application-id>
          </client-application-ids>
         <audiences>
              <audience>...</audience> 
          </audiences>
          <required-claims>
              <claim name=...>
                  <value>...</value>
              </claim>
          </required-claims>
      </validate-azure-ad-token>
      
    • validate-jwt : si vous utilisez un autre fournisseur d’identité, configurez la stratégie validate-jwt pour valider l’audience et les revendications dans le jeton JWT. Pour plus d’informations, consultez les informations de référence sur la stratégie.

      <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
          <openid-config url={{OPENID_CONFIGURATION_URL}} />
          <issuers>
              <issuer>{{ISSUER_URL}}</issuer>
          </issuers>
          <audiences>
              <audience>...</audience> 
          </audiences>
          <required-claims>
              <claim name=...>
                  <value>...</value>
              </claim>
          </required-claims>
      </validate-jwt>