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

如何为System.AccessToken授予仪表板管理权限以通过Azure DevOps REST API更新部件

Azure DevOps构建管道调用Widgets - Update API权限问题解决

需要授予的权限

  • 必须为 <project-name> Build Service (<org-name>) 服务主体授予仪表板资源的Manage权限,这是Widgets - Update端点的必填权限(Widgets - Get仅需读取权限,因此之前能正常调用)

权限配置步骤

网页界面配置

  1. 打开目标项目,点击左下角项目设置(齿轮图标)
  2. 在左侧导航栏依次进入仪表板 → 权限
  3. 在权限列表中找到<project-name> Build Service (<org-name>)账户,若未显示则点击右上角「添加用户/组」搜索添加
  4. 找到Manage dashboards权限项,勾选「允许」
  5. 保存设置

自动化配置(PowerShell调用REST API)

若需批量或自动化配置,可调用Dashboards - Update Dashboard Permissions端点,示例代码:

$orgUrl = "https://dev.azure.com/你的组织名"
$projectName = "你的项目名"
$dashboardId = "目标仪表板ID"
$token = "$(System.AccessToken)"

$headers = @{
    Authorization = "Bearer $token"
    "Content-Type" = "application/json"
}

# 替换为构建服务主体的descriptor,可通过Identity API获取
$buildServiceDescriptor = "Microsoft.TeamFoundation.Identity;S-1-9-1551374245-..."

$body = @{
    accessControlEntries = @(
        @{
            descriptor = $buildServiceDescriptor
            allow = 2 # 对应Manage权限的权限值
            deny = 0
            merge = $true
        }
    )
} | ConvertTo-Json -Depth 10

Invoke-RestMethod -Uri "$orgUrl/$projectName/_apis/dashboard/dashboards/$dashboardId/permissions?api-version=7.1-preview.3" -Method Patch -Headers $headers -Body $body

验证

重新运行构建管道,检查Widgets - Update端点调用是否正常;也可手动调用该端点测试权限是否生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 18:07:14