使用 OAuth 2.0 授與 REST API 的存取權

Azure DevOps Services

瞭解如何驗證 Web 應用程式使用者以進行 REST API 存取,因此您的應用程式不會繼續要求使用者名稱和密碼。

注意

  • 下列指引適用於 Azure DevOps Services 使用者,因為 Azure DevOps Server 不支援 OAuth 2.0。 用戶端連結庫是專為擴充 Azure DevOps Server 功能而建置的一系列套件。 針對內部部署使用者,我們建議使用 用戶端連結庫、Windows 驗證或 個人存取令牌 (PAT) 代表使用者進行驗證。
  • 如需詳細資訊,請參閱 C# OAuth GitHub 範例

關於 OAuth 2.0

Azure DevOps Services 會使用 OAuth 2.0 通訊協議 來授權您的應用程式給使用者,併產生存取令牌。 當您從應用程式呼叫 REST API 時,請使用此權杖。 當您為該使用者呼叫 Azure DevOps Services API 時,請使用該使用者的存取權杖。 存取權杖會過期,因此,如果存取權杖已過期,請重新整理存取權杖。

Process to get authorization.

可用的 OAuth 模型

當您建立 OAuth 2.0 應用程式時,請使用 Microsoft Entra ID OAuth。 我們仍然支援 Azure DevOps OAuth 2.0,但我們目前並未投資此模型。

Microsoft Entra ID OAuth

當您建立 Microsoft Entra ID OAuth 應用程式時,您的應用程式會發出 Microsoft Entra 令牌,而不是 Azure DevOps 存取令牌。 這些令牌在到期前有標準一小時的持續時間。

如需詳細資訊,請參閱下列文章:

注意

當您建立使用其他 API 的應用程式時,請務必選取 這些 API 所需的範圍

Azure DevOps OAuth

針對現有的應用程式,請使用 Azure DevOps OAuth 指南。 您也可以 管理哪些 Azure DevOps 應用程式已獲授權。

範圍

開發人員預期會指定使用者所需的範圍。 這兩個 OAuth 模型都有提供範圍。 下列範圍只能透過委派的(代表使用者)流程取得。 若要瞭解應用程式所需的範圍,請在您所使用的每個 API 的 [API 參考] 頁面上查看 scopes 標頭底下。

例如,某些範圍可能包含其他範圍, code_manage 包括 code_write。 請考慮向使用者要求範圍同意時所需的最小範圍數目。

重要

範圍只會啟用 REST API 的存取權,並選取 [Git 端點]。 不支援SOAP API存取。

類別 範圍 名稱 描述
代理程式集區 vso.agentpools 代理程式集區 (讀取) 授與檢視工作、集區、佇列、代理程式,以及代理程式目前正在執行或最近完成的工作的能力。
vso.agentpools_manage 代理程式集區(讀取、管理) 授與管理集區、佇列和代理程式的能力。
vso.environment_manage 環境(讀取、管理) 授與管理集區、佇列、代理程式和環境的能力。
分析 vso.analytics 剖析(閱讀) 授與查詢分析數據的能力。
稽核 vso.auditlog 稽核記錄檔 (讀取) 授與讀取稽核記錄給使用者的能力。
vso.auditstreams_manage 稽核串流 (讀取) 授與管理稽核數據流給使用者的能力。
建立 vso.build 組建(閱讀) 授與存取組建成品的能力,包括建置結果、定義和要求,以及能夠透過服務攔截接收有關建置事件的通知。
vso.build_execute 建置 (讀取並執行) 授與存取組建成品的能力,包括建置結果、定義和要求,以及能夠將組建排入佇列、更新組建屬性,以及透過服務攔截接收建置事件的相關通知的能力。
程式碼 vso.code 程式代碼 (讀取) 授與讀取有關認可、變更集、分支和其他版本控制成品之原始程式碼和元數據的能力。 也授與搜尋程式代碼的能力,並透過服務攔截取得版本控制事件的通知。
vso.code_write 程式代碼 (讀取和寫入) 授與讀取、更新和刪除原始程式碼、存取認可、變更集、分支和其他版本控制成品的相關元數據的能力。 也授與建立和管理提取要求和程式代碼檢閱的能力,以及透過服務攔截接收版本控制事件的通知。
vso.code_manage 程式代碼 (讀取、寫入和管理) 授與讀取、更新和刪除原始程式碼、存取認可、變更集、分支和其他版本控制成品的相關元數據的能力。 同時授與建立和管理程式代碼存放庫、建立和管理提取要求和程式代碼檢閱,以及透過服務攔截接收版本控制事件的通知的能力。
vso.code_full 程式代碼 (完整) 授與原始程式碼、關於認可、變更集、分支和其他版本控制成品的完整存取權。 同時授與建立和管理程式代碼存放庫、建立和管理提取要求和程式代碼檢閱,以及透過服務攔截接收版本控制事件的通知的能力。 也包含對用戶端 OM API 的支援有限。
vso.code_status 程式代碼 (狀態) 授與讀取和寫入認可和提取要求狀態的能力。
連線 伺服器 vso.connected_server 連線 伺服器 授與從內部部署連線伺服器存取所需端點的能力。
權利 vso.entitlements 權利(閱讀) 提供授權權利端點的唯讀存取權,以取得帳戶權利。
vso.memberentitlementmanagement MemberEntitlement Management (read) 授與讀取使用者、其授權,以及他們可存取的專案和延伸模組的能力。
vso.memberentitlementmanagement_write MemberEntitlement Management (write) 授與管理使用者、其授權,以及他們可存取的專案和延伸模組的能力。
擴充 vso.extension 延伸模組(讀取) 授與讀取已安裝擴充功能的能力。
vso.extension_manage 延伸模組 (讀取和管理) 授與在已安裝擴充功能上安裝、卸載及執行其他系統管理動作的能力。
vso.extension.data 延伸模組資料(讀取) 授與讀取已安裝延伸模組所儲存之數據(設定和檔)的能力。
vso.extension.data_write 延伸模組資料(讀取與寫入) 授與讀取和寫入已安裝延伸模組所儲存之數據(設定和檔)的能力。
圖形和身分識別 vso.graph 圖表(讀取) 授與讀取使用者、群組、範圍和群組成員資格資訊的能力。
vso.graph_manage 圖表(管理) 授與讀取使用者、群組、範圍和群組成員資格資訊的能力,以及新增使用者、群組和管理群組成員資格的能力。
vso.identity 身分識別(讀取) 授與讀取身分識別和群組的能力。
vso.identity_manage 身分識別(管理) 授與讀取、寫入及管理身分識別和群組的能力。
機器群組 vso.machinegroup_manage 部署群組 (讀取、管理) 提供管理部署群組和代理程式集區的能力。
市場平台 vso.gallery Marketplace 授與公用和私人項目和發行者的讀取許可權。
vso.gallery_acquire Marketplace (取得) 授與讀取許可權,以及取得專案的能力。
vso.gallery_publish Marketplace (發佈) 授與讀取許可權,以及上傳、更新和共享專案的能力。
vso.gallery_manage Marketplace (管理) 授與讀取許可權,以及發佈和管理專案和發行者的能力。
通知 vso.notification 通知(讀取) 提供訂用帳戶和事件元數據的讀取許可權,包括可篩選的域值。
vso.notification_write 通知(寫入) 提供訂閱的讀取和寫入存取權,以及事件元數據的讀取許可權,包括可篩選的域值。
vso.notification_manage 通知(管理) 提供訂用帳戶的讀取、寫入和管理存取權,以及事件元數據的讀取許可權,包括可篩選的域值。
vso.notification_diagnostics 通知(診斷) 提供通知相關診斷記錄的存取權,並提供啟用個別訂用帳戶診斷的能力。
封裝 vso.packaging 包裝(讀取) 授與讀取摘要和套件的能力。
vso.packaging_write 封裝(讀取與寫入) 授與建立和讀取摘要和套件的能力。
vso.packaging_manage 封裝(讀取、寫入和管理) 授與建立、讀取、更新和刪除摘要和套件的能力。
管線資源 vso.pipelineresources_use 管線資源(使用) 授與核准管線使用受保護資源的要求的能力:代理程式集區、環境、佇列、存放庫、安全檔案、服務聯機和變數群組。
vso.pipelineresources_manage 管線資源(使用和管理) 授與管理受保護資源或管線使用受保護資源之要求的能力:代理程式集區、環境、佇列、存放庫、安全檔案、服務連線和變數群組。
專案和小組 vso.project 專案與小組(閱讀) 授與讀取專案和小組的能力。
vso.project_write 專案和小組(讀取和寫入) 授與讀取和更新專案和小組的能力。
vso.project_manage 專案和小組(讀取、寫入和管理) 授與建立、讀取、更新和刪除專案和小組的能力。
版本 vso.release 發行(閱讀) 授與讀取發行成品的能力,包括發行、發行定義和發行環境。
vso.release_execute 發行(讀取、寫入和執行) 授與讀取和更新發行成品的能力,包括發行、發行定義和發行環境,以及將新版本排入佇列的能力。
vso.release_manage 發行 (讀取、寫入、執行和管理) 授與讀取、更新和刪除發行成品的能力,包括發行、發行定義和發行環境,以及排入佇列和核准新版本的能力。
安全檔案 vso.securefiles_read 安全檔案 (讀取) 授與讀取安全檔案的能力。
vso.securefiles_write 安全檔案 (讀取、建立) 授與讀取和建立安全檔案的能力。
vso.securefiles_manage 安全檔案 (讀取、建立和管理) 授與讀取、建立和管理安全檔案的能力。
安全性 vso.security_manage 安全性(管理) 授與讀取、寫入和管理安全性許可權的能力。
服務 連線 vso.serviceendpoint 服務端點 (讀取) 授與讀取服務端點的能力。
vso.serviceendpoint_query 服務端點 (讀取和查詢) 授與讀取和查詢服務端點的能力。
vso.serviceendpoint_manage 服務端點(讀取、查詢和管理) 授與讀取、查詢及管理服務端點的能力。
設定 vso.settings 設定(閱讀) 授與讀取設定的能力。
vso.settings_write 設定 (讀取和寫入) 授與建立和讀取設定的能力。
Symbols vso.symbols 符號(讀取) 授與讀取符號的能力。
vso.symbols_write 符號(讀取和寫入) 授與讀取和寫入符號的能力。
vso.symbols_manage 符號(讀取、寫入和管理) 授與讀取、寫入和管理符號的能力。
工作組 vso.taskgroups_read 工作群組(讀取) 授與讀取工作組的能力。
vso.taskgroups_write 工作組(讀取、建立) 授與讀取和建立工作組的能力。
vso.taskgroups_manage 工作組(讀取、建立和管理) 授與讀取、建立和管理工作組的能力。
小組儀錶板 vso.dashboards 小組儀錶板(閱讀) 授與讀取小組儀錶板資訊的能力。
vso.dashboards_manage 小組儀錶板(管理) 授與管理小組儀錶板資訊的能力。
測試管理 vso.test 測試管理(閱讀) 授與讀取測試計劃、案例、結果和其他測試管理相關成品的能力。
vso.test_write 測試管理(讀取和寫入) 授與讀取、建立和更新測試計劃、案例、結果和其他測試管理相關成品的能力。
執行緒 vso.threads_full PR 線程 授與讀取和寫入提取要求批注線程的能力。
語彙基元 vso.tokens 委派的授權令牌 授與管理委派授權令牌給使用者的能力。
vso.tokenadministration Token 管理員 istration 授與管理現有令牌的能力(檢視和撤銷)給組織系統管理員。
使用者設定檔 vso.profile 使用者設定檔(讀取) 授與讀取配置檔、帳戶、集合、專案、小組和其他最上層組織成品的能力。
vso.profile_write 使用者設定檔(寫入) 授與寫入配置檔的能力。
變數群組 vso.variablegroups_read 變數群組(讀取) 授與讀取變數群組的能力。
vso.variablegroups_write 變數群組(讀取、建立) 授與讀取和建立變數群組的能力。
vso.variablegroups_manage 變數群組(讀取、建立和管理) 授與讀取、建立和管理變數群組的能力。
Wiki vso.wiki Wiki(閱讀) 授與讀取Wiki、Wiki頁面和Wiki附件的能力。 同時授與搜尋Wiki頁面的能力。
vso.wiki_write Wiki (讀取與寫入) 授與讀取、建立和更新Wiki、Wiki頁面和Wiki附件的能力。
工作專案 vso.work 工作項目(讀取) 授與讀取工作項目、查詢、面板、區域和反覆項目路徑,以及其他工作專案追蹤相關元數據的能力。 同時授與執行查詢、搜尋工作專案,以及透過服務攔截接收工作專案事件的通知的能力。
vso.work_write 工作項目 (讀取與寫入) 授與讀取、建立和更新工作專案和查詢、更新面板元數據、讀取區域和反覆專案路徑的能力,其他工作專案追蹤相關元數據、執行查詢,以及透過服務攔截接收工作專案事件的通知。
vso.work_full 工作專案(完整) 授與工作項目、查詢、待辦專案、計劃及工作專案追蹤元數據的完整存取權。 也可讓您透過服務攔截接收工作專案事件的相關通知。
用戶模擬 user_impersonation 用戶模擬 具有 Visual Studio Team Services REST API 的完整存取權。 請謹慎要求和/或同意此範圍,因為它非常強大!