Как назначить групповые разрешения для Azure DevOps Service Connections через API? - PullRequest
0 голосов
/ 27 мая 2020

Создаю сервисные подключения через модуль terraform Azure DevOps. Это работает хорошо, но в основном они доступны мне, так же как и те, которые я создаю вручную. для просмотра сервисных подключений. К сожалению, я не нашел способа назначить определенные c разрешения для подключения к службе через 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", но он запрашивает у меня токен в качестве параметра. Я не могу найти ничего о том, как сгенерировать токен в документации, и я также не знаю, действительно ли это поможет, или эта команда является правильной для достижения моей цели.

Есть подсказки?

1 Ответ

0 голосов
/ 28 мая 2020

Токены - это произвольные строки, представляющие ресурсы в 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/

Кроме того, вы также можете посмотреть шаги в этом аналогичном вопросе: Обновить разрешения для группы Azure DevOps для подписки на события через Azure CLI?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...