Usare un'identità gestita assegnata dal sistema per una macchina virtuale Windows per accedere a Resource ManagerUse a Windows VM system-assigned managed identity to access Resource Manager

Le identità gestite per le risorse di Azure sono una funzionalità di Azure Active Directory.Managed identities for Azure resources is a feature of 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à.Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Prima di iniziare, assicurarsi di esaminare lo stato di disponibilità delle identità gestite per la risorsa e i problemi noti.Make sure you review the availability status of managed identities for your resource and known issues before you begin.

Questa esercitazione illustra come accedere all'API di Azure Resource Manager usando una macchina virtuale Windows con un'identità gestita assegnata dal sistema abilitata.This tutorial shows you how to access the Azure Resource Manager API using a Windows virtual machine with system-assigned managed identity enabled. 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 Azure AD senza la necessità di inserire le credenziali nel codice.Managed identities for Azure resources are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication without needing to insert credentials into your code. Si apprenderà come:You learn how to:

  • Concedere alla macchina virtuale l'accesso a un gruppo di risorse in Azure Resource ManagerGrant your VM access to a Resource Group in Azure Resource Manager
  • Ottenere un token di accesso usando l'identità della macchina virtuale e usarlo per chiamare Azure Resource ManagerGet an access token using the VM identity and use it to call Azure Resource Manager

PrerequisitiPrerequisites

Concedere alla macchina virtuale l'accesso a un gruppo di risorse in Gestione risorseGrant your VM access to a resource group in Resource Manager

Usando le identità gestite per le risorse di Azure, il codice può ottenere i token di accesso per autenticarsi alle risorse che supportano l'autenticazione di Azure AD.Using managed identities for Azure resources, your code can get access tokens to authenticate to resources that support Azure AD authentication. Azure Resource Manager supporta l'autenticazione di Azure AD.The Azure Resource Manager supports Azure AD authentication. In primo luogo, è necessario concedere all'identità gestita assegnata dal sistema della macchina virtuale l'accesso a una risorsa di Resource Manager, in questo caso al gruppo di risorse che contiene la macchina virtuale.First, we need to grant this VM’s system-assigned managed identity access to a resource in Resource Manager, in this case the Resource Group in which the VM is contained.

  1. Passare alla scheda Gruppo di risorse.Navigate to the tab for Resource Groups.

  2. Selezionare il Gruppo di risorse specifico creato per la macchina virtuale Windows.Select the specific Resource Group you created for your Windows VM.

  3. Passare a Controllo di accesso (IAM) nel pannello a sinistra.Go to Access control (IAM) in the left panel.

  4. Fare quindi clic su Aggiungi assegnazione di ruolo per aggiungere una nuova assegnazione di ruolo per la macchina virtuale Windows.Then Add role assignment a new role assignment for your Windows VM. Scegliere Ruolo come Lettore.Choose Role as Reader.

  5. Dall'elenco a discesa successivo Assegna accesso a selezionare la risorsa Macchina virtuale.In the next drop-down, Assign access to the resource Virtual Machine.

  6. Verificare quindi che nell'elenco a discesa Sottoscrizione sia elencata la sottoscrizione corretta.Next, ensure the proper subscription is listed in the Subscription dropdown. In Gruppo di risorse selezionare Tutti i gruppi di risorse.And for Resource Group, select All resource groups.

  7. Scegliere infine la macchina virtuale Windows nell'elenco a discesa Seleziona e fare clic su Salva.Finally, in Select choose your Windows VM in the dropdown and click Save.

    Testo immagine alt

Ottenere un token di accesso usando l'identità gestita assegnata dal sistema della macchina virtuale e usarlo per chiamare Azure Resource ManagerGet an access token using the VM's system-assigned managed identity and use it to call Azure Resource Manager

In questa sezione è necessario usare PowerShell.You will need to use PowerShell in this portion. Se PowerShell non è installato, scaricarlo da qui.If you don’t have PowerShell installed, download it here.

  1. Nel portale passare a Macchine virtuali, selezionare la macchina virtuale Windows e in Panoramica fare clic su Connetti.In the portal, navigate to Virtual Machines and go to your Windows virtual machine and in the Overview, click Connect.

  2. In Nome utente e Password immettere i valori specificati al momento della creazione della macchina virtuale Windows.Enter in your Username and Password for which you added when you created the Windows VM.

  3. Ora che si è creata una connessione Desktop remoto con la macchina virtuale, aprire PowerShell nella sessione remota.Now that you have created a Remote Desktop Connection with the virtual machine, open PowerShell in the remote session.

  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.Using the Invoke-WebRequest cmdlet, make a request to the local managed identity for Azure resources endpoint to get an access token for 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 "risorsa" deve corrispondere esattamente a quello previsto da Azure AD.The value of the "resource" parameter must be an exact match for what is expected by Azure AD. Quando si usa l'ID risorsa di Azure Resource Manager, è necessario includere la barra finale nell'URI.When using the Azure Resource Manager resource ID, you must include the trailing slash on the URI.

    Estrarre la risposta completa, archiviata come stringa in formato JSON (JavaScript Object Notation) nell'oggetto $response.Next, extract the full response, which is stored as a JavaScript Object Notation (JSON) formatted string in the $response object.

    $content = $response.Content | ConvertFrom-Json
    

    Estrarre poi il token di accesso dalla risposta.Next, extract the access token from the response.

    $ArmToken = $content.access_token
    

    Chiamare infine Azure Resource Manager usando il token di accesso.Finally, call Azure Resource Manager using the access token. 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.In this example, we're also using the Invoke-WebRequest cmdlet to make the call to Azure Resource Manager, and include the access token in the Authorization header.

    (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".The URL is case-sensitive, so ensure if you are using the exact same case as you used earlier when you named the Resource Group, and the uppercase "G" in "resourceGroups."

    Il comando seguente restituisce le informazioni del gruppo di risorse:The following command returns the details of the Resource Group:

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

Passaggi successiviNext steps

In questa esercitazione si è appreso come usare un'identità gestita assegnata dal sistema per accedere all'API di Azure Resource Manager.In this quickstart, you learned how to use a system-assigned managed identity to access the Azure Resource Manager API. Per altre informazioni su Azure Resource Manager, vedere:To learn more about Azure Resource Manager see: