Guia de início rápido: criar um grupo de gerenciamento com o .NET Core

Os grupos de gerenciamento são contêineres que ajudam a gerenciar o acesso, a política e a conformidade em várias assinaturas. Crie esses contêineres para criar uma hierarquia eficaz e eficiente que possa ser usada com a Política do Azure e os Controles de Acesso Baseados em Função do Azure. Para obter mais informações sobre grupos de gerenciamento, consulte Organizar seus recursos com grupos de gerenciamento do Azure.

O primeiro grupo de gerenciamento criado no diretório pode levar até 15 minutos para ser concluído. Há processos que são executados pela primeira vez para configurar o serviço de grupos de gerenciamento no Azure para seu diretório. Você recebe uma notificação quando o processo é concluído. Para obter mais informações, consulte Configuração inicial de grupos de gerenciamento.

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

  • Uma entidade de serviço do Azure, incluindo clientId e clientSecret. Se você não tiver uma entidade de serviço para uso com a Política do Azure ou quiser criar uma nova, consulte Bibliotecas de gerenciamento do Azure para autenticação .NET. Ignore a etapa para instalar os pacotes do .NET Core, pois faremos isso nas próximas etapas.

  • Qualquer usuário do Azure AD no locatário pode criar um grupo de gerenciamento sem a permissão de gravação do grupo de gerenciamento atribuída a esse usuário se a proteção de hierarquia não estiver habilitada. Esse novo grupo de gerenciamento se torna filho do Grupo de Gerenciamento Raiz ou do grupo de gerenciamento padrão e o criador recebe uma atribuição de função "Proprietário". O serviço de grupo de gerenciamento permite essa capacidade para que as atribuições de função não sejam necessárias no nível raiz. Nenhum usuário tem acesso ao Grupo de Gerenciamento Raiz quando ele é criado. Para evitar o obstáculo de encontrar os Administradores Globais do Azure AD para começar a usar grupos de gerenciamento, permitimos a criação dos grupos de gerenciamento iniciais no nível raiz.

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

Configuração da aplicação

Para habilitar o .NET Core para gerenciar grupos de gerenciamento, crie um novo aplicativo de console e instale os pacotes necessários.

  1. Verifique se o .NET Core mais recente está instalado (pelo menos 3.1.8). Se ainda não estiver instalado, transfira-o para dotnet.microsoft.com.

  2. Inicialize um novo aplicativo de console do .NET Core chamado "mgCreate":

    dotnet new console --name "mgCreate"
    
  3. Altere os diretórios para a nova pasta do projeto e instale os pacotes necessários para a Política do 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. Substitua o padrão program.cs pelo código a seguir e salve o arquivo atualizado:

    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. Crie e publique o aplicativo de mgCreate console:

    dotnet build
    dotnet publish -o {run-folder}
    

Criar o grupo de gerenciamento

Neste início rápido, você cria um novo grupo de gerenciamento no grupo de gerenciamento raiz.

  1. Altere os diretórios para o {run-folder} que você definiu com o comando anterior dotnet publish .

  2. Digite o seguinte comando no terminal:

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

Os comandos anteriores utilizam as seguintes informações:

  • {tenantId} - Substitua pelo seu ID de inquilino
  • {clientId} - Substitua pelo ID do cliente da sua entidade de serviço
  • {clientSecret} - Substitua pelo segredo do cliente do seu principal de serviço
  • {groupID} - Substitua pelo ID do seu novo grupo de gestão
  • {displayName} - Substitua pelo nome amigável para o seu novo grupo de gestão

O resultado é um novo grupo de gerenciamento no grupo de gerenciamento raiz.

Clean up resources (Limpar recursos)

  • Exclua o novo grupo de gerenciamento por meio do portal.

  • Se desejar remover o aplicativo de console .NET Core e os pacotes instalados, exclua a pasta do mgCreate projeto.

Próximos passos

Neste guia de início rápido, você criou um grupo de gerenciamento para organizar sua hierarquia de recursos. O grupo de gerenciamento pode conter assinaturas ou outros grupos de gerenciamento.

Para saber mais sobre grupos de gerenciamento e como gerenciar sua hierarquia de recursos, continue: