Les requêtes d’application vers la plupart des services Azure doivent être authentifiées avec des clés ou des connexions sans mot de passe. Les développeurs doivent être vigilants pour ne jamais exposer les clés dans un emplacement non sécurisé. Toute personne ayant accès à la clé est en mesure de s’authentifier auprès du service. L’authentification sans clé offre des avantages de gestion et de sécurité améliorés sur la clé de compte, car il n’existe aucune clé (ou chaîne de connexion) à stocker.
Les connexions sans clé sont activées via les étapes suivantes :
Configurez votre authentification.
Définissez des variables d’environnement, si nécessaire.
Utilisez un type d’information d’identification de la bibliothèque Azure Identity pour créer un objet client Azure OpenAI.
Authentification
L’authentification à Microsoft Entra ID est nécessaire pour utiliser les bibliothèques clientes Azure.
L’authentification varie en fonction de l’environnement dans lequel l’application s’exécute :
Utilisez le lien suivant pour explorer le modèle Azure OpenAI Keyless Building Block AI. Ce modèle provisionne un compte Azure OpenAI avec l’autorisation de rôle RBAC de votre compte d’utilisateur pour l’authentification sans clé (Microsoft Entra) pour accéder aux kits SDK d’API OpenAI.
Remarque
Cet article utilise un ou plusieurs modèles d’application IA comme base pour les exemples et les conseils qu’il contient. Les modèles d’application IA vous fournissent des implémentations de référence bien gérées et faciles à déployer, qui constituent un point de départ de qualité pour vos applications IA.
Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.
Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.
Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.
Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.
Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.
Configurez des rôles pour l’autorisation
Trouvez le rôle pour votre utilisation d’Azure OpenAI. Selon la façon dont vous avez l’intention de définir ce rôle, vous avez besoin du nom ou de l’ID.
Nom de rôle
ID de rôle
Pour Azure CLI ou Azure PowerShell, vous pouvez utiliser le nom du rôle.
Pour Bicep, vous avez besoin de l’ID du rôle.
Utilisez le tableau suivant pour sélectionner un rôle et un ID.
Cas d’usage
Nom de rôle
ID de rôle
Assistants
Cognitive Services OpenAI Contributor
a001fd3d-188f-4b5d-821b-7da978bf7442
Complétions de conversation
Cognitive Services OpenAI User
5e0bd9bd-7b93-4f28-af87-19fc36ad61bd
Sélectionnez un type d’identité à utiliser.
Identité personnelle : Il s’agit de votre identité personnelle liée à votre connexion à Azure.
Identité managée : Il s’agit d’une identité gérée et créée pour une utilisation sur Azure. Pour identité managée, créez une identité managée assignée par l’utilisateur. Lorsque vous créez l’identité managée, vous avez besoin de Client ID, également connue sous le nom de app ID.
Pour trouver votre identité personnelle, utilisez l’une des commandes suivantes. Utilisez l’ID comme <identity-id> à l’étape suivante.
Pour le développement local, pour obtenir l’ID de votre propre identité, utilisez la commande suivante. Vous devez vous connecter avec az login avant d’utiliser cette commande.
az ad signed-in-user show \
--query id -o tsv
Pour le développement local, pour obtenir l’ID de votre propre identité, utilisez la commande suivante. Vous devez vous connecter avec Connect-AzAccount avant d’utiliser cette commande.
Lors de l’utilisation de Bicep déployé avec Azure Developer CLI, l’identité de la personne ou du service exécutant le déploiement est définie sur le paramètre principalId.
La variable main.parameters.json suivante est définie sur l’identité exécutant le processus.
Pour une utilisation sur Azure, spécifiez une identité managée assignée par l’utilisateur dans le cadre du processus de déploiement Bicep. Créez une identité managée assignée par l’utilisateur distincte de l’identité exécutant le processus.
Pour accorder à votre identité des autorisations sur votre ressource via le RBAC, attribuez un rôle en utilisant la commande Azure CLI az role assignment create.
az role assignment create \
--role "Cognitive Services OpenAI User" \
--assignee "<identity-id>" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
Pour accorder à votre application des autorisations sur votre ressource Azure OpenAI via le RBAC, attribuez un rôle en utilisant le cmdlet Azure PowerShell New-AzRoleAssignment.
Utilisez le modèle Azure OpenAI Bicep suivant pour créer la ressource et configurer l’authentification pour le identityId. Bicep nécessite l’ID de rôle. Le name figurant dans l’extrait de code Bicep n’est pas le rôle Azure ; il est spécifique au déploiement Bicep.
Le cas échéant, remplacez <identity-id>, <subscription-id> et <resource-group-name> par vos valeurs réelles.
Configuration des variables d’environnement
Pour vous connecter à Azure OpenAI, votre code doit connaître votre point de terminaison de ressource et peut avoir besoin d’autres variables d’environnement.
Créez une variable d’environnement pour votre point de terminaison Azure OpenAI.
AZURE_OPENAI_ENDPOINT : Cette URL est le point d’accès à votre ressource Azure OpenAI.
Créez des variables d’environnement en fonction de l’emplacement où votre application s’exécute :
Emplacement
Identité
Description
Local
Personnel
Pour les environnements d’exécution locaux avec votre identité personnelle, connectez-vous pour créer votre information d’identification avec un outil.
Cloud Azure
Identité managée affectée par l’utilisateur
Créez une variable d’environnement AZURE_CLIENT_ID contenant l’ID client de l’identité managée assignée par l’utilisateur pour s’authentifier.
Installer la bibliothèque de client Azure Identity
Utilisez le lien suivant pour installer la bibliothèque de client Azure Identity.
La bibliothèque Azure Identity DefaultAzureCredential permet au client d’exécuter le même code dans l’environnement de développement local et dans le cloud Azure.
Pour plus d’informations sur DefaultAzureCredential pour .NET, consultez la vue d’ensemble DefaultAzureCredential.
Suivez l’une des approches suivantes pour définir l’ID client de l’identité managée affectée par l’utilisateur :
Définissez la variable d’environnement AZURE_CLIENT_ID. Le constructeur sans paramètre de DefaultAzureCredential utilise la valeur de cette variable d’environnement, le cas échéant.
using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
OpenAIClient client = new(new Uri(endpoint), new DefaultAzureCredential());
using Azure;
using Azure.AI.OpenAI;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
var credential = new DefaultAzureCredential(
new DefaultAzureCredentialOptions
{
ManagedIdentityClientId = "<user_assigned_client_id>"
});
OpenAIClient client = new(new Uri(endpoint), credential);
Pour plus d’informations sur DefaultAzureCredential pour Go, consultez la vue d’ensemble DefaultAzureCredential.
Pour plus d’informations sur DefaultAzureCredential pour Java, consultez la vue d’ensemble DefaultAzureCredential.
Suivez l’une des approches suivantes pour définir l’ID client de l’identité managée affectée par l’utilisateur :
Définissez la variable d’environnement AZURE_CLIENT_ID. Le constructeur sans paramètre de DefaultAzureCredential utilise la valeur de cette variable d’environnement, le cas échéant.
Attribuez une identité gérée spécifique attribuée à l'utilisateur avec DefaultAzureCredential en utilisant le DefaultAzureCredentialBuilder pour la configurer avec un ID client :
Pour plus d’informations sur DefaultAzureCredential pour JavaScript, consultez la vue d’ensemble DefaultAzureCredential.
Suivez l’une des approches suivantes pour définir l’ID client de l’identité managée affectée par l’utilisateur :
Définissez la variable d’environnement AZURE_CLIENT_ID. Le constructeur sans paramètre de DefaultAzureCredential utilise la valeur de cette variable d’environnement, le cas échéant.
Attribuez une identité managée spécifique attribuée par l'utilisateur avec DefaultAzureCredential à l’aide du paramètre managedIdentityClientId pour le configurer avec un identifiant client :
Pour plus d’informations sur DefaultAzureCredential pour Python, consultez la vue d’ensemble DefaultAzureCredential.
Suivez l’une des approches suivantes pour définir l’ID client de l’identité managée affectée par l’utilisateur :
Définissez la variable d’environnement AZURE_CLIENT_ID. Le constructeur sans paramètre de DefaultAzureCredential utilise la valeur de cette variable d’environnement, le cas échéant.
Attribuez une identité managée spécifique attribuée par l'utilisateur avec DefaultAzureCredential en utilisant le paramètre managed_identity_client_id pour la configurer avec un ID client :