Note
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 découvrez comment authentifier et autoriser des points de terminaison d’API Azure OpenAI managés à l’aide de Gestion des API Azure. Cet article présente les méthodes courantes suivantes :
Authentification : authentifiez-vous auprès d’une API Azure OpenAI en utilisant des stratégies qui font appel à une clé API ou à une identité managée Microsoft Entra ID pour l’authentification.
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 :
Conditions préalables requises
Avant de suivre les étapes décrites dans cet article, vous devez avoir :
- Une instance API Management. Pour obtenir un exemple des étapes à suivre, consultez Créer une instance Gestion des API Azure.
- Une ressource et un modèle Azure OpenAI ajoutés à votre instance Gestion des API. Pour voir un exemple de procédure, consultez Importer une API Azure OpenAI en tant qu’API REST.
- Les autorisations nécessaires à la création d’une inscription d’application auprès d’un fournisseur d’identité tel qu’un locataire Microsoft Entra associé à votre abonnement Azure (pour l’autorisation OAuth 2.0).
S’authentifier avec la clé API
L’une des méthodes par défaut pour s’authentifier auprès d’une API Azure OpenAI consiste à utiliser une clé API. Pour ce type d’authentification, toutes les requêtes d’API doivent inclure une clé API valide dans l’en-tête HTTP api-key
.
- Gestion des API peut gérer la clé API de manière sécurisée à l’aide d’une valeur nommée.
- La valeur nommée peut ensuite être référencée dans une stratégie d’API pour définir l’en-tête
api-key
dans les requêtes adressées à l’API Azure OpenAI. Nous fournissons ici deux exemples de méthode : l’une qui utilise la stratégieset-backend-service
et l’autre qui utilise la stratégieset-header
.
Stocker la clé API dans une valeur nommée
- Obtenez une clé API à partir de la ressource Azure OpenAI. Dans le portail Azure, recherchez une clé dans la page Clés et point de terminaison de la ressource Azure OpenAI.
- Accédez à votre instance Gestion des API, puis sélectionnez Valeurs nommées dans le menu de gauche.
- Sélectionnez + Ajouter, ajoutez la valeur en tant que secret ou, 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.openai.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.
- Sélectionnez Créer.
Ajoutez l’extrait de code de stratégie
set-backend-service
suivant dans la section de stratégieinbound
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>
S’authentifier avec une identité gérée
Une autre méthode recommandée pour s’authentifier auprès d’une API Azure OpenAI consiste à utiliser une identité managée dans Microsoft Entra ID. Pour plus d’informations, consultez Comment configurer Azure OpenAI Service avec une identité managée.
Exécutez la procédure suivante pour configurer votre instance Gestion des API de sorte qu’elle utilise une identité managée pour authentifier les requêtes adressées à une API Azure OpenAI.
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 le rôle Utilisateur OpenAI Cognitive Services pour la ressource Azure OpenAI. 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 section de stratégie
inbound
pour authentifier des requêtes adressées à l’API Azure OpenAI à l’aide d’une 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êteAuthorization
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>
- La stratégie
Conseil / Astuce
Une alternative à l’utilisation des stratégies authentication-managed-identity
et set-header
indiquées dans cet exemple consiste à configurer une ressource back-end qui dirige les demandes d’API vers le point de terminaison d’Azure OpenAI Service. Dans la configuration du back-end, activez l’authentification par identité managée auprès d’Azure OpenAI Service. La Gestion des API Azure automatise ces étapes lors de l’importation d’une API directement à partir d’Azure OpenAI Service. Pour plus d’informations, consultez Importer une API à partir d’Azure OpenAI Service.
Autorisation OAuth 2.0 à l’aide d’un fournisseur d’identité
Pour définir un accès affiné aux API OpenAI pour des utilisateurs ou des clients déterminés, vous pouvez préauthoriser l’accès à l’API Azure OpenAI en utilisant 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.
Remarque
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.
Vous trouverez ci-dessous la procédure générale pour restreindre l’accès API aux utilisateurs ou aux applications autorisés utilisant un fournisseur d’identité.
Créez une application dans votre fournisseur d’identité pour représenter l’API OpenAI 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 Azure OpenAI.
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êteAuthorization
. Placez cet extrait de code avant les autres stratégiesinbound
que vous avez définies pour vous authentifier auprès de l’API Azure OpenAI.Remarque
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>