使用命令行工具管理許可權
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 Services:
az devops configure --defaults organization=YourOrganizationURL
。 - 針對 Azure DevOps Server:
az devops configure --defaults organization=https://ServerName/CollectionName
- 針對 Azure DevOps Services:
安全性許可權命令
輸入下列命令以列出所有可用的命令。
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]
參數
-
- id 或 namespace-id:必要。 安全性命名空間的標識碼。 若要取得標識符,請使用 az devops security permission namespace list 命令。
- 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>
參數
- 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 reset 命令來重設指定使用者或群組的許可權位。
az devops security permission reset --id
--permission-bit
--subject
--token
參數
- id 或 namespace-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]
參數
- id 或 namespace-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
參數
- id 或 namespace-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}]
參數
- id 或 namespace-id:必要。 安全性命名空間的標識碼。
- subject:必要。 用戶的電子郵件位址或群組描述元。
- token:必要。 個別安全性令牌。
- allow-bit:選擇性。 允許位或新增位。 如果 遺漏 --deny-bit ,則為必要專案。
- deny-bit:選擇性。 拒絕位或加入位。 如果 遺漏 --allow-bit ,則為必要專案。
- merge:選擇性。 如果設定,現有的訪問控制專案 (ACE) 會將其允許和拒絕合併至傳入的 ACE 允許和拒絕。 如果未設定,則會取代現有的 ACE。 接受的值為 false 或 true。
範例
下列命令會更新指定命名空間中使用者 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 的安全性命名空間和許可權參考。