使用命令行工具管理許可權

Azure DevOps Services

許可權會授與存取權,以在特定資源上執行特定動作,如開始使用許可權、存取權和安全組中所述。 您可以透過入口網站管理大部分的許可權。 不過,您可以使用命令行工具或 REST API 來管理許可權。

Azure DevOps 預設會將一些許可權授與預設安全組的成員。 您可以使用 命令,在更細微的層級 az devops security permission 新增和管理許可權。 使用這些指令來:

  • 檢視與安全性命名空間相關聯的許可權
  • 檢視這些許可權的詳細數據
  • 更新或重設許可權

注意

命名空間和令牌適用於所有版本的 Azure DevOps。 此處列出的版本適用於 Azure DevOps 2019 和更新版本。 命名空間可能會隨著時間而變更。 若要取得最新的命名空間清單,請練習其中一個命令行工具或 REST API。 某些命名空間已被取代,如安全性命名空間和許可權參考、 已淘汰和只讀命名空間中所列。

必要條件

  • 若要管理令牌和命名空間,您必須是 Project Collection 管理員 istrators 安全組的成員。 如需令牌的詳細資訊,請參閱 安全性命名空間和許可權參考
  • 您必須已安裝 Azure DevOps CLI 擴充功能,如開始使用 Azure DevOps CLI 中所述
  • 使用 az login登入 Azure DevOps。
  • 如需本文中的範例,請設定默認組織,如下所示:
    • 針對 Azure DevOps Servicesaz devops configure --defaults organization=YourOrganizationURL
    • 針對 Azure DevOps Serveraz devops configure --defaults organization=https://ServerName/CollectionName

安全性許可權命令

輸入下列命令以列出所有可用的命令。

az devops security permission -h

如需安全性許可權相關概念的詳細資訊,請參閱 安全性 REST API 檔

Command 描述
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 將允許或拒絕許可權指派給指定的使用者或群組。

下列參數是所有命令的選擇性參數,但未列於本文中提供的範例中。

  • detect:自動偵測組織。 接受的值:false、true。 預設為 true。
  • 組織: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]

參數

  • subject:必要。 用戶的電子郵件位址或群組描述元。
  • recurse:選擇性。 如果為 true,且命名空間為階層式,此參數會傳回令牌的子 ACL。
  • token:選擇性。 指定個別的安全性令牌。

範例

下列命令會列出指定命名空間的數據表格式標記,其對應至 Analytics,並與使用者 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 namespace show 命令來顯示每個命名空間中可用許可權的詳細數據。

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

參數

  • idnamespace-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 reset 命令來重設指定使用者或群組的許可權位。

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

參數

  • idnamespace-id:必要。 安全性命名空間的標識碼。
  • permission-bit:必要。 需要重設給使用者或群組和令牌的許可權位或新增許可權位。
  • subject:必要。 用戶的電子郵件位址或群組描述元。
  • token:必要。 個別安全性令牌。

範例

下列命令會重設指定命名空間中使用者 contoso@contoso.com 令牌的許可權位 8,並以數據表格式傳回結果。

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 reset-all 命令,清除使用者或群組的所有令牌許可權。

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

參數

  • idnamespace-id:必要。 安全性命名空間的標識碼。
  • subject:必要。 用戶的電子郵件位址或群組描述元。
  • token:必要。 個別安全性令牌。
  • :選擇性。 請勿提示確認。

範例

下列命令會清除指定命名空間中使用者 contoso@contoso.com 的所有許可權,而不需要確認。 結果會顯示在 CLI 中。

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 show 命令來顯示指定令牌、命名空間和使用者或群組的許可權。

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

參數

  • idnamespace-id:必要。 安全性命名空間的標識碼。
  • subject:必要。 用戶的電子郵件位址或群組描述元。
  • token:必要。 個別安全性令牌。

範例

下列命令顯示指定命名空間中使用者 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 permission update 命令,將允許或拒絕許可權指派給指定的使用者或群組

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

參數

  • idnamespace-id:必要。 安全性命名空間的標識碼。
  • subject:必要。 用戶的電子郵件位址或群組描述元。
  • token:必要。 個別安全性令牌。
  • allow-bit:選擇性。 允許位或新增位。 如果 遺漏 --deny-bit ,則為必要專案。
  • deny-bit:選擇性。 拒絕位或加入位。 如果 遺漏 --allow-bit ,則為必要專案。
  • merge:選擇性。 如果設定,現有的訪問控制專案 (ACE) 會將其允許和拒絕合併至傳入的 ACE 允許和拒絕。 如果未設定,則會取代現有的 ACE。 接受的值為 falsetrue

範例

下列命令會更新指定命名空間中使用者 contoso@contoso.com ExecuteUnrestrictedQuery (位 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 的安全性命名空間和許可權參考。