Управление разрешениями с помощью программы командной строки

Azure DevOps Services | Azure DevOps Server 2020

Разрешения предоставляют доступ для выполнения определенного действия с конкретным ресурсом, как описано в разделе Начало работы с разрешениями, доступом и группами безопасности. Управление большинством разрешений осуществляется через веб-портал. Тем не менее можно управлять разрешениями с помощью средств командной строки или REST API.

Azure DevOps предоставляет несколько разрешений по умолчанию членам групп безопасности по умолчанию. С помощью команд можно добавлять разрешения и управлять ими на более детальном уровне az devops security permission . Используйте следующие команды, чтобы:

  • Просмотр разрешений, связанных с пространствами имен безопасности
  • Просмотр сведений об этих разрешениях
  • Обновление или сброс разрешений

Предварительные требования

  • для управления маркерами и пространствами имен необходимо быть членом группы безопасности "администраторы коллекции Project". Дополнительные сведения о маркерах см. в разделе пространство имен безопасности и Справочник по разрешениям.
  • необходимо установить расширение CLI Azure DevOps, как описано в разделе приступая к работе с Azure DevOps CLI.
  • войдите в Azure DevOps с помощью az login .
  • Для примеров, приведенных в этой статье, настройте организацию по умолчанию следующим образом:
    • для Azure DevOps Services: .
    • для Azure DevOps Server:

Команды разрешений безопасности

Введите следующую команду, чтобы вывести список всех доступных команд.

az devops security permission -h

Дополнительные сведения о концепциях, связанных с разрешениями безопасности, см. в документации по безопасности REST API

Команда Описание
az devops security permission list Вывод списка маркеров для указанного пользователя или группы и пространства имен.
az devops security permission namespace list Вывод списка всех доступных пространств имен для Организации.
az devops security permission namespace show Отображение сведений о разрешениях, доступных в каждом пространстве имен.
az devops security permission reset Сброс разрешения для указанных битов разрешений.
az devops security permission reset-all Удалите все разрешения этого маркера для пользователя или группы.
az devops security permission show Отображение разрешений для указанного маркера, пространства имен и пользователя или группы.
az devops security permission update Назначение разрешения или запрета указанному пользователю или группе.

Следующие параметры являются необязательными для всех команд и не перечислены в примерах, приведенных в этой статье.

  • Обнаружение: автоматическое определение организации. Допустимые значения: false, true. Значение по умолчанию — true.
  • org: Azure DevOps URL-адрес организации. Вы можете настроить организацию по умолчанию с помощью команды AZ devops configure-d Organization = ORG_URL. Требуется, если не настроено по умолчанию или выбрано с помощью конфигурации Git. Пример: --org https://dev.azure.com/MyOrganizationName/ .

Вывод списка пространств имен безопасности

Список всех доступных пространств имен для организации можно получить с помощью команды AZ devops Security Permission Namespace List . Описание всех пространств имен безопасности и связанных с ними маркеров см. в разделе пространство имен безопасности и Справочник по разрешениям.

az devops security permission namespace list [--local-only]

Параметры

  • только локальная: необязательный. Если значение — true, извлекаются только локальные пространства имен безопасности.

    В пространствах имен безопасности данные могут быть в одной микрослужбе, но по-прежнему видны в других микрослужбах. Если данные пространства имен безопасности заглавных в микрослужбе X, то говорят, что они являются локальными для этой микрослужбы. В противном случае он считается удаленным.

Введите, az devops security permission namespace list чтобы вывести список пространств имен, определенных для вашей организации или локального сервера.

Примечание

Некоторые из перечисленных пространств имен являются устаревшими и не должны использоваться. Список устаревших пространств имен см. в справочнике по пространству имен, нерекомендуемых и пространствах имен только для чтения.

az devops security permission namespace list --org https://dev.azure.com/OrganizationName --output table
 
Id                                    Name
------------------------------------  ------------------------------
c788c23e-1b46-4162-8f5e-d7585343b5de  ReleaseManagement
58450c49-b02d-465a-ab12-59ae512d6531  Analytics
d34d3680-dfe5-4cc6-a949-7d9c68f73cba  AnalyticsViews
62a7ad6b-8b8d-426b-ba10-76a7090e94d5  PipelineCachePrivileges
7c7d32f7-0e86-4cd6-892e-b35dbba870bd  ReleaseManagement
a6cc6381-a1ca-4b36-b3c1-4e65211e82b6  AuditLog
5a27515b-ccd7-42c9-84f1-54c998f03866  Identity
445d2788-c5fb-4132-bbef-09c4045ad93f  WorkItemTrackingAdministration
101eae8c-1709-47f9-b228-0e476c35b3ba  DistributedTask
71356614-aad7-4757-8f2c-0fb3bff6f680  WorkItemQueryFolders
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87  Git Repositories
3c15a8b7-af1a-45c2-aa97-2cb97078332e  VersionControlItems2
2bf24a2b-70ba-43d3-ad97-3d9e1f75622f  EventSubscriber
5a6cd233-6615-414d-9393-48dbb252bd23  WorkItemTrackingProvision
49b48001-ca20-4adc-8111-5b60c903a50c  ServiceEndpoints
cb594ebe-87dd-4fc9-ac2c-6a10a4c92046  ServiceHooks
bc295513-b1a2-4663-8d1a-7017fd760d18  Chat
3e65f728-f8bc-4ecd-8764-7e378b19bfa7  Collection
cb4d56d2-e84b-457e-8845-81320a133fbb  Proxy
bed337f8-e5f3-4fb9-80da-81e17d06e7a8  Plan
2dab47f9-bd70-49ed-9bd5-8eb051e59c02  Process
11238e09-49f2-40c7-94d0-8f0307204ce4  AccountAdminSecurity
b7e84409-6553-448a-bbb2-af228e07cbeb  Library
83d4c2e6-e57d-4d6e-892b-b87222b7ad20  Environment
52d39943-cb85-4d7f-8fa8-c6baac873819  Project
58b176e7-3411-457a-89d0-c6d0ccb3c52b  EventSubscription
83e28ad4-2d72-4ceb-97b0-c7726d5502c3  CSS
9e4894c3-ff9a-4eac-8a85-ce11cafdc6f1  TeamLabSecurity
fc5b7b85-5d6b-41eb-8534-e128cb10eb67  ProjectAnalysisLanguageMetrics
bb50f182-8e5e-40b8-bc21-e8752a1e7ae2  Tagging
f6a4de49-dbe2-4704-86dc-f8ec1a294436  MetaTask
bf7bfa03-b2b7-47db-8113-fa2e002cc5b1  Iteration
fa557b48-b5bf-458a-bb2b-1b680426fe8b  Favorites
4ae0db5d-8437-4ee8-a18b-1f6fb38bd34c  Registry
c2ee56c9-e8fa-4cdd-9d48-2c44f697a58e  Graph
dc02bf3d-cd48-46c3-8a41-345094ecc94b  ViewActivityPaneSecurity
2a887f97-db68-4b7c-9ae3-5cebd7add999  Job
73e71c45-d483-40d5-bdba-62fd076f7f87  WorkItemTracking
4a9e8381-289a-4dfd-8460-69028eaa93b3  StrongBox
1f4179b3-6bac-4d01-b421-71ea09171400  Server
e06e1c24-e93d-4e4a-908a-7d951187b483  TestManagement
6ec4592e-048c-434e-8e6c-8671753a8418  SettingEntries
302acaca-b667-436d-a946-87133492041c  BuildAdministration
2725d2bc-7520-4af4-b0e3-8d876494731f  Location
83abde3a-4593-424e-b45f-9898af99034d  UtilizationPermissions
c0e7a722-1cad-4ae6-b340-a8467501e7ce  WorkItemsHub
0582eb05-c896-449a-b933-aa3d99e121d6  WebPlatform
66312704-deb5-43f9-b51c-ab4ff5e351c3  VersionControlPrivileges
93bafc04-9075-403a-9367-b7164eac6b5c  Workspaces
093cbb02-722b-4ad6-9f88-bc452043fa63  CrossProjectWidgetView
35e35e8e-686d-4b01-aff6-c369d6e36ce0  WorkItemTrackingConfiguration
0d140cae-8ac1-4f48-b6d1-c93ce0301a12  Discussion Threads
5ab15bc8-4ea1-d0f3-8344-cab8fe976877  BoardsExternalIntegration
7ffa7cf4-317c-4fea-8f1d-cfda50cfa956  DataProvider
81c27cc8-7a9f-48ee-b63f-df1e1d0412dd  Social
9a82c708-bfbe-4f31-984c-e860c2196781  Security
a60e0d84-c2f8-48e4-9c0c-f32da48d5fd1  IdentityPicker
84cc1aa4-15bc-423d-90d9-f97c450fc729  ServicingOrchestration
33344d9c-fc72-4d6f-aba5-fa317101a7e9  Build
8adf73b7-389a-4276-b638-fe1653f7efc7  DashboardsPrivileges
a39371cf-0841-4c16-bbd3-276e341bc052  VersionControlItems

Пример: перечисление локальных пространств имен безопасности

Следующая команда выводит только локальные пространства имен безопасности для Организации и показывает результаты в формате таблицы.

az devops security permission namespace list --local-only --output table

Id                                    Name
------------------------------------  ------------------------------
71356614-aad7-4757-8f2c-0fb3bff6f680  WorkItemQueryFolders
fa557b48-b5bf-458a-bb2b-1b680426fe8b  Favorites
4ae0db5d-8437-4ee8-a18b-1f6fb38bd34c  Registry
c2ee56c9-e8fa-4cdd-9d48-2c44f697a58e  Graph
dc02bf3d-cd48-46c3-8a41-345094ecc94b  ViewActivityPaneSecurity
2a887f97-db68-4b7c-9ae3-5cebd7add999  Job
73e71c45-d483-40d5-bdba-62fd076f7f87  WorkItemTracking
4a9e8381-289a-4dfd-8460-69028eaa93b3  StrongBox
1f4179b3-6bac-4d01-b421-71ea09171400  Server
e06e1c24-e93d-4e4a-908a-7d951187b483  TestManagement
6ec4592e-048c-434e-8e6c-8671753a8418  SettingEntries
302acaca-b667-436d-a946-87133492041c  BuildAdministration
2725d2bc-7520-4af4-b0e3-8d876494731f  Location
83abde3a-4593-424e-b45f-9898af99034d  UtilizationPermissions
c0e7a722-1cad-4ae6-b340-a8467501e7ce  WorkItemsHub
0582eb05-c896-449a-b933-aa3d99e121d6  WebPlatform
66312704-deb5-43f9-b51c-ab4ff5e351c3  VersionControlPrivileges
93bafc04-9075-403a-9367-b7164eac6b5c  Workspaces
093cbb02-722b-4ad6-9f88-bc452043fa63  CrossProjectWidgetView
35e35e8e-686d-4b01-aff6-c369d6e36ce0  WorkItemTrackingConfiguration
0d140cae-8ac1-4f48-b6d1-c93ce0301a12  Discussion Threads
5ab15bc8-4ea1-d0f3-8344-cab8fe976877  BoardsExternalIntegration
7ffa7cf4-317c-4fea-8f1d-cfda50cfa956  DataProvider
81c27cc8-7a9f-48ee-b63f-df1e1d0412dd  Social
9a82c708-bfbe-4f31-984c-e860c2196781  Security
a60e0d84-c2f8-48e4-9c0c-f32da48d5fd1  IdentityPicker
84cc1aa4-15bc-423d-90d9-f97c450fc729  ServicingOrchestration
33344d9c-fc72-4d6f-aba5-fa317101a7e9  Build
8adf73b7-389a-4276-b638-fe1653f7efc7  DashboardsPrivileges
445d2788-c5fb-4132-bbef-09c4045ad93f  WorkItemTrackingAdministration
101eae8c-1709-47f9-b228-0e476c35b3ba  DistributedTask
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87  Git Repositories
a39371cf-0841-4c16-bbd3-276e341bc052  VersionControlItems
3c15a8b7-af1a-45c2-aa97-2cb97078332e  VersionControlItems2
2bf24a2b-70ba-43d3-ad97-3d9e1f75622f  EventSubscriber
5a6cd233-6615-414d-9393-48dbb252bd23  WorkItemTrackingProvision
49b48001-ca20-4adc-8111-5b60c903a50c  ServiceEndpoints
cb594ebe-87dd-4fc9-ac2c-6a10a4c92046  ServiceHooks
bc295513-b1a2-4663-8d1a-7017fd760d18  Chat
3e65f728-f8bc-4ecd-8764-7e378b19bfa7  Collection
cb4d56d2-e84b-457e-8845-81320a133fbb  Proxy
bed337f8-e5f3-4fb9-80da-81e17d06e7a8  Plan
2dab47f9-bd70-49ed-9bd5-8eb051e59c02  Process
11238e09-49f2-40c7-94d0-8f0307204ce4  AccountAdminSecurity
b7e84409-6553-448a-bbb2-af228e07cbeb  Library
83d4c2e6-e57d-4d6e-892b-b87222b7ad20  Environment
52d39943-cb85-4d7f-8fa8-c6baac873819  Project
58b176e7-3411-457a-89d0-c6d0ccb3c52b  EventSubscription
83e28ad4-2d72-4ceb-97b0-c7726d5502c3  CSS
9e4894c3-ff9a-4eac-8a85-ce11cafdc6f1  TeamLabSecurity
fc5b7b85-5d6b-41eb-8534-e128cb10eb67  ProjectAnalysisLanguageMetrics
bb50f182-8e5e-40b8-bc21-e8752a1e7ae2  Tagging
f6a4de49-dbe2-4704-86dc-f8ec1a294436  MetaTask
bf7bfa03-b2b7-47db-8113-fa2e002cc5b1  Iteration

Вывод списка маркеров для пространства имен безопасности

Вы можете вывести список токенов для указанного пространства имен и пользователя или группы с помощью команды AZ devops Security Permission List .

az devops security permission list --id
                                   --subject
                                   [--recurse]
                                   [--token]

Параметры

    • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности. Чтобы получить идентификатор, используйте команду AZ devops Security Permission Namespace List .
  • subject: обязательно. Адрес электронной почты или дескриптор группы пользователя.
  • рекурсия: необязательный. Если значение равно true, а пространство имен является иерархическим, этот параметр возвращает дочерние списки ACL токенов.
  • Token: необязательный. Укажите отдельный маркер безопасности.

Пример

Следующая команда перечисляет токены в табличном формате для указанного пространства имен, которое соответствует аналитике и связывается с пользователем contoso@contoso.com .

az devops security permission list --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --output table

Token                                   Effective Allow    Effective Deny
--------------------------------------  -----------------  ----------------
$/0611925a-b287-4b0b-90a1-90f1a96e9f1f  0                  0
$/087572e2-5569-49ec-af80-d3caf22b446c  0                  0
$/131271e0-a6ad-49ba-837e-2d475ab2b169  0                  0
$/14c92f9d-9fff-48ec-8171-9d1106056ab3  0                  0
$/1965830d-5fc4-4412-8c71-a1c39c939a42  0                  0
$/4b80d122-a5ca-46ec-ba28-e03d37e53404  0                  0
$/4fa8e9de-e86b-4986-ac75-f421881a7664  0                  0
$/5417a1c3-4b04-44d1-aead-50774b9dbf5f  0                  0
$/56af920d-393b-4236-9a07-24439ccaa85c  0                  0
$/69265579-a1e0-4a30-a141-ac9e3bb82572  0                  0

Отображение сведений о пространстве имен

Сведения о разрешениях, доступных в каждом пространстве имен, можно получить с помощью команды AZ devops Security Permission пространство_имен .

az devops security permission namespace show --namespace-id <NAMESPACE_ID>

Параметры

  • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности.

Пример

Следующая команда отображает сведения о доступных разрешениях для указанного идентификатора пространства имен и возвращает результаты в формате таблицы.

az devops security permission namespace show --namespace-id 58450c49-b02d-465a-ab12-59ae512d6531 --output table

Name                      Permission Description                                    Permission Bit
------------------------  --------------------------------------------------------  ----------------
Read                      View analytics                                            1
Administer                Manage analytics permissions                              2
Stage                     Push the data to staging area                             4
ExecuteUnrestrictedQuery  Execute query without any restrictions on the query form  8
ReadEuii                  Read EUII data                                            16

Сброс разрешений

Вы можете сбросить биты разрешений для указанного пользователя или группы с помощью команды AZ devops Security Permission rereset .

az devops security permission reset --id
                                    --permission-bit
                                    --subject
                                    --token

Параметры

  • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности.
  • бит разрешения: требуется. Бит разрешений или добавление битов разрешений, которые необходимо сбросить для заданного пользователя или группы и маркера.
  • subject: обязательно. Адрес электронной почты или дескриптор группы пользователя.
  • токен: обязательный. Отдельный маркер безопасности.

Пример

Следующая команда сбрасывает бит разрешений маркера 8 для пользователя contoso@contoso.com в указанном пространстве имен и возвращает результаты в формате таблицы.

az devops security permission reset --id 58450c49-b02d-465a-ab12-59ae512d6531 --permission-bit 8 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Not set

Сброс всех разрешений

Вы можете удалить все разрешения маркера для пользователя или группы с помощью команды AZ devops Security Permission rereset-ALL .

az devops security permission reset-all --id
                                        --subject
                                        --token
                                        [--yes]

Параметры

  • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности.
  • subject: обязательно. Адрес электронной почты или дескриптор группы пользователя.
  • токен: обязательный. Отдельный маркер безопасности.
  • Да: необязательно. Не запрашивать подтверждение.

Пример

Следующая команда удаляет все разрешения для пользователя contoso@contoso.com в указанном пространстве имен, не требуя подтверждения. Результат отображается в интерфейсе командной строки.

az devops security permission reset-all --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --yes --output table

Result
--------
True

Просмотр разрешений

Разрешения для указанного маркера, пространства имен и пользователя или группы можно отобразить с помощью команды AZ devops Security Permission-показывать .

az devops security permission show --id
                                   --subject
                                   --token

Параметры

  • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности.
  • subject: обязательно. Адрес электронной почты или дескриптор группы пользователя.
  • токен: обязательный. Отдельный маркер безопасности.

Пример

Следующая команда отображает сведения о разрешении маркера для пользователя contoso@contoso.com в указанном пространстве имен и возвращает результаты в формате таблицы.

az devops security permission show --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 0611925a-b287-4b0b-90a1-90f1a96e9f1f --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
Read                      1      View analytics                                            Not set
Administer                2      Manage analytics permissions                              Allow
Stage                     4      Push the data to staging area                             Not set
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Not set
ReadEuii                  16     Read EUII data                                            Deny

Обновление разрешений

Вы можете назначить разрешения на разрешение илиотказ для указанного пользователя или группы с помощью команды AZ devops Security Permissions Update .

az devops security permission update --id
                                     --subject
                                     --token
                                     [--allow-bit]
                                     [--deny-bit]
                                     [--merge {false, true}]

Параметры

  • ID или Namespace-ID: обязательный. Идентификатор пространства имен безопасности.
  • subject: обязательно. Адрес электронной почты или дескриптор группы пользователя.
  • токен: обязательный. Отдельный маркер безопасности.
  • allow-bit: необязательный. Разрешение бита или добавление битов. Требуется, если отсутствует --Deny-bit .
  • Deny-bit: необязательный. Запрет битов или добавление битов. Обязателен, если отсутствует --allow-bit .
  • Слияние: необязательно. Если задано, существующая запись управления доступом (ACE) включает и запрещает слияние с разрешающими и запрещающими входящими записями ACE. Если не задано, существующий элемент управления доступом будет сброшен. Допустимые значения: false или true.

Пример

Следующая команда обновляет разрешения для ексекутеунрестриктедкуери (бит 8) для пользователя в указанном пространстве имен и отображает результаты в формате таблицы.

az devops security permission update --allow-bit 8 --id 58450c49-b02d-465a-ab12-59ae512d6531 --subject contoso@contoso.com --token 56af920d-393b-4236-9a07-24439ccaa85c --output table

Name                      Bit    Permission Description                                    Permission Value
------------------------  -----  --------------------------------------------------------  ------------------
ExecuteUnrestrictedQuery  8      Execute query without any restrictions on the query form  Allow

Пространства имен безопасности и их идентификаторы

Azure DevOps см. в разделе пространство имен безопасности и Справочник по разрешениям.