Guida introduttiva: Creare un gruppo di gestione con .NET Core

I gruppi di gestione sono contenitori che semplificano la gestione dell'accesso, dei criteri e della conformità tra più sottoscrizioni. Creare questi contenitori per creare una gerarchia efficiente ed efficace utilizzabile con Criteri di Azure e Controllo degli accessi in base al ruolo di Azure. Per altre informazioni sui gruppi di gestione, vedere Organizzare le risorse con i gruppi di gestione di Azure.

La creazione del primo gruppo di gestione nella directory può richiedere fino a 15 minuti. La prima volta vengono eseguiti processi che eseguono la configurazione del servizio dei gruppi di gestione all'interno di Azure per la directory. Al termine dei processi, si riceve una notifica. Per altre informazioni, vedere Configurazione iniziale dei gruppi di gestione.

Prerequisiti

  • Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

  • Un'entità servizio di Azure, tra cui clientId e clientSecret. Se non si hanno entità servizio da usare con Criteri di Azure o se ne vuole creare una nuova, vedere Librerie di gestione di Azure per l'autenticazione .NET. Ignorare il passaggio per installare i pacchetti di .NET Core perché questa operazione verrà descritta nei passaggi successivi.

  • Se la protezione della gerarchia non è abilitata, qualsiasi utente di Azure AD nel tenant può creare un gruppo di gestione senza avere autorizzazioni di scrittura assegnate per tale gruppo di gestione. Questo nuovo gruppo di gestione diventa un elemento figlio del gruppo di gestione radice o del gruppo di gestione predefinito e all'autore viene assegnato il ruolo "Proprietario". Il servizio del gruppo di gestione offre questa possibilità per evitare che siano necessarie assegnazioni di ruolo a livello di radice. Nessun utente ha accesso al gruppo di gestione radice quando viene creato. Per evitare il problema di reperire gli amministratori globali di Azure AD per iniziare a usare i gruppi di gestione, è consentita la creazione dei gruppi di gestione iniziali al livello radice.

Azure Cloud Shell

Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice in questo articolo, senza dover installare alcun elemento nell'ambiente locale.

Per avviare Azure Cloud Shell:

Opzione Esempio/Collegamento
Selezionare Prova nell'angolo superiore destro di un codice o di un blocco di comandi. Selezionando Prova non viene copiato automaticamente il codice o il comando in Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. Button to launch Azure Cloud Shell.
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Per usare Azure Cloud Shell:

  1. Avviare Cloud Shell.

  2. Selezionare il pulsante Copia in un blocco di codice (o blocco di comandi) per copiare il codice o il comando.

  3. Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux oppure selezionando CMD+MAIUSC+V in macOS.

  4. Selezionare INVIO per eseguire il codice o il comando.

Configurazione dell'applicazione

Per consentire a .NET Core di gestire i gruppi di gestione, creare una nuova applicazione console e installare i pacchetti richiesti.

  1. Controllare che sia installata l'ultima versione di .NET Core (almeno la 3.1.8). Se non è ancora installata, scaricarla dal sito dotnet.microsoft.com.

  2. Inizializzare una nuova applicazione console .NET Core denominata "mgCreate":

    dotnet new console --name "mgCreate"
    
  3. Cambiare le directory nella nuova cartella di progetto e installare i pacchetti richiesti per Criteri di Azure:

    # Add the Azure Policy package for .NET Core
    dotnet add package Microsoft.Azure.Management.ManagementGroups --version 1.1.1-preview
    
    # Add the Azure app auth package for .NET Core
    dotnet add package Microsoft.Azure.Services.AppAuthentication --version 1.6.1
    
  4. Sostituire il file program.cs predefinito con il codice seguente e salvare il file aggiornato:

    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using Microsoft.Rest;
    using Microsoft.Azure.Management.ManagementGroups;
    using Microsoft.Azure.Management.ManagementGroups.Models;
    
    namespace mgCreate
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                string strTenant = args[0];
                string strClientId = args[1];
                string strClientSecret = args[2];
                string strGroupId = args[3];
                string strDisplayName = args[4];
    
                var authContext = new AuthenticationContext($"https://login.microsoftonline.com/{strTenant}");
                var authResult = await authContext.AcquireTokenAsync(
                       "https://management.core.windows.net",
                       new ClientCredential(strClientId, strClientSecret));
    
                using (var client = new ManagementGroupsAPIClient(new TokenCredentials(authResult.AccessToken)))
                {
                    var mgRequest = new CreateManagementGroupRequest
                    {
                        DisplayName = strDisplayName
                    };
                    var response = await client.ManagementGroups.CreateOrUpdateAsync(strGroupId, mgRequest);
                }
            }
        }
    }
    
  5. Compilare e pubblicare l'applicazione console mgCreate:

    dotnet build
    dotnet publish -o {run-folder}
    

Creare il gruppo di gestione

In questo argomento di avvio rapido viene creato un nuovo gruppo di gestione nel gruppo di gestione radice.

  1. Passare alla directory {run-folder} definita con il comando dotnet publish precedente.

  2. Immettere il comando seguente nel terminale:

    mgCreate.exe `
       "{tenantId}" `
       "{clientId}" `
       "{clientSecret}" `
       "{groupID}" `
       "{displayName}"
    

I comandi precedenti usano le informazioni seguenti:

  • {tenantId}: sostituire con il proprio ID tenant
  • {clientId}: sostituire con l'ID client dell'entità servizio
  • {clientSecret}: sostituire con il segreto client dell'entità servizio
  • {groupID}: sostituire con l'ID del nuovo gruppo di gestione
  • {displayName}: sostituire con il nome descrittivo del nuovo gruppo di gestione

Il risultato è un nuovo gruppo di gestione nel gruppo di gestione radice.

Pulire le risorse

  • Eliminare il nuovo gruppo di gestione tramite il portale.

  • Per rimuovere l'applicazione console .NET Core e i pacchetti installati, eliminare la cartella di progetto mgCreate.

Passaggi successivi

In questo argomento di avvio rapido è stato creato un gruppo di gestione per organizzare la gerarchia delle risorse. Il gruppo di gestione può contenere sottoscrizioni o altri gruppi di gestione.

Per altre informazioni sui gruppi di gestione e su come gestire la gerarchia delle risorse, continuare con:

Gestire le risorse con i gruppi di gestione