首页 > 解决方案 > 通过 Azure CLI 为 EventSubscription 更新 Azure DevOps 组的权限?

问题描述

我一直在通过 Azure CLI(az devops 版本 0.11.0)向自定义 Azure DevOps 服务组添加权限,并且我通常能够执行以下操作:

  1. az devops security permission namespace list, 查找特定命名空间的 namespaceId (如 EventSubscription)
  2. 获取项目管理员的描述符
  3. az devops security permission list --id $namespaceId --subject $projectAdmin.descriptor...
  4. 在 ACES 字典中找到一个允许位,找到相应的令牌
  5. az devops security permission update...使用新令牌

但是,当我为 EventSubscription 命名空间运行安全权限列表时,它会返回项目管理员组的空 JSON,因此我找不到令牌。我已经尝试过“$SUBSCRIPTION”,因为它看起来像 TFS 2010 用户使用的,但这不起作用。

问题:

  1. 如何在 EventSubscription 命名空间的项目管理员组中列出令牌?我试图看看 tfssecurity 是否会拉出任何东西,但没有奏效。还尝试使用 Fiddler 来查看它是否会找到令牌,但也没有。无法在 UI 中使用 Fiddler。

  2. 或者我应该使用什么令牌让 Azure DevOps 更新组的 EventSubscription 权限?

标签: azure-devopsazure-cli

解决方案


我用EventSubscription命名空间 id 和project admins group描述符作为subject参数进行了测试,得到了和你一样的结果。

在此处输入图像描述

$env:AZURE_DEVOPS_EXT_PAT = 'ckdhd6wuma5uw2h35dv37pgdum5eyjviqneineixxxxx'

$output = az devops security permission namespace list | ConvertTo-Json -Depth 100

#get descriptor
$output2 = az devops security group list --scope project | ConvertTo-Json -Depth 100

#eventSubscription namespaceId: 58b176e7-3411-457a-89d0-c6xxx/ Project namespaceId:52d39943-cb85-4d7f-8fa8-c6xxx
$output3 = az devops security permission list --namespace-id 58b176e7-3411-457a-89d0-c6xxxx --subject vssgp.Uy0xLTktMTU1MTM3NDI0NS00MjQ3MDQ2OTMyLTI2ODA1Nzg2MjktMjkxMzgyMjE4MC0yNDQ0MjYxxxxx | ConvertTo-Json -Depth 100

Write-Host $output3

但是当我使用Project命名空间 id 和project admins group描述符进行测试时,我可以正常获取令牌。

在此处输入图像描述

所以我认为这可能是EventSubscription命名空间和project admins group描述符之间的关联问题。可以分享一下UI中对应的操作吗?这将有助于我进一步调查。


推荐阅读