Acquérir un jeton d’accès

Effectué

Une application cliente peut demander des identités managées pour un accès uniquement via un jeton d'application Azure afin d'accéder à une ressource donnée. Le jeton est basé sur le principal du service des identités managées pour ressources Azure. La méthode recommandée consiste à utiliser le DefaultAzureCredential.

La bibliothèque Azure Identity prend en charge un DefaultAzureCredential type. DefaultAzureCredential tente automatiquement une authentification par le biais de plusieurs mécanismes, notamment avec des variables d’environnement ou une connexion interactive. Ce type d’informations d’identification peut être utilisé dans votre environnement de développement avec vos propres informations d’identification. Il peut également être utilisé dans votre environnement Azure de production à l’aide d’une identité managée. Aucune modification de code n’est nécessaire quand vous déployez votre application.

Remarque

DefaultAzureCredential vise à simplifier la prise en main du Kit de développement logiciel (SDK) en gérant des scénarios courants avec des comportements par défaut raisonnables. Les développeurs qui souhaitent davantage de contrôle ou dont le scénario n’est pas pris en charge par les paramètres par défaut doivent utiliser d’autres types d’informations d’identification.

Les DefaultAzureCredential tentatives d’authentification via les mécanismes suivants, dans cet ordre, s’arrêtent lorsqu’une opération réussit :

  1. Environnement - DefaultAzureCredential lit les informations de compte spécifiées via des variables d’environnement et les utilise pour s’authentifier.
  2. Identité managée : si l’application est déployée sur un hôte Azure avec l’identité managée activée, elle DefaultAzureCredential s’authentifie avec ce compte.
  3. Visual Studio : si le développeur s’est authentifié via Visual Studio, il DefaultAzureCredential s’authentifie avec ce compte.
  4. Azure CLI : si le développeur a authentifié un compte via la commande Azure CLI az login , il DefaultAzureCredential s’authentifie avec ce compte. Les utilisateurs de Visual Studio Code peuvent authentifier leur environnement de développement à l’aide d’Azure CLI.
  5. Azure PowerShell : si le développeur a authentifié un compte via la commande Azure PowerShell Connect-AzAccount , il DefaultAzureCredential s’authentifie auprès de ce compte.
  6. Navigateur interactif : s'il est activé, le système authentifie le développeur de manière interactive via le navigateur par défaut actuel. Par défaut, ce type d’informations d’identification est désactivé.

Exemples

Les exemples suivants utilisent le Kit de développement logiciel (SDK) Azure Identity qui peut être ajouté à un projet avec cette commande :

dotnet add package Azure.Identity

Authentifier avec DefaultAzureCredential

Cet exemple illustre la validation du SecretClient de la bibliothèque de client Azure.Security.KeyVault.Secrets à l’aide de DefaultAzureCredential.

// Create a secret client using the DefaultAzureCredential
var client = new SecretClient(new Uri("https://myvault.vault.azure.net/"), new DefaultAzureCredential());

Spécifier une identité managée affectée par l’utilisateur avec DefaultAzureCredential

Cet exemple montre comment configurer l’authentification DefaultAzureCredential d’une identité affectée par l’utilisateur lors du déploiement sur un hôte Azure. Il authentifie ensuite un BlobClient à partir de la bibliothèque de client Azure.Storage.Blobs avec des informations d’identification.

// When deployed to an azure host, the default azure credential will authenticate the specified user assigned managed identity.

string userAssignedClientId = "<your managed identity client Id>";
var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions { ManagedIdentityClientId = userAssignedClientId });

var blobClient = new BlobClient(new Uri("https://myaccount.blob.core.windows.net/mycontainer/myblob"), credential);

Définir un flux d’authentification personnalisé avec des ChainedTokenCredential

Bien que le DefaultAzureCredential moyen le plus rapide soit généralement de commencer à développer des applications pour Azure, les utilisateurs plus avancés peuvent souhaiter personnaliser les informations d’identification prises en compte lors de l’authentification. Avec ChainedTokenCredential, les utilisateurs peuvent combiner plusieurs instances d’informations d’identification pour définir une chaîne d’informations d’identification personnalisée. Cet exemple illustre la création d’un ChainedTokenCredential qui tente de s’authentifier à l’aide d’une identité managée et, si celle-ci n’est pas disponible dans l’environnement actuel, de s’authentifier via l’Azure CLI. Les informations d’identification sont ensuite utilisées pour authentifier un EventHubProducerClient à partir de la bibliothèque de client Azure.Messaging.EventHubs.

// Authenticate using managed identity if it is available; otherwise use the Azure CLI to authenticate.

var credential = new ChainedTokenCredential(new ManagedIdentityCredential(), new AzureCliCredential());

var eventHubProducerClient = new EventHubProducerClient("myeventhub.eventhubs.windows.net", "myhubpath", credential);