Usare un'identità gestita assegnata dal sistema per una macchina virtuale Linux per accedere ad Azure 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 guida introduttiva illustra come usare un'identità gestita assegnata dal sistema come identità di macchina virtuale Linux per accedere all'API di Azure Resource Manager. 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

  • Conoscenza delle identità gestite. Se non si ha familiarità con le identità gestite, vedere questa panoramica.
  • Un account Azure. Iscriversi per riceverne uno gratuito.
  • È anche necessaria una macchina virtuale Linux con le identità gestite assegnate dal sistema abilitate. Se si dispone di una macchina virtuale, ma è necessario abilitare le identità gestite assegnate dal sistema, è possibile farlo nella sezione relativa all'identità delle proprietà della macchina virtuale.

Concedi accesso

Suggerimento

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

Quando si usano 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 Microsoft Entra. L'API di Azure Resource Manager supporta l'autenticazione di Microsoft Entra. Prima di tutto, è necessario concedere all'identità di questa macchina virtuale l'accesso a una risorsa in Azure Resource Manager, in questo caso il gruppo di risorse in cui è contenuta la macchina virtuale.

  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.

    Screenshot che mostra l'aggiunta del ruolo lettore all'identità gestita.

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

Per completare questi passaggi, è necessario disporre di un client SSH. Se si usa Windows, è possibile usare il client SSH nel sottosistema Windows per Linux. Per richiedere assistenza nella configurazione delle chiavi del client SSH, vedere Come usare le chiavi SSH con Windows in Azure o Come creare e usare una coppia di chiavi SSH pubblica e privata per le macchine virtuali Linux in Azure.

  1. Nel portale passare alla macchina virtuale Linux e in Panoramica selezionare Connessione.

  2. Connettersi alla macchina virtuale usando un client SSH di propria scelta.

  3. Nella finestra del terminale, usando curl, effettuare una richiesta alle identità gestite locali per l'endpoint delle risorse di Azure per ottenere un token di accesso per Azure Resource Manager.   La richiesta curl per il token di accesso è mostrata di seguito.

curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -H Metadata:true

Nota

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

La risposta include il token di accesso necessario per accedere ad Azure Resource Manager.

Risposta:

{
  "access_token":"eyJ0eXAiOi...",
  "refresh_token":"",
  "expires_in":"3599",
  "expires_on":"1504130527",
  "not_before":"1504126627",
  "resource":"https://management.azure.com",
  "token_type":"Bearer"
}

È possibile usare questo token di accesso per accedere a Azure Resource Manager, ad esempio per leggere i dettagli del gruppo di risorse a cui l'utente ha concesso in precedenza l'accesso alla macchina virtuale. Sostituire i valori di <SUBSCRIPTION-ID>, <RESOURCE-GROUP> e <ACCESS-TOKEN> con quelli creato in precedenza.

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".  

curl https://management.azure.com/subscriptions/<SUBSCRIPTION-ID>/resourceGroups/<RESOURCE-GROUP>?api-version=2016-09-01 -H "Authorization: Bearer <ACCESS-TOKEN>" 

Risposta con le informazioni specifiche 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: