你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 .NET Core 创建管理组
管理组是一些容器,可以帮助跨多个订阅管理访问权限、策略和符合性。 可以创建这些容器来构建可以与 Azure Policy 和 Azure 基于角色的访问控制配合使用的有效且高效的层次结构。 若要详细了解管理组,请参阅使用 Azure 管理组整理资源。
在目录中创建的第一个管理组可能需要最多 15 分钟才能完成。 一些进程会首次运行以在 Azure 中为目录设置管理组服务。 在进程完成后将显示通知。 有关详细信息,请参阅管理组的初始设置。
先决条件
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
Azure 服务主体,包括 clientId 和 clientSecret 。 如果你没有与 Azure Policy 一起使用的服务主体,或想要创建一个新的服务主体,请参阅用于 .NET 身份验证的 Azure 管理库。 跳到安装 .NET Core 包的步骤,我们将在接下来的步骤中执行此安装。
如果未启用层次结构保护,则租户中的任何 Microsoft Entra ID 用户都可在未分配有管理组写入权限的情况下创建管理组。 这个新的管理组成为根管理组或默认管理组的子级,并且创建者获配“所有者”角色。 管理组服务允许此功能,因此不需要在根级别分配角色。 创建根管理组后,用户无权访问它。 若要开始使用管理组,可以通过该服务在根级别创建初始管理组。 有关更多信息,请参阅每个目录的根管理组。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
应用程序设置
若要使 .NET Core 能够管理管理组,请创建新的控制台应用程序并安装所需的包。
请确保安装最新的 .NET Core(至少为 3.1.8)。 如果尚未安装,请前往 dotnet.microsoft.com 下载。
初始化名为“mgCreate”的新 .NET Core 控制台应用程序:
dotnet new console --name "mgCreate"
将目录切换到新项目文件夹,并安装 Azure Policy 所需的包:
# 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}
创建管理组
在本快速入门中,你将在根管理组中创建一个新的管理组。
将目录更改为使用先前的
dotnet publish
命令定义的{run-folder}
。在终端中输入以下命令:
mgCreate.exe ` "{tenantId}" ` "{clientId}" ` "{clientSecret}" ` "{groupID}" ` "{displayName}"
上述命令使用以下信息:
{tenantId}
- 替换为租户 ID{clientId}
-替换为服务主体的客户端 ID{clientSecret}
-替换为服务主体的客户端机密{groupID}
- 替换为新的管理组的 ID{displayName}
- 替换为新的管理组的易记名称
结果是根管理组中的一个新的管理组。
清理资源
通过门户删除新的资源组。
如果要删除 .NET Core 控制台应用程序和已安装的包,可以删除
mgCreate
项目文件夹。
后续步骤
在本快速入门中,你创建了一个管理组来整理资源层次结构。 管理组可以包含订阅或其他管理组。
要详细了解管理组以及如何管理资源层次结构,请继续执行以下操作: