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.
Découvrez comment accéder aux services Azure, tels que Azure Storage, à partir d'une application web en cours d'exécution sur Azure App Service en utilisant des identités managées, sans nécessiter un utilisateur connecté. Ce tutoriel montre comment se connecter à Azure Storage comme exemple.
Ce tutoriel permet d’accéder en toute sécurité à tout service prenant en charge une identité managée (B dans l’image suivante) :
- Azure Storage
- Azure SQL Database
- Azure Key Vault
Vous souhaitez ajouter un accès sécurisé aux services Azure, notamment Stockage Azure, Azure SQL Database et Azure Key Vault, à partir de votre application web. Vous pourriez utiliser une clé partagée, mais vous devriez alors vous occuper de la sécurité opérationnelle afin d’identifier qui pourrait créer, déployer et gérer le secret. Il est également possible que la clé puisse être vérifiée dans GitHub, que les pirates savent comment rechercher. Un moyen plus sûr d’accorder à votre application web l’accès aux données consiste à utiliser des identités managées.
Une identité managée à partir de Microsoft Entra ID permet à App Service d’accéder aux ressources via le contrôle d’accès en fonction du rôle (RBAC), sans nécessiter d’informations d’identification d’application. Après avoir affecté une identité managée à votre application web, Azure s’occupe de la création et de la distribution d’un certificat. Vous n’avez pas à vous soucier de la gestion des secrets ou des informations d’identification d’application.
Dans ce tutoriel, vous allez apprendre à :
- Créer une identité managée affectée par le système sur une application web.
- Créez un compte de stockage et un conteneur Azure Blob Storage.
- Accéder au stockage à partir d’une application web avec des identités managées.
Si vous n'avez pas de compte Azure, créez un compte free avant de commencer.
Prérequis
Application web s’exécutant sur Azure App Service :
Activer une identité managée sur une application
Si vous créez et publiez votre application web via Visual Studio, l’identité managée a été activée sur votre application pour vous.
Dans votre service d’application, dans le menu de gauche, sélectionnez Identité, puis sélectionnez Système affecté. Vérifiez qu’État a la valeur Activé.
Si ce n’est pas le cas, sélectionnez Activé, puis Enregistrez. Pour activer l’identité managée affectée par le système, dans la boîte de dialogue de confirmation, sélectionnez Oui. Lorsque l’identité managée est activée, l’état prend la valeur Activé et l’ID d’objet est disponible.
Cette étape crée un ID d’objet différent de l’ID d’application créé dans le volet Authentification/Autorisation. Copiez l’ID d’objet de l’identité managée affectée par le système. Vous en aurez besoin ultérieurement.
Créer un compte de stockage et un conteneur Blob Storage
Vous êtes maintenant prêt à créer un compte de stockage et Blob Storage conteneur.
Chaque compte de stockage doit appartenir à un groupe de ressources Azure. Un groupe de ressources est un conteneur logique pour vos services Azure. Lorsque vous créez un compte de stockage, vous pouvez créer un groupe de ressources ou utiliser un groupe de ressources existant. Cet article montre comment créer un groupe de ressources.
Un compte de stockage v2 universel permet d’accéder à tous les services Azure Storage : objets blob, fichiers, files d’attente, tables et disques. Les étapes décrites ici créent un compte de stockage v2 universel, mais les étapes de création d’un autre type de compte de stockage sont similaires.
Les objets blob dans Azure Storage sont organisés en conteneurs. Avant de pouvoir télécharger un objet blob plus loin dans ce tutoriel, vous devez d’abord créer un conteneur.
Pour créer un compte de stockage v2 universel dans le portail Azure, procédez comme suit.
Dans le menu du portail Azure, entrez Comptes de stockage. Au fur et à mesure de la saisie, la liste est filtrée en fonction de votre saisie. Sélectionnez Comptes de stockage.
Dans la fenêtre Comptes de stockage qui apparaît, sélectionnez Créer.
Sélectionnez l’abonnement dans lequel créer le compte de stockage.
Pour le groupe de ressources, sélectionnez le groupe de ressources qui contient votre application web.
Entrez un nom pour votre compte de stockage. Le nom que vous choisissez doit être unique dans Azure. Le nom doit être compris entre 3 et 24 caractères et peut inclure des chiffres et des lettres minuscules uniquement.
Sélectionnez l’emplacement (région) de votre compte de stockage ou utilisez la valeur par défaut.
Pour le type de stockage préféré, sélectionnez Stockage Blob Azure ou Azure Data Lake Storage Gen2.
Laissez ces champs définis sur leur valeur par défaut :
Champ Valeur Performances Norme Redondance Stockage géo-redondant Cliquez sur Vérifier + créer pour passer en revue vos paramètres de compte de stockage et créer le compte.
Sélectionnez Create (Créer).
Pour créer un conteneur Blob Storage dans Azure Storage, procédez comme suit.
Accédez à votre nouveau compte de stockage dans le portail Azure.
Dans le menu de gauche du compte de stockage, sous Stockage de données, sélectionnez Conteneurs.
Sélectionnez Ajouter un conteneur.
Entrez un nom pour votre nouveau conteneur. Le nom du conteneur doit être en minuscules, commencer par une lettre ou un chiffre, et peut comporter uniquement des lettres, des chiffres et des tirets (-).
Définissez le niveau d’accès public sur le conteneur. Le niveau par défaut est Private (no anonymous access) (Privé (aucun accès anonyme)).
Sélectionnez OK pour créer le conteneur.
Accorder l’accès au compte de stockage
Vous devez accorder à votre application web un accès au compte de stockage avant de pouvoir créer, lire ou supprimer des objets blob. Dans une section précédente, vous avez configuré l’application web s’exécutant sur App Service avec une identité managée. À l’aide de Azure RBAC, vous pouvez accorder à l’identité managée l’accès à une autre ressource, comme n’importe quel principal de sécurité.
Le rôle Contributeur aux données Blob du stockage accorde à l’application web (représentée par l’identité managée affectée par le système) un accès en lecture, écriture et suppression au conteneur d’objets blob et aux données.
Note
Azure RBAC ne prend pas en charge certaines opérations sur des conteneurs d’objets blob privés, telles que l’affichage d’objets blob ou la copie d’objets blob entre les comptes. Un conteneur d’objets blob avec un niveau d’accès privé nécessite un jeton SAP pour toute opération que RBAC Azure n’autorise pas. Pour plus d'informations, consultez Quand utiliser une signature d'accès partagé.
- Dans le portail Azure, accédez à votre compte de stockage pour accorder à votre application web l’accès.
- Dans le menu de gauche, sélectionnez Contrôle d’accès (IAM), puis sélectionnez Attributions de rôles. Vous voyez une liste des personnes ayant accès au compte de stockage.
- Vous souhaitez ajouter une attribution de rôle au service d’application qui a besoin d’accéder au compte de stockage. Sélectionnez Ajouter>Ajouter une attribution de rôle pour ouvrir la page Ajouter une attribution de rôle.
- Affectez le rôle Contributeur de données d’objet blob de stockage à App Service au niveau du compte de stockage. Pour plus d’informations, consultez Attribuer des rôles Azure en utilisant le portail Azure.
Votre application web a maintenant accès à votre compte de stockage.
Accéder au Stockage Blob
La classe DefaultAzureCredential est utilisée pour obtenir des informations d’identification de jeton pour votre code afin d’autoriser les requêtes à Azure Storage. Créez une instance de la classe DefaultAzureCredential, qui utilise l’identité managée pour extraire des jetons et les attacher au client de service. L’exemple de code suivant obtient le jeton d'authentification et l’utilise pour créer un client de service, qui charge un nouveau blob.
Pour voir ce code dans un exemple d’application, consultez l'sample sur GitHub.
Installer des packages de bibliothèque de client
Installez le package NuGet Blob Storage pour utiliser Blob Storage et le package NuGet de la bibliothèque de client Azure Identity pour .NET pour vous authentifier avec les identifiants Microsoft Entra. Installez les bibliothèques clientes à l’aide de l’interface de ligne de commande .NET Core ou de la console Package Manager dans Visual Studio.
ligne de commande .NET Core
Ouvrez une ligne de commande et basculez vers le répertoire qui contient votre fichier projet.
Exécutez les commandes d’installation.
dotnet add package Azure.Storage.Blobs dotnet add package Azure.Identity
Console du gestionnaire de packages
Ouvrez le projet ou la solution dans Visual Studio, puis ouvrez la console à l’aide de la commande Tools>NuGet Package Manager>Package Manager Console.
Exécutez les commandes d’installation.
Install-Package Azure.Storage.Blobs Install-Package Azure.Identity
exemple de .NET
using System;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using System.IO;
using Azure.Identity;
// Some code omitted for brevity.
static public async Task UploadBlob(string accountName, string containerName, string blobName, string blobContents)
{
// Construct the blob container endpoint from the arguments.
string containerEndpoint = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get a credential and create a client object for the blob container.
BlobContainerClient containerClient = new BlobContainerClient(new Uri(containerEndpoint),
new DefaultAzureCredential());
try
{
// Create the container if it doesn't exist.
await containerClient.CreateIfNotExistsAsync();
// Upload text to a new block blob.
byte[] byteArray = Encoding.ASCII.GetBytes(blobContents);
using (MemoryStream stream = new MemoryStream(byteArray))
{
await containerClient.UploadBlobAsync(blobName, stream);
}
}
catch (Exception e)
{
throw e;
}
}
Nettoyer les ressources
Si vous avez terminé ce didacticiel et que vous n’avez plus besoin de l’application web ou des ressources associées, nettoyez les ressources que vous avez créées.
Supprimer le groupe de ressources
Dans le portail Azure, sélectionnez Groupes de ressources dans le menu du portail Azure, puis sélectionnez le groupe de ressources qui contient votre plan App Service et App Service.
Sélectionnez Supprimer le groupe de ressources pour supprimer le groupe de ressources et toutes les ressources.
Entrez le nom du groupe de ressources à confirmer.
Ce processus peut prendre plusieurs minutes.
Étapes suivantes
Dans ce didacticiel, vous avez appris à :
- Créer une identité gérée attribuée par le système.
- Créez un compte de stockage et Blob Storage conteneur.
- Accéder au stockage à partir d’une application web avec des identités managées.