You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph/PowerShell批量创建带通配符权限的自定义目录角色?

如何通过Microsoft Graph或PowerShell自动化创建带通配符权限的自定义Azure AD目录角色

完全可行,你可以通过Microsoft Graph API或PowerShell(基于Microsoft Graph模块)实现自动化,自动筛选并添加匹配通配符的权限,无需手动逐个选择。以下是具体实现方式:

一、使用Microsoft Graph API实现

1. 筛选匹配通配符的权限

首先调用Graph API获取Microsoft Graph的所有权限,再筛选出符合你指定通配符规则的权限:

GET https://graph.microsoft.com/v1.0/roleManagement/directory/permissionGrants?$filter=resourceAppId eq '00000003-0000-0000-c000-000000000000'

注:00000003-0000-0000-c000-000000000000是Microsoft Graph的固定资源ID,所有目录权限都归属这个资源。

从返回结果中,提取permissionResourcePath字段,筛选出匹配microsoft.directory/users/*、microsoft.directory/groups/*、microsoft.directory/applications/*、microsoft.directory/serviceprincipals/*的条目。

2. 创建自定义目录角色

调用创建角色定义的API,将筛选出的权限作为允许的资源动作传入:

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleDefinitions
Content-Type: application/json

{
  "displayName": "自定义核心目录管理员",
  "description": "拥有用户、组、应用、服务主体的全量管理权限",
  "rolePermissions": [
    {
      "allowedResourceActions": [
        "microsoft.directory/users/create",
        "microsoft.directory/users/read",
        "microsoft.directory/groups/update",
        // 此处填入所有筛选出的权限
      ]
    }
  ],
  "isEnabled": true
}

二、使用PowerShell(Microsoft Graph模块)实现

1. 准备工作

确保已安装Microsoft Graph PowerShell模块,并连接到Graph:

# 安装模块(首次使用)
Install-Module Microsoft.Graph -Force

# 连接Graph,需要RoleManagement.ReadWrite.Directory权限
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"

2. 筛选目标权限

执行以下脚本筛选出匹配通配符的权限:

# 获取Microsoft Graph下的所有目录权限
$allGraphPermissions = Get-MgRoleManagementDirectoryPermissionGrant -Filter "resourceAppId eq '00000003-0000-0000-c000-000000000000'" | Select-Object -ExpandProperty PermissionResourcePath

# 筛选符合通配符规则的权限
$targetPermissions = $allGraphPermissions | Where-Object {
    $_ -like "microsoft.directory/users/*" -or
    $_ -like "microsoft.directory/groups/*" -or
    $_ -like "microsoft.directory/applications/*" -or
    $_ -like "microsoft.directory/serviceprincipals/*"
}

3. 创建自定义角色

运行以下命令创建包含目标权限的自定义目录角色:

$roleParams = @{
    DisplayName = "自定义核心目录管理员"
    Description = "覆盖用户、组、应用、服务主体的所有管理权限"
    RolePermissions = @(
        @{
            AllowedResourceActions = $targetPermissions
        }
    )
    IsEnabled = $true
}

New-MgRoleManagementDirectoryRoleDefinition @roleParams

注意事项

  • 操作账号需要具备全局管理员或特权角色管理员权限,否则无法创建自定义目录角色。
  • 筛选时可根据需要调整通配符规则,避免包含不必要的权限(例如某些敏感权限)。
  • 自定义角色创建完成后,可通过New-MgRoleManagementDirectoryRoleAssignment命令为用户或组分配该角色。

内容的提问来源于stack exchange,提问作者Sanam7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:35:49