Esercitazione: Usare un'identità gestita assegnata dal sistema per una macchina virtuale Windows per accedere ad Azure Key Vault

Le identità gestite per le risorse di Azure sono una funzionalità di Azure Active Directory. Tutti i servizi di Azure che supportano le identità gestite per le risorse di Azure sono soggetti alla sequenza temporale di tali entità. Prima di iniziare, assicurarsi di esaminare lo stato di disponibilità delle identità gestite per la risorsa e i problemi noti.

Questa esercitazione mostra come usare un'identità gestita assegnata dal sistema per una macchina virtuale Windows per accedere ad Azure Key Vault. Key Vault consente all'applicazione client di usare un segreto per accedere alle risorse non protette da Azure Active Directory (Azure AD). Le identità gestite vengono gestite automaticamente da Azure. Consentono di eseguire l'autenticazione ai servizi che supportano l'autenticazione di Azure AD, senza includere le informazioni di autenticazione nel codice.

Si apprenderà come:

  • Concedere alla macchina virtuale l'accesso a un segreto archiviato in un insieme di credenziali delle chiavi
  • Ottenere un token di accesso usando l'identità  della macchina virtuale e usarlo per recuperare il segreto dall'insieme di credenziali delle chiavi

Prerequisiti

Creare un insieme di credenziali delle chiavi

Questa sezione illustra come concedere alla macchina virtuale l'accesso a un segreto archiviato in un insieme di credenziali delle chiavi. Quando si usano le identità gestite per le risorse di Azure, il codice può ottenere i token di accesso per l'autenticazione alle risorse che supportano l'autenticazione di Azure AD.  Tuttavia, non tutti i servizi di Azure supportano l'autenticazione di Azure AD. Per usare le identità gestite per le risorse di Azure con questi servizi, archiviare le credenziali del servizio in Azure Key Vault e usare l'identità gestita della macchina virtuale per accedere a Key Vault e recuperare le credenziali.

In primo luogo, è necessario creare un insieme di credenziali delle chiavi e concedere l'accesso a tale insieme all'identità gestita assegnata dal sistema della macchina virtuale.

  1. Aprire il portale di Azure

  2. Nella parte superiore della barra di spostamento a sinistra selezionare Crea una risorsa

  3. Nella casella Cerca nel Marketplace digitare Key Vault e quindi premere INVIO.  

  4. Nell'elenco dei risultati selezionare Key Vault.

  5. Selezionare Crea

  6. Specificare un nome per il nuovo insieme di credenziali delle chiavi.

    Schermata Crea un Key Vault

  7. Compilare tutte le informazioni necessarie. Assicurarsi di scegliere la sottoscrizione e il gruppo di risorse usati per questa esercitazione.

  8. Selezionare Rivedi e crea

  9. Selezionare Crea

Creare un segreto

Successivamente, aggiungere un segreto all'istanza di Key Vault, in modo che sia possibile recuperarlo in un secondo momento usando il codice in esecuzione nella macchina virtuale. In questa esercitazione si usa PowerShell, ma gli stessi concetti si applicano a qualsiasi codice in esecuzione in questa macchina virtuale.

  1. Passare all'istanza di Key Vault appena creata.

  2. Selezionare Segreti e quindi Aggiungi.

  3. Selezionare Genera/Importa

  4. Nella schermata Crea un segreto , in Opzioni di caricamento lasciare selezionata l'opzione Manuale .

  5. Specificare un nome e il valore del segreto.  È possibile specificare qualsiasi valore. 

  6. Lasciare vuoti i campi della data di attivazione e della data di scadenza e lasciare Abilitato su

  7. Selezionare Crea per creare il segreto.

    Creare un segreto

Concedere l'accesso

All'identità gestita usata dalla macchina virtuale deve essere concesso l'accesso per leggere il segreto che verrà archiviato nel Key Vault.

  1. Passare all'istanza di Key Vault appena creata

  2. Selezionare Criteri di accesso dal menu sul lato sinistro.

  3. Selezionare Aggiungi criterio di accesso.

    schermata di creazione dei criteri di accesso di Key Vault

  4. Nella sezione Aggiungi criteri di accesso , in Configura dal modello (facoltativo) scegliere Gestione segreti dal menu a discesa.

  5. Scegliere Selezionare un'entità e nel campo di ricerca immettere il nome della macchina virtuale creata in precedenza.  Selezionare la macchina virtuale nell'elenco dei risultati e scegliere Seleziona.

  6. Selezionare Aggiungi

  7. Selezionare Salva.

Accedere ai dati

Questa sezione illustra come ottenere un token di accesso usando l'identità della macchina virtuale e usarlo per recuperare il segreto da Key Vault. Se non si dispone di PowerShell 4.3.1 o versione successiva, è necessario scaricare e installare la versione più recente.

In primo luogo, si userà l'identità gestita assegnata dal sistema della macchina virtuale per ottenere un token di accesso per l'autenticazione a Key Vault:

  1. Nel portale passare a Macchine virtuali e passare alla macchina virtuale Windows e nella panoramica selezionare Connetti.
  2. Inserire il Nome utente e la Password aggiunti al momento della creazione della macchina virtuale Windows.  
  3. Dopo aver creato una connessione Desktop remoto con la macchina virtuale, aprire PowerShell nella sessione remota.  
  4. In PowerShell, richiamare la richiesta Web nel tenant per ottenere il token per l'host locale in una porta specifica della macchina virtuale.  

Richiesta di PowerShell:

$Response = Invoke-RestMethod -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -Method GET -Headers @{Metadata="true"} 

L'aspetto della risposta sarà simile al seguente:

richiesta con risposta token

Estrarre poi il token di accesso dalla risposta.  

   $KeyVaultToken = $Response.access_token

Infine, usare il comando Invoke-WebRequest di PowerShell per recuperare il segreto creato in precedenza nell'insieme di credenziali delle chiavi, passando il token di accesso nell'intestazione dell'autorizzazione.  È necessario l'URL dell'insieme di credenziali delle chiavi che si trova nella sezione Informazioni di base della pagina Panoramica dell'insieme di credenziali delle chiavi.  

Invoke-RestMethod -Uri https://<your-key-vault-URL>/secrets/<secret-name>?api-version=2016-10-01 -Method GET -Headers @{Authorization="Bearer $KeyVaultToken"}

La risposta avrà l'aspetto seguente:

  value       id                                                                                    attributes
  -----       --                                                                                    ----------
  'My Secret' https://mi-lab-vault.vault.azure.net/secrets/mi-test/50644e90b13249b584c44b9f712f2e51 @{enabled=True; created=16…

Dopo aver recuperato il segreto dall'insieme di credenziali delle chiavi, è possibile usarlo per eseguire l'autenticazione a un servizio che richiede un nome e una password.

Pulire le risorse

Se si vogliono pulire le risorse, visitare il portale di Azure, selezionare Gruppi di risorse, individuare e selezionare il gruppo di risorse creato in questa esercitazione, ad esempio mi-test, quindi scegliere il comando Elimina gruppo di risorse.

In alternativa, è anche possibile pulire le risorse tramite PowerShell o l'interfaccia della riga di comando

Passaggi successivi

In questa esercitazione si è appreso come usare un'identità gestita assegnata dal sistema per una macchina virtuale Windows per accedere ad Azure Key Vault. Per altre informazioni sulle Key Vault di Azure, vedere: