0

我通过 terraform Azure DevOps 模块创建服务连接。这很好用,但它们主要是我自己可以访问的,就像我手动创建的一样。

我的团队成员也应该能够访问和修改这些服务连接,并且不同团队的成员应该能够查看服务连接。不幸的是,我还没有找到如何通过 azure cli 为服务连接分配特定权限的方法。

到目前为止我所做的:我发现很难理解文档(例如https://docs.microsoft.com/en-us/cli/azure/ext/azure-devops/devops/security/permission?view =azure-cli-latest#ext-azure-devops-az-devops-security-permission-update):

  • 我已经生成了“命名空间”列表az devops security permission namespace list --organization=https://dev.azure.com/myname。这给了我
  {
    "actions": [
      {
        "bit": 1,
        "displayName": "Use Service Connection",
        "name": "Use",
        "namespaceId": "x-x-x-x"
      },
      {
        "bit": 2,
        "displayName": "Administer Service Connection",
        "name": "Administer",
        "namespaceId": "x-x-x-x"
      },
      {
        "bit": 4,
        "displayName": "Create Service Connection",
        "name": "Create",
        "namespaceId": "x-x-x-x"
      },
      {
        "bit": 8,
        "displayName": "View Authorization",
        "name": "ViewAuthorization",
        "namespaceId": "x-x-x-x"
      },
      {
        "bit": 16,
        "displayName": "View Service Connection",
        "name": "ViewEndpoint",
        "namespaceId": "x-x-x-x"
      }
    ],
    "dataspaceCategory": "Default",
    "displayName": "ServiceEndpoints",
    "elementLength": -1,
    "extensionType": null,
    "isRemotable": false,
    "name": "ServiceEndpoints",
    "namespaceId": "x-x-x-x",
    "readPermission": 0,
    "separatorValue": "/",
    "structureValue": 1,
    "systemBitMask": 0,
    "useTokenTranslator": true,
    "writePermission": 2
  },
  • 我创建了一个组az devops security group create --name 'Some group name' --description 'Something to describe this group';这有效,尽管它不是 AAD 组。
  • 我尝试使用 为我的同事添加权限az devops security permission update --organization=https://dev.azure.com/myname --id="x-x-x-x" --subject="my.colleague@example.org",但它要求我提供令牌作为参数。我在文档中找不到任何关于如何生成令牌的信息,我也不知道它是否真的有帮助,或者这个命令是否适合实现我的目标。

有什么提示吗?

4

1 回答 1

0

令牌是代表 Azure DevOps 中资源的任意字符串。令牌格式因资源类型而异,但层次结构和分隔符在所有令牌之间是通用的。

关于令牌,可以参考权限管理的安全令牌,这里列出了不同命名空间的令牌示例

另一个供您参考的示例(参考jessehouwing 的博客):

az login

az extension add --name "azure-devops"



# Find the group identifier of the group you want to set permissions for



$org = "gdbc2019-westeurope"



# There is a weird edge case here when an Azure DevOps Organization has a Team Project with the same name as the org.

# In that case you must also add a query to filter on the right domain property `?@.domain == '?'`  



$subject = az devops security group list `

    --org "https://dev.azure.com/$org/" `

    --scope organization `

    --subject-types vssgp `

    --query "graphGroups[?@.principalName == '[$org]\Project Collection Administrators'].descriptor | [0]"



$namespaceId = az devops security permission namespace list `

    --org "https://dev.azure.com/$org/" `

    --query "[?@.name == 'Git Repositories'].namespaceId | [0]"



$bit = az devops security permission namespace show `

    --namespace-id $namespaceId `

    --org "https://dev.azure.com/$org/" `

    --query "[0].actions[?@.name == 'PullRequestBypassPolicy'].bit | [0]"



az devops security permission update `

    --id $namespaceId `

    --subject $subject `

    --token "repoV2/" `

    --allow-bit $bit `

    --merge true `

    --org https://dev.azure.com/$org/

此外,您还可以查看类似问题中的步骤:Update permissions for Azure DevOps group for EventSubscription through Azure CLI?

于 2020-05-28T10:36:44.563 回答