Usare un'identità gestita assegnata dal sistema per una macchina virtuale Windows per accedere a Resource Manager

Le identità gestite per le risorse di Azure sono una funzionalità di Microsoft Entra ID. 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 illustra come accedere all'API di Azure Resource Manager usando una macchina virtuale Windows con un'identità gestita assegnata dal sistema abilitata. Le identità gestite per le risorse di Azure vengono gestite automaticamente da Azure e consentono di eseguire l'autenticazione ai servizi che supportano l'autenticazione di Microsoft Entra senza dover inserire le credenziali nel codice. Scopri come:

  • Concedere alla macchina virtuale l'accesso a un gruppo di risorse in Azure Resource Manager
  • Ottenere un token di accesso usando l'identità della macchina virtuale e usarlo per chiamare Azure Resource Manager

Prerequisiti

Abilitare

L'abilitazione di un'identità gestita assegnata dal sistema si esegue con un semplice clic del mouse. È possibile abilitarla durante la creazione di una macchina virtuale o nelle proprietà di una VM esistente.

Screenshot shows the System assigned tab for a virtual machine where you can turn on the System assigned status.

Per abilitare l'identità gestita assegnata dal sistema in una nuova VM:

  1. Accedere al portale di Azure

  2. Creare una macchina virtuale con l'identità assegnata dal sistema abilitata

Concedere alla macchina virtuale l'accesso a un gruppo di risorse in Gestione risorse

Suggerimento

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

Usando le identità gestite per le risorse di Azure, l'applicazione può ottenere token di accesso per l'autenticazione alle risorse che supportano l'autenticazione di Microsoft Entra. L'API di Azure Resource Manager supporta l'autenticazione di Microsoft Entra. L'identità di questa macchina virtuale viene concessa all'accesso a una risorsa in Azure Resource Manager, in questo caso un gruppo di risorse. Il ruolo Lettore viene assegnato all'identità gestita nell'ambito del gruppo di risorse.

  1. Accedere al portale di Azure con l'account amministratore.
  2. Passare alla scheda Gruppo di risorse.
  3. Selezionare il gruppo di risorse a cui si vuole concedere l'accesso all'identità gestita della macchina virtuale.
  4. Nel pannello sinistro selezionare Controllo di accesso (IAM).
  5. Selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.
  6. Nella scheda Ruolo selezionare Lettore. Questo ruolo consente di visualizzare tutte le risorse, ma non consente di apportare modifiche.
  7. Nella scheda Membri selezionare Identità gestita per Assegna accesso a. Selezionare quindi + Seleziona membri.
  8. Verificare che la sottoscrizione appropriata sia elencata nell'elenco a discesa Sottoscrizione . In Gruppo di risorse selezionare Tutti i gruppi di risorse.
  9. Per l'elenco a discesa Gestisci identità selezionare Macchina virtuale.
  10. Infine, in Seleziona scegliere la macchina virtuale Windows nell'elenco a discesa e selezionare Salva.

Ottenere un token di accesso usando l'identità gestita assegnata dal sistema della macchina virtuale e usarlo per chiamare Azure Resource Manager

In questa parte sarà necessario usare PowerShell . Se PowerShell non è installato, scaricarlo da qui.

  1. Nel portale passare a Macchine virtuali e passare alla macchina virtuale Windows e nella panoramica selezionare Connessione.

  2. In Nome utente e Password immettere i valori specificati al momento della creazione della macchina virtuale Windows.

  3. Dopo aver creato un Connessione Desktop remoto con la macchina virtuale, aprire PowerShell nella sessione remota.

  4. Usando il cmdlet Invoke-WebRequest, effettuare una richiesta all'endpoint locale dell'identità gestita per le risorse di Azure per ottenere un token di accesso per Azure Resource Manager.

       $response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
    

    Nota

    Il valore del parametro "resource" deve essere una corrispondenza esatta per ciò che è previsto dall'ID Microsoft Entra. Quando si usa l'ID risorsa di Azure Resource Manager, è necessario includere la barra finale nell'URI.

    Estrarre la risposta completa, archiviata come stringa in formato JSON (JavaScript Object Notation) nell'oggetto $response.

    $content = $response.Content | ConvertFrom-Json
    

    Estrarre poi il token di accesso dalla risposta.

    $ArmToken = $content.access_token
    

    Chiamare infine Azure Resource Manager usando il token di accesso. In questo esempio il cmdlet Invoke-WebRequest viene usato anche per effettuare la chiamata ad Azure Resource Manager e includere il token di accesso nell'intestazione dell'autorizzazione.

    (Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $ArmToken"}).content
    

    Nota

    L'URL fa distinzione tra maiuscole e minuscole. Accertarsi quindi di usare la stessa combinazione di maiuscole e minuscole usata in precedenza per il nome del gruppo di risorse, facendo attenzione alla maiuscola "G" in "resourceGroup".

    Il comando seguente restituisce le informazioni del gruppo di risorse:

    {"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
    

Passaggi successivi

In questa esercitazione si è appreso come usare un'identità gestita assegnata dal sistema per accedere all'API di Azure Resource Manager. Per altre informazioni su Azure Resource Manager, vedere: