Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
- Une instance de gestion des API. Pour obtenir un exemple des étapes à suivre, consultez Créer une instance Gestion des API Azure.
- Un déploiement de modèle IA ajouté à votre instance d'API Management en tant qu'IA. Pour obtenir des exemples d’étapes, consultez Importer une API Microsoft Foundry ou Importer une API de modèle de langage.
- (Pour l’autorisation OAuth 2.0) Autorisations pour créer une inscription d'application dans un fournisseur d’identité, tel qu’un locataire Microsoft Entra ID associé à votre abonnement Azure.
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-keydans les requêtes à l'API. Les deux exemples suivants montrent comment procéder : l’un utilise laset-backend-servicestratégie et l’autre utilise laset-headerstraté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 :
- 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.
- Accédez à votre instance Gestion des API, puis sélectionnez Valeurs nommées dans le menu de gauche.
- 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
Créez un back-end qui pointe vers l’API Azure OpenAI.
- Dans le menu de gauche de votre instance Gestion des API, sélectionnez Back-ends.
- Sélectionnez + Ajouter, puis entrez un nom descriptif pour le back-end. Exemple : openai-backend.
- Sous Type, sélectionnez Personnalisé, puis entrez l’URL du point de terminaison Azure OpenAI. Exemple :
https://contoso.services.ai.azure.com/openai. - 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.
- Cliquez sur Créer.
Ajoutez l’extrait de code de stratégie
set-backend-servicesuivant dans la section de stratégieinboundpour 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.
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.
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.
Ajoutez l’extrait de code de stratégie suivant dans la
inboundsection 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-identityobtient un jeton d’accès pour l’identité managée. - La stratégie
set-headerdéfinit l’en-têteAuthorizationde 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>- La stratégie
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é.
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.
Ajoutez un extrait de code de stratégie
inbounddans votre instance Gestion des API pour valider les requêtes qui présentent un jeton web JSON (JWT) dans l’en-têteAuthorization. Placez cet extrait de code avant les autres stratégiesinboundque 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-tokenpour 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-jwtpour 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>
Contenu connexe
- En savoir plus sur Microsoft Entra ID et OAuth2.0.
- Authentifier les demandes auprès des outils Foundry