Partager via


Déployer et mettre à l’échelle une application ASP.NET Core sur Azure Container Apps

Note

Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 10 de cet article.

Warning

Cette version d'ASP.NET Core n'est plus prise en charge. Pour plus d’informations, consultez la stratégie de prise en charge de .NET et .NET Core. Pour la version actuelle, consultez la version .NET 10 de cet article.

Les applications déployées sur Azure qui connaissent une forte demande intermittente bénéficient de la scalabilité pour répondre à la demande. Les applications évolutives peuvent être mises à l’échelle pour garantir la capacité pendant les pics de charge de travail, puis réduites automatiquement lorsque le pic diminue, ce qui peut réduire les coûts. La mise à l’échelle horizontale (scale-out ou montée en charge) consiste à ajouter des instances d’une ressource, comme des machines virtuelles ou des réplicas de base de données. Cet article explique comment déployer une application ASP.NET Core évolutive horizontalement vers Azure Container Apps en effectuant les tâches suivantes :

  1. Configurer le projet d’exemple
  2. Déployer l’application vers Azure Container Apps
  3. Mettre à l’échelle et dépanner l’application
  4. Créer les services Azure
  5. Connecter les services Azure
  6. Configurer et redéployer l’application

Cet article utilise Razor Pages, mais la plupart des informations s’appliquent à d’autres applications ASP.NET Core.

Dans certains cas, les applications ASP.NET Core de base peuvent évoluer sans considérations particulières. Toutefois, les applications qui utilisent certaines fonctionnalités du framework ou certains modèles d’architecture nécessitent des configurations supplémentaires, notamment les suivantes :

  • Sécurisation des soumissions de formulaire : les applications Razor Pages, MVC et Web API s’appuient souvent sur des soumissions de formulaire. Par défaut, ces applications utilisent des jetons de falsification intersite et des services de protection des données internes pour sécuriser les requêtes. Lorsqu’elles sont déployées dans le cloud, ces applications doivent être configurées pour gérer les problèmes liés au service de protection des données dans un emplacement sécurisé et centralisé.

  • circuits SignalR: les applications Blazor Server nécessitent l’utilisation d’un service Azure SignalR centralisé afin de s’adapter de manière sécurisée. Ces services utilisent également les services de protection des données mentionnés précédemment.

  • Services de mise en cache centralisée ou de gestion d’état : les applications évolutives peuvent utiliser Azure Cache pour Redis afin de fournir une mise en cache distribuée. Le stockage Azure peut être nécessaire pour stocker l’état de frameworks tels que Microsoft Orleans, qui peuvent aider à écrire des applications qui gèrent l’état sur de nombreuses instances d’applications différentes.

Les étapes de cet article montrent comment répondre correctement aux problèmes précédents en déployant une application évolutive sur Azure Container Apps. La plupart des concepts présentés dans ce didacticiel s’appliquent également lors de la mise à l’échelle d’instances Azure App Service.

Configurer le projet d’exemple

Utilisez l’application d’exemple GitHub Explorer pour suivre ce didacticiel. Clonez l’application à partir de GitHub en utilisant la commande suivante :

git clone "https://github.com/dotnet/AspNetCore.Docs.Samples.git"

Accédez au dossier /tutorials/scalable-razor-apps/start et ouvrez le fichier ScalableRazor.csproj.

L’application d’exemple utilise un formulaire de recherche pour parcourir les référentiels GitHub par nom. Le formulaire s’appuie sur les services de protection des données ASP.NET Core intégrés pour gérer les problèmes de falsification. Par défaut, lorsque l’application est mise à l’échelle horizontalement sur Container Apps, le service de protection des données génère une exception.

Tester l’application

  1. Lancez l’application dans Visual Studio. Le projet inclut un fichier Docker, ce qui signifie que vous pouvez sélectionner la flèche en regard du bouton Exécuter pour démarrer l’application à l’aide d’une configuration Docker Desktop ou du serveur Web local ASP.NET Core standard.

Utilisez le formulaire de recherche pour parcourir les référentiels GitHub par nom.

Capture d’écran de l’application GitHub Explorer.

Déployer l’application sur Azure Container Apps

Visual Studio est utilisé pour déployer l’application sur Azure Container Apps. Les applications conteneurisées fournissent un service géré conçu pour simplifier l’hébergement d’applications et de microservices conteneurisés.

Note

De nombreuses ressources créées pour l’application nécessitent un emplacement. Pour cette application, l’emplacement n’a pas d’importance. Une application réelle doit sélectionner un emplacement proche des clients. Vous pouvez sélectionner un emplacement proche de vous.

  1. Dans l’explorateur de solutions Visual Studio, cliquez avec le bouton droit sur le nœud du projet de niveau supérieur et sélectionnez Publier.

  2. Dans la boîte de dialogue de publication, sélectionnez Azure comme cible de déploiement, puis sélectionnez Suivant.

  3. Pour la cible spécifique, sélectionnez Azure Container Apps (Linux),puis sélectionnez Suivant.

  4. Créez une nouvelle application conteneur à déployer. Sélectionnez l’icône verte + pour ouvrir une nouvelle boîte de dialogue et entrez les valeurs suivantes :

    Capture d’écran illustrant le déploiement Visual Studio.

    • Nom de l’application conteneur : laissez la valeur par défaut ou entrez un nom.
    • Nom de l’abonnement : sélectionnez l’abonnement vers lequel effectuer le déploiement.
    • Groupe de ressources : Sélectionnez Nouveau et créez un nouveau groupe de ressources appelé msdocs-scalable-razor.
    • Environnement des applications conteneurs : sélectionnez Nouveau pour ouvrir la boîte de dialogue Environnement des applications conteneurs et entrez les valeurs suivantes :
      • Nom de l’environnement : conservez la valeur par défaut.
      • Emplacement : sélectionnez un emplacement proche de vous.
      • Espace de travail Azure Log Analytics : sélectionnez Nouveau pour ouvrir la boîte de dialogue Espace de travail analytique des journaux d’activité.
        • Nom : laissez la valeur par défaut.
        • Emplacement : sélectionnez un emplacement proche de vous, puis sélectionnez OK pour fermer la boîte de dialogue.
      • Sélectionnez Ok pour fermer la boîte de dialogue d’environnement des applications conteneur.
    • Sélectionnez Créer pour fermer la boîte de dialogue des applications conteneur d’origine. Visual Studio crée la ressource d’application conteneur dans Azure.
  5. Une fois la ressource créée, vérifiez qu’elle est sélectionnée dans la liste des applications conteneur, puis sélectionnez Suivant.

  6. Vous devrez créer un Azure Container Registry pour stocker l’artefact d’image publié pour votre application. Sélectionnez l’icône verte + sur l’écran du registre de conteneurs.

    Une capture d’écran montrant comment créer un nouveau registre de conteneurs.

  7. Conservez les valeurs par défaut, puis sélectionnez Créer.

    Capture d’écran illustrant les valeurs d’un nouveau registre de conteneurs.

  8. Une fois le registre de conteneurs créé, assurez-vous qu’il est sélectionné, puis sélectionnez Terminer pour fermer le workflow de la boîte de dialogue et afficher un résumé du profil de publication.

    Si Visual Studio vous demande d’autoriser l’utilisateur administrateur à accéder au conteneur Docker publié, sélectionnez Oui.

  9. Sélectionnez Publier en haut à droite du résumé du profil de publication pour déployer l’application sur Azure.

Une fois le déploiement terminé, Visual Studio lance le navigateur pour afficher l’application hébergée. Recherchez Microsoft dans le champ de formulaire, et une liste de référentiels s’affiche.

Mettre à l’échelle et dépanner l’application

