如何分配组织级权限以在 Azure DevOps 中的组织中的所有项目中创建存储库?

问题描述 投票:0回答:1

我正在为 Azure DevOps 创建自动化。我想遵循最小特权原则。我只需要授予在组织中的所有项目中创建存储库的权限。我知道如何在项目级别执行此操作,但对于拥有许多项目的组织来说,在项目级别分配权限将非常耗时。

您知道吗?您能给我一个如何授予在整个组织级别创建存储库的权限的示例吗?

azure-devops azure-devops-rest-api azure-repos
1个回答
2
投票

您可以尝试使用Azure DevOps CLI“az devops security permission”来分配权限:

  1. 转到 组织设置 > 权限页面创建新组(例如,

    Create Repos
    )。创建完成后,打开它,您可以从浏览器的地址栏看到该组的组描述符(
    subjectDescriptor
    )。复制并记住描述符的值(
    vssgp.xxxx
    ),它将在后续的 Azure DevOps CLI 中使用。

    enter image description here

  2. 运行命令“az devops security Permission Namespace List”即可获取权限项“创建存储库

    ”的
    namespaceId
    bit。一般来说,这两个属性的值是固定的。所有与存储库相关的权限项通常具有相同的命名空间,并且每个项都有自己的位。

    • 命名空间Id:
      2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87
    • 位:
      256

    enter image description here

  3. 然后可以运行“

    az devops security permission update
    ”将组织内“Create Repos”组的权限项“创建存储库
    ”全局设置为“
    允许
    ”。

下面是调用 Azure DevOps CLI 的 Bash 脚本示例。

#!/bin/bash

organization="xxxx"
pat="xxxx"
groupDescriptor="vssgp.xxxx"
namespaceId = "2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87"

# Login the Azure DevOps organization.
echo $pat | az devops login --org https://dev.azure.com/$organization

# If you do not know the the 'namespaceId' and 'bit' of the permission item, you can run below command, and then check the values in the output json file.
# az devops security permission namespace list > namespaces.json

# Globally set the permission "Create repository" to "Allow" for the group "Create Repos" within the organization.
az devops security permission update --id $namespaceId --subject $groupDescriptor --token "repoV2" --allow-bit 256

用这种方式:

  • 组织内所有项目中“Create Repos”组的“创建存储库
    ”权限将设置为“
    允许
    ”。
  • 当组织中创建新项目时,该权限将默认自动应用到新项目中。
  • 添加为“
    Create Repos
    ”群组成员的用户默认也会自动继承此权限。

© www.soinside.com 2019 - 2024. All rights reserved.