Condividi tramite


Aggiungere Key Vault all'applicazione Web usando Servizi connessi di Visual Studio

In questa esercitazione si apprenderà come aggiungere facilmente tutto ciò che occorre per iniziare a usare Azure Key Vault per gestire i segreti per i progetti Web in Visual Studio, sia che si usi ASP.NET Core o qualsiasi tipo di progetto ASP.NET. Con la funzione Servizi connessi di Visual Studio è possibile fare in modo che vengano aggiunti automaticamente tutti i pacchetti NuGet e le impostazioni di configurazione necessarie per connettersi a Key Vault in Azure.

Per i dettagli sulle modifiche apportate da Servizi connessi al progetto per abilitare Key Vault, vedere Key Vault Connected Service - What happened to my ASP.NET project (Modifiche apportate al progetto ASP.NET - Servizio connesso Key Vault con Visual Studio) o Key Vault Connected Service - What happened to my ASP.NET Core project (Modifiche apportate al progetto ASP.NET Core - Servizio connesso Key Vault con Visual Studio).

Prerequisiti

Aggiungere il supporto di Key Vault al progetto

Prima di iniziare, assicurarsi di aver eseguito l'accesso a Visual Studio. Accedere con lo stesso account usato per la sottoscrizione di Azure. Aprire quindi un ASP.NET 4.7.1 o versione successiva o il progetto web ASP.NET Core e seguire questa procedura. I passaggi illustrati sono relativi a Visual Studio 2022 versione 17.4. Il flusso potrebbe essere leggermente diverso per altre versioni di Visual Studio.

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul progetto a cui si vuole aggiungere il supporto dell'insieme di credenziali delle chiavi e scegliere Aggiungi>servizio connesso. In Dipendenze del servizio, scegliere l'icona +. Nella pagina Servizio connesso visualizzata sono elencati i servizi che è possibile aggiungere al progetto.

  2. Nel menu dei servizi disponibili scegliere Azure Key Vault e fare clic su Avanti.

    Scegliere

  3. Selezionare la sottoscrizione da usare e quindi, se si ha già un insieme di credenziali delle chiavi che si vuole usare, selezionarlo e fare clic su Avanti.

    Screenshot Selezionare la sottoscrizione

  4. Se non si dispone di un insieme di credenziali delle chiavi esistente, fare clic su Crea nuovo insieme di credenziali delle chiavi. Verrà chiesto di specificare il gruppo di risorse, la posizione e lo SKU.

    Screenshot della schermata

  5. Nella schermata Configura insieme di credenziali delle chiavi è possibile modificare il nome della variabile di ambiente che fa riferimento all'URI di Key Vault. Il stringa di connessione non è archiviato qui. Viene archiviato nell'insieme di credenziali delle chiavi.

    Screenshot della schermata Connessione in Azure Key Vault.

  6. Fare clic su Avanti per esaminare un riepilogo delle modifiche, quindi su Fine.

Ora viene stabilita la connessione a Key Vault ed è possibile accedere ai segreti nel codice. Se è stato appena creato un nuovo insieme di credenziali delle chiavi, testarlo creando un segreto a cui è possibile fare riferimento nel codice. È possibile creare un segreto tramite il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure.

Vedere esempi di codice relativi all'uso dei segreti in libreria client dei segreti di Azure Key Vault per .NET - Esempi di codice.

Configurare l'accesso all'insieme di credenziali delle chiavi

Se l'insieme di credenziali delle chiavi è in esecuzione in un account Microsoft diverso da quello a cui si è effettuato l'accesso a Visual Studio(ad esempio, l'insieme di credenziali delle chiavi è in esecuzione nell'account aziendale, ma Visual Studio usa l'account privato) viene visualizzato un errore nel file Program.cs, che Visual Studio non può ottenere l'accesso all'insieme di credenziali delle chiavi. Per risolvere questo problema, passare al portale di Azure, aprire l'insieme di credenziali delle chiavi e scegliere Controllo di accesso (IAM) per impostare le autorizzazioni. Vedere Fornire l'accesso a chiavi, certificati e segreti di Key Vault con un controllo degli accessi in base al ruolo di Azure.

Nota

Gli insiemi di credenziali delle chiavi meno recenti potrebbero usare un modello di criteri di accesso legacy. È consigliabile eseguire la migrazione di insiemi di credenziali delle chiavi meno recenti per usare il controllo degli accessi in base al ruolo di Azure. Vedere Controllo degli accessi in base al ruolo di Azure e criteri di accesso.

Come viene modificato il progetto ASP.NET Core

Questa sezione identifica le modifiche esatte apportate a un progetto di ASP.NET quando si aggiunge il servizio connesso dell'insieme di credenziali delle chiavi usando Visual Studio.

Aggiunti riferimenti per ASP.NET Core

Influisce sui riferimenti al file di progetto .NET e sui riferimenti al pacchetto NuGet.

Type Riferimento
NuGet Microsoft.AspNetCore.AzureKeyVault.HostingStartup

Aggiunti file per ASP.NET Core

  • È stato aggiunto ConnectedService.json che registra alcune informazioni su provider del servizio connesso, versione e un collegamento alla documentazione.

Modifiche al file di progetto per ASP.NET Core

  • Sono stati aggiunti il file Connected Services ItemGroup e ConnectedServices.json.

Modifiche a launchsettings.json per ASP.NET Core

  • Aggiungere le seguenti voci di variabili di ambiente sia al profilo IIS Express sia al profilo che corrisponde al nome del progetto Web:

      "environmentVariables": {
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONENABLED": "true",
        "ASPNETCORE_HOSTINGSTARTUP__KEYVAULT__CONFIGURATIONVAULT": "<your keyvault URL>"
      }
    

Modifiche in Azure per ASP.NET Core

  • È stato creato un gruppo di risorse o ne è stato usato uno esistente.
  • Creazione di un insieme di credenziali delle chiavi nel gruppo di risorse specificato.

Come viene modificato il progetto ASP.NET Framework

Questa sezione identifica le modifiche esatte apportate a un progetto di ASP.NET quando si aggiunge il servizio connesso dell'insieme di credenziali delle chiavi usando Visual Studio.

Aggiunti riferimenti per ASP.NET Framework

Influisce sui riferimenti al file di progetto .NET e packages.config (riferimenti NuGet).

Type Riferimento
.NET; NuGet Azure.Identity
.NET; NuGet Azure.Security.KeyVault.Keys
.NET; NuGet Azure.Security.key insieme di credenziali. Segreti

Importante

Per impostazione predefinita, è installato Azure.Identity 1.1.1, che non supporta le credenziali di Visual Studio. È possibile aggiornare manualmente il riferimento al pacchetto alla versione 1.2 e superiore utilizzando le credenziali di Visual Studio.

Aggiunti file per ASP.NET Framework

  • È stato aggiunto ConnectedService.json che registra alcune informazioni su provider del servizio connesso, versione e un collegamento alla documentazione.

Modifiche al file di progetto per ASP.NET Framework

  • Sono stati aggiunti il file ConnectedServices.json e ItemGroup di Servizi connessi.
  • Riferimenti agli assembly .NET descritti nella sezione Riferimenti aggiunti.

Passaggi successivi

Se è stata seguita questa esercitazione, le autorizzazioni di Key Vault vengono configurate per l'esecuzione con la propria sottoscrizione di Azure, ma ciò potrebbe non essere utile per uno scenario di produzione. È possibile creare un'identità gestita per gestire l'accesso a Key Vault per l'app. Vedere Come eseguire l'autenticazione in Key Vault e Assegnare un criterio di accesso Key Vault.

Per altre informazioni su Key Vault leggere Guida per gli sviluppatori dell'insieme di credenziali delle chiavi di Azure.

Se l'obiettivo è archiviare la configurazione per un'app ASP.NET Core in un insieme di credenziali delle chiavi di Azure, vedere Provider di configurazione di Azure Key Vault in ASP.NET Core.