L’application fonctionne actuellement sans problème, mais nous souhaitons la mettre à l’échelle sur plusieurs instances en prévision d’un trafic important.

  1. Dans le portail Azure, recherchez l’application conteneur razorscaling-app-**** dans la barre de recherche de niveau supérieur et sélectionnez-la dans les résultats.
  2. Dans la page de présentation, sélectionnez Mettre à l’échelle dans le volet de navigation gauche, puis sélectionnez + Modifier et déployer.
  3. Dans la page Révisions, passez à l’onglet Mettre à l’échelle.
  4. Définissez les instances minimales et maximales sur 4, puis sélectionnez Créer. Cette modification de configuration garantit que votre application est mise à l’échelle horizontalement sur quatre instances.

Revenez à l’application. Lorsque la page se charge, tout semble fonctionner correctement dans un premier temps. Cependant, lorsque vous entrez un terme de recherche et que vous le soumettez, une erreur peut se produire. Si aucune erreur ne s’affiche, soumettez le formulaire plusieurs fois.

Dépannage de l’erreur

La raison pour laquelle les requêtes de recherche échouent n’est pas immédiatement apparente. Les outils du navigateur indiquent qu’une réponse 400 Bad Request a été renvoyée. Cependant, vous pouvez utiliser les fonctionnalités de journalisation des applications conteneurisées pour diagnostiquer les erreurs qui se produisent dans votre environnement.

  1. Sur la page de présentation de l’application conteneurisée, sélectionnez Journaux dans le volet de navigation gauche.

  2. Sur la page Journaux, fermez la fenêtre contextuelle qui s’ouvre et accédez à l’onglet Tables.

  3. Développez l’élément Journaux personnalisés pour afficher le nœud ContainerAppConsoleLogs_CL. Ce tableau contient divers journaux d’activité de l’application conteneur qui peuvent être interrogés pour résoudre les problèmes.

    Capture d’écran illustrant les journaux d’activité de l’application conteneur.

  4. Dans l’éditeur de requêtes, composez une requête de base pour rechercher les exceptions récentes dans la table ContainerAppConsoleLogs_CL Logs, comme le script suivant :

    ContainerAppConsoleLogs_CL
    | where Log_s contains "exception"
    | sort by TimeGenerated desc
    | limit 500
    | project ContainerAppName_s, Log_s
    

    La requête précédente recherche dans la table ContainerAppConsoleLogs_CL toutes les lignes contenant le mot exception. Les résultats sont classés par heure de génération, limités à 500 résultats et ne comprennent que les colonnes ContainerAppName_s et Log_s afin de faciliter leur lecture.

  5. Sélectionnez Exécuter. Une liste de résultats s’affiche. Lisez les journaux d’activité et notez que la plupart d’entre eux sont liés aux jetons anti-contrefaçon et au cryptage.

    Capture d’écran illustrant la requête des journaux d’activité.

    Important

    Les erreurs dans l’application sont causées par les services de protection des données .NET. Lorsque plusieurs instances de l’application sont en cours d’exécution, rien ne garantit que la requête HTTP POST pour envoyer le formulaire soit acheminée vers le même conteneur qui a initialement chargé la page à partir de la requête HTTP GET. Si les requêtes sont gérées par différentes instances, les jetons anti-contrefaçon ne sont pas gérés correctement et une exception se produit.

    Dans les étapes suivantes, ce problème est résolu en centralisant les clés de protection des données dans un service de stockage Azure et en les protégeant avec Key Vault.

Créer les services Azure

Pour résoudre les erreurs précédentes, les services suivants sont créés et connectés à l’application :

  • Compte de stockage Azure : gère le stockage des données pour les services de protection des données. Fournit un emplacement centralisé pour stocker les données clés à mesure que l’application évolue. Les comptes de stockage peuvent également être utilisés pour conserver des documents, mettre des données en file d’attente, partager des fichiers et presque tous les types de données blob.
  • Azure KeyVault : ce service stocke les secrets d’une application et permet de gérer les problèmes de chiffrement pour les services de protection des données.

Créez le service de compte de stockage

  1. Dans la barre de recherche du portail Azure, entrez Storage accounts et sélectionnez le résultat correspondant.
  2. Sur la page répertoriant les comptes de stockage, sélectionnez + Créer.
  3. Sous l’onglet Informations de base, entrez les valeurs suivantes :
    • Abonnement : sélectionnez le même abonnement que celui que vous avez choisi pour l’application conteneur.
    • groupe de ressources: sélectionnez le groupe de ressources msdocs-scalable-razor que vous avez créé précédemment.
    • Nom du compte de stockage : nommez le compte scalablerazorstorageXXXX, où les X sont des chiffres aléatoires de votre choix. Ce nom doit être unique dans tout Azure.
    • Région : sélectionnez la même région que celle que vous avez sélectionnée précédemment.
  4. Conservez le reste des valeurs par défaut et sélectionnez Vérifier. Une fois les entrées validées par Azure, sélectionnez Créer.

Azure provisionne le nouveau compte de stockage. Une fois la tâche terminée, sélectionnez Accéder à la ressource pour afficher le nouveau service.

Créer le conteneur de stockage

Créez un conteneur pour stocker les clés de protection des données de l’application.

  1. Dans la page d’accueil du nouveau compte de stockage, sélectionnez Navigateur de stockage dans le volet de navigation gauche.
  2. Sélectionnez conteneurs d’objets blob.
  3. Sélectionnez + Ajouter un conteneur pour ouvrir le menu déroulant Nouveau conteneur.
  4. Entrez un nom de scalablerazorkeys, laissez le reste des paramètres par défaut, puis sélectionnez Créer.

Les nouveaux conteneurs apparaissent dans la liste de la page.

Créer le service Key Vault

Créez un Key Vault pour stocker les clés qui protègent les données dans le conteneur de stockage d’objets blob.

  1. Dans la barre de recherche du portail Azure, entrez Key Vault et sélectionnez le résultat correspondant.
  2. Sur la page de liste des coffres de clés, sélectionnez + Créer.
  3. Sous l’onglet Informations de base, entrez les valeurs suivantes :
    • Abonnement : sélectionnez l’abonnement précédemment sélectionné.
    • groupe de ressources: sélectionnez le groupe de ressources msdocs-scalable-razor précédemment créé.
    • Nom du coffre de clés : saisissez le nom scalablerazorvaultXXXX.
    • Région : sélectionnez une région proche de votre emplacement.
  4. Conservez le reste des paramètres par défaut, puis sélectionnez Vérifier + créer. Attendez qu’Azure valide vos paramètres, puis sélectionnez Créer.

Azure provisionne le nouveau coffre de clés. Une fois la tâche terminée, sélectionnez Accéder à la ressource pour afficher le nouveau service.

Créer la clé

Créez une clé secrète pour protéger les données du compte de stockage blob.

  1. Dans la page d’aperçu principale du coffre de clés, sélectionnez Clés dans le volet de navigation gauche.
  2. Dans la page Créer une clé, sélectionnez + Générer/Importer pour ouvrir le menu déroulant Créer une clé.
  3. Entrez razorkey dans le champ Nom. Laissez le reste des paramètres à leurs valeurs par défaut, puis sélectionnez Créer. Une nouvelle clé apparaît sur la page de liste des clés.

Connectez les services Azure

L’application conteneur nécessite une connexion sécurisée au compte de stockage et aux services de coffre-fort de clés afin de résoudre les erreurs de protection des données et de s’adapter correctement. Les nouveaux services sont connectés entre eux à l’aide des étapes suivantes :

Important

L’attribution des rôles de sécurité via Service Connector et d’autres outils prend généralement une à deux minutes, et peut dans certains cas rares prendre jusqu’à huit minutes.

Connectez le compte de stockage

  1. Dans le portail Azure, accédez à la page d’aperçu de l’application conteneur.
  2. Dans le volet de navigation gauche, sélectionnez Service Connector
  3. Dans la page Service Connector, choisissez + Créer pour ouvrir le panneau contextuel Création de connexion et entrez les valeurs suivantes :
    • Conteneur : sélectionnez l’application conteneur créée précédemment.
    • Type de service : choisissez Stockage – blob.
    • Abonnement : sélectionnez l’abonnement utilisé précédemment.
    • Nom de la connexion : laissez la valeur par défaut.
    • Compte de stockage : sélectionnez le compte de stockage créé précédemment.
    • Type de client : sélectionnez .NET.
  4. Sélectionnez Suivant : Authentification pour passer à l’étape suivante.
  5. Sélectionnez identité managée attribuée par le système, puis choisissez Suivant : Mise en réseau.
  6. Laissez les options de mise en réseau par défaut sélectionnées, puis sélectionnez Vérifier + Créer.
  7. Une fois qu’Azure a validé les paramètres, sélectionnez Créer.

Le connecteur de service active une identité managée affectée par le système sur l’application conteneur. Il attribue également à l'identité un rôle de contributeur de données de blocs de stockage afin qu'elle puisse effectuer des opérations de données sur les conteneurs de stockage.

Connectez le coffre-fort de clés

  1. Dans le portail Azure, accédez à la page de présentation de votre application conteneur.
  2. Dans le volet de navigation gauche, sélectionnez Connecteur de service.
  3. Dans la page Service Connector, choisissez + Créer pour ouvrir le panneau contextuel Création de connexion et entrez les valeurs suivantes :
    • Conteneur : sélectionnez l’application conteneur créée précédemment.
    • Type de service : choisissez Key Vault.
    • Abonnement : sélectionnez l’abonnement utilisé précédemment.
    • Nom de la connexion : laissez la valeur par défaut.
    • Key Vault : sélectionnez le coffre-fort de clés créé précédemment.
    • Type de client : sélectionnez .NET.
  4. Sélectionnez Suivant : Authentification pour passer à l’étape suivante.
  5. Sélectionnez identité managée attribuée par le système, puis choisissez Suivant : Mise en réseau.
  6. Laissez les options de mise en réseau par défaut sélectionnées, puis sélectionnez Vérifier + Créer.
  7. Une fois qu’Azure a validé les paramètres, sélectionnez Créer.

Le connecteur de service attribue un rôle à l'identité afin qu'elle puisse effectuer des opérations de données sur les clés du coffre-fort.

Configurez et redéployez l’application

Les ressources Azure nécessaires ont été créées. Dans cette section, le code de l’application est configuré pour utiliser les nouvelles ressources.

  1. Installez les packages NuGet suivants :

    • Azure.Identity: fournit des classes pour travailler avec les services de gestion des identités et des accès Azure.
    • Microsoft.Extensions.Azure : fournit des méthodes d’extension utiles pour effectuer les configurations Azure de base.
    • Azure.Extensions.AspNetCore.DataProtection.Blobs : permet de stocker les clés ASP.NET Core DataProtection dans Azure Blob Storage afin que les clés puissent être partagées entre plusieurs instances d’une application Web.
    • Azure.Extensions.AspNetCore.DataProtection.Keys: permet de protéger les clés au repos à l’aide de la fonctionnalité Azure Key Vault Key Encryption/Wrapping.
    dotnet add package Azure.Identity
    dotnet add package Microsoft.Extensions.Azure
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Blobs
    dotnet add package Azure.Extensions.AspNetCore.DataProtection.Keys
    
  2. Mettez à jour Program.cs avec le code mis en évidence suivant :

    using Azure.Identity;
    using Microsoft.AspNetCore.DataProtection;
    using Microsoft.Extensions.Azure;
    
    var builder = WebApplication.CreateBuilder(args);
    var BlobStorageUri = builder.Configuration["AzureURIs:BlobStorage"];
    var KeyVaultURI = builder.Configuration["AzureURIs:KeyVault"];
    
    builder.Services.AddRazorPages();
    builder.Services.AddHttpClient();
    builder.Services.AddServerSideBlazor();
    
    builder.Services.AddAzureClientsCore();
    
    builder.Services.AddDataProtection()
                    .PersistKeysToAzureBlobStorage(new Uri(BlobStorageUri),
                                                    new DefaultAzureCredential())
                    .ProtectKeysWithAzureKeyVault(new Uri(KeyVaultURI),
                                                    new DefaultAzureCredential());
    var app = builder.Build();
    
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Error");
        app.UseHsts();
    }
    
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    
    app.UseRouting();
    
    app.UseAuthorization();
    
    app.MapRazorPages();
    
    app.Run();
    

Les modifications précédentes permettent à l’application de gérer la protection des données à l’aide d’une architecture centralisée et évolutive. DefaultAzureCredential découvre les configurations d’identité managée activées précédemment lorsque l’application est redéployée.

Note

L’exemple précédent utilise DefaultAzureCredential pour simplifier l’authentification lors du développement d’applications qui se déploient sur Azure en combinant les informations d’identification utilisées dans les environnements d’hébergement Azure avec les informations d’identification utilisées dans le développement local. Lorsque vous passez à la production, une alternative comme ManagedIdentityCredential peut être plus appropriée. Pour plus d’informations, consultez Authentifier les applications .NET hébergées par Azure auprès des ressources Azure à l’aide d’une identité managée affectée par le système.

Mettez à jour les espaces réservés dans la section AzureURIs du fichier appsettings.json pour inclure les éléments suivants :

  1. Remplacez l’espace réservé <storage-account-name> par le nom du compte de stockage scalablerazorstorageXXXX.

  2. Remplacez l’espace réservé <container-name> par le nom du conteneur de stockage scalablerazorkeys.

  3. Remplacez l’espace réservé <key-vault-name> par le nom du coffre-fort de clés scalablerazorvaultXXXX.

  4. Remplacez l’espace réservé <key-name> dans l’URI du coffre-fort de clés par le nom razorkey créé précédemment.

    {
      "GitHubURL": "https://api.github.com",
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*",
      "AzureURIs": {
        "BlobStorage": "https://<storage-account-name>.blob.core.windows.net/<container-name>/keys.xml",
        "KeyVault": "https://<key-vault-name>.vault.azure.net/keys/<key-name>/"
      }
    }
    

Redéployer l’application

L’application est maintenant correctement configurée pour utiliser les services Azure créés précédemment. Redéployez l’application pour que les modifications apportées au code soient appliquées.

  1. Cliquez avec le bouton droit sur le nœud du projet dans l’explorateur de solutions et sélectionnez Publier.
  2. Dans la vue récapitulative du profil de publication, sélectionnez le bouton Publier dans le coin supérieur droit.

Visual Studio redéploie l’application dans l’environnement Container Apps créé précédemment. Une fois les processus terminés, le navigateur s’ouvre sur la page d’accueil de l’application.

Testez à nouveau l’application en recherchant Microsoft dans le champ de recherche. La page devrait maintenant se recharger avec les résultats corrects à chaque fois que vous soumettez.

Configurer les rôles pour le développement local

Le code et la configuration existants de l’application peuvent également fonctionner lors de l’exécution locale pendant le développement. La classe DefaultAzureCredential configurée précédemment est capable de récupérer les informations d’identification de l’environnement local pour s’authentifier auprès des services Azure. Vous devez attribuer les mêmes rôles à votre propre compte qui ont été affectés à l’identité managée de votre application pour que l’authentification fonctionne. Il doit s’agir du même compte que celui que vous utilisez pour vous connecter à Visual Studio ou à Azure CLI.

Note

DefaultAzureCredentialsimplifie l’authentification lors du développement d’applications qui se déploient sur Azure en combinant les informations d’identification utilisées dans les environnements d’hébergement Azure avec celles utilisées dans le développement local. Lors du passage en production, il est préférable d’opter pour une alternative, telle que ManagedIdentityCredential. Pour plus d’informations, consultez Authentifier les applications .NET hébergées par Azure auprès des ressources Azure à l’aide d’une identité managée affectée par le système.

Connectez-vous à votre environnement de développement local

Vous devez être connecté à Azure CLI, Visual Studio ou Azure PowerShell pour que vos informations d’identification soient récupérées par DefaultAzureCredential.

az login

Attribuez des rôles à votre compte de développeur

  1. Dans le portail Azure, accédez au compte de stockage scalablerazor**** créé précédemment.
  2. Sélectionnez Contrôle d’accès (IAM) dans le volet de navigation gauche.
  3. Sélectionnez + Ajouter, puis Ajouter une attribution de rôle dans le menu déroulant.
  4. Dans la page Ajouter une attribution de rôle, recherchez Storage blob data contributor, sélectionnez le résultat correspondant, puis sélectionnez Suivant.
  5. Assurez-vous que Utilisateur, groupe ou principal de service est sélectionné, puis sélectionnez + Sélectionner des membres.
  6. Dans le menu déroulant Sélectionner des membres, recherchez votre propre compte utilisateur@domaine et sélectionnez-le dans les résultats.
  7. Sélectionnez Suivant, puis Vérifier + attribuer. Une fois les paramètres validés par Azure, sélectionnez à nouveau Vérifier + attribuer.

Comme indiqué précédemment, la propagation des permissions d’attribution de rôle peut prendre une à deux minutes, voire jusqu’à huit minutes dans de rares cas.

Répétez les étapes précédentes pour attribuer un rôle à votre compte afin qu’il puisse accéder au service Key Vault et au secret.

  1. Dans le portail Azure, accédez au Key Vault razorscalingkeys créé précédemment.
  2. Sélectionnez Contrôle d’accès (IAM) dans le volet de navigation gauche.
  3. Sélectionnez + Ajouter, puis Ajouter une attribution de rôle dans le menu déroulant.
  4. Dans la page Ajouter une attribution de rôle, recherchez Key Vault Crypto Service Encryption User, sélectionnez le résultat correspondant, puis sélectionnez Suivant.
  5. Assurez-vous que Utilisateur, groupe ou principal de service est sélectionné, puis sélectionnez + Sélectionner des membres.
  6. Dans le menu déroulant Sélectionner des membres, recherchez votre propre compte utilisateur@domaine et sélectionnez-le dans les résultats.
  7. Sélectionnez Suivant, puis Vérifier + attribuer. Une fois qu’Azure a validé vos paramètres, sélectionnez Vérifier + attribuer à nouveau.

Vous devrez peut-être attendre à nouveau que cette attribution de rôle se propage.

Vous pouvez ensuite revenir à Visual Studio et exécuter l’application localement. Le code devrait continuer à fonctionner comme prévu. DefaultAzureCredentialutilise vos informations d’identification existantes dans Visual Studio ou Azure CLI.

Note

DefaultAzureCredentialsimplifie l’authentification lors du développement d’applications qui se déploient sur Azure en combinant les informations d’identification utilisées dans les environnements d’hébergement Azure avec celles utilisées dans le développement local. Lors du passage en production, il est préférable d’opter pour une alternative, telle que ManagedIdentityCredential. Pour plus d’informations, consultez Authentifier les applications .NET hébergées par Azure auprès des ressources Azure à l’aide d’une identité managée affectée par le système.

Modèles d’application web d’entreprise

Pour obtenir des conseils sur la création d’une application ASP.NET Core fiable, sécurisée, performante, testable et évolutive, consultez Modèles d’application web d’entreprise. Un exemple complet d’application web de qualité de production qui implémente les modèles est disponible.