Partager via


Utiliser Azure OpenAI sans clés

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 :

Bloc de construction sans clé Azure OpenAI

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.

Explorez le modèle .NET End to end Azure OpenAI Keyless Authentication Building Block AI.

Authentifiez-vous pour le développement local

Authentifiez-vous pour les environnements hébergés sur Azure

Découvrez comment gérer le DefaultAzureCredential pour les applications déployées sur Azure.

Configurez des rôles pour l’autorisation

  1. 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.
  2. 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
  3. 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.
  4. 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
    
  5. Attribuez le rôle de contrôle d’accès en fonction du rôle (RBAC) à l’identité du groupe de ressources.

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

    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.

  1. 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.
  2. 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.

Installez la bibliothèque cliente Azure Identity pour .NET :

dotnet add package Azure.Identity

Utilisez DefaultAzureCredential

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 Bibliothèque de client Azure Identity pour .NET.

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());

Ressources