Краткое руководство. Создание группы управления с помощью .NET Core
Группы управления являются контейнерами для удобства управления доступом, политикой и соответствием в нескольких подписках. Создание таких контейнеров позволяет построить эффективную и экономную иерархию, которую можно использовать с политикой Azure и элементами управления доступом на основе ролей Azure. Дополнительные сведения о группах управления см. в статье Упорядочение ресурсов с помощью групп управления Azure.
Создание первой группы управления в каталоге может занять до 15 минут. Существуют процессы, выполняемые в первый раз при настройке службы групп управления в Azure для вашего каталога. По завершении процесса вы получите уведомление. См. сведения о начальной настройке групп управления.
Необходимые компоненты
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Субъект-служба Azure, включая clientId и clientSecret. Если у вас нет субъекта-службы, который можно использовать для Политики Azure, или вы хотите создать новый субъект-службу, см. статью о библиотеках управления Azure для аутентификации .NET. Пропустите этот шаг, чтобы установить пакеты .NET Core, так как мы выполним это действие на следующих шагах.
Любой пользователь Azure AD в арендаторе может создать группу управления без разрешения на запись для группы управления, назначенного этому пользователю, если защита иерархии не включена. Эта новая группа управления становится дочерней по отношению к корневой группе управления или группе управления по умолчанию, а ее создателю назначается роль "Владелец". Служба группы управления обеспечивает эту возможность, чтобы назначения ролей не требовались на корневом уровне. У пользователей нет доступа к корневой группе управления при ее создании. Чтобы избежать трудностей при поиске глобальных администраторов Azure AD для настройки работы с группами управления, мы разрешаем создавать исходные группы управления на корневом уровне.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Настройка приложения
Чтобы управлять группами управления из .NET Core, создайте новое консольное приложение и установите нужные пакеты.
Убедитесь, что установлена последняя версия .NET Core (не ниже 3.1.8). Если она еще не установлена, скачайте ее на сайте dotnet.microsoft.com.
Инициализируйте новое консольное приложение .NET Core с именем mgCreate:
dotnet new console --name "mgCreate"
Перейдите к папке нового проекта и установите нужные пакеты для Политики 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
Замените файл
program.cs
по умолчанию следующим кодом и сохраните обновленный файл: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); } } } }
Скомпилируйте и опубликуйте консольное приложение
mgCreate
:dotnet build dotnet publish -o {run-folder}
Создание группы управления
В рамках этого краткого руководства вы создадите новую группу управления в корневой группе управления.
Измените каталоги на папку
{run-folder}
, определенную с помощью предыдущей командыdotnet publish
.Введите следующую команду в окне терминала.
mgCreate.exe ` "{tenantId}" ` "{clientId}" ` "{clientSecret}" ` "{groupID}" ` "{displayName}"
В указанных выше командах используются следующие сведения:
{tenantId}
— замените своим идентификатором клиента.{clientId}
— замените идентификатором клиента своего субъекта-службы.{clientSecret}
— замените секретом клиента своего субъекта-службы.{groupID}
— замените это значение идентификатором новой группы управления.{displayName}
— замените это значение понятным именем для новой группы управления.
В результате выполнения в корневой группе управления появится новая группа управления.
Очистка ресурсов
Удалите новую группу управления с помощью портала.
Если вы хотите удалить консольное приложение .NET Core и установленные пакеты, удалите папку проекта
mgCreate
.
Следующие шаги
В этом кратком руководстве показано, как создать группу управления для организации иерархии ресурсов. Группа управления может содержать подписки и другие группы управления.
Чтобы узнать больше о группах управления и управлении иерархией ресурсов, см. следующее руководство: