我正在为 Azure DevOps 创建自动化。我想遵循最小特权原则。我只需要授予在组织中的所有项目中创建存储库的权限。我知道如何在项目级别执行此操作,但对于拥有许多项目的组织来说,在项目级别分配权限将非常耗时。
您知道吗?您能给我一个如何授予在整个组织级别创建存储库的权限的示例吗?
您可以尝试使用Azure DevOps CLI“az devops security permission”来分配权限:
转到 组织设置 > 权限页面创建新组(例如,
Create Repos
)。创建完成后,打开它,您可以从浏览器的地址栏看到该组的组描述符(subjectDescriptor
)。复制并记住描述符的值(vssgp.xxxx
),它将在后续的 Azure DevOps CLI 中使用。
运行命令“az devops security Permission Namespace List”即可获取权限项“创建存储库
”的
namespaceId
和
bit
。一般来说,这两个属性的值是固定的。所有与存储库相关的权限项通常具有相同的命名空间,并且每个项都有自己的位。
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87
256
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
”群组成员的用户默认也会自动继承此权限。