次の方法で共有


Azure DevOps REST API の OAuth 2.0 認証

Azure DevOps Services

ユーザーが資格情報を繰り返し入力しなくても、OAuth 2.0 を使用して Azure DevOps REST API アクセス用のアプリケーションを認証する方法について説明します。

重要

新しいアプリケーションには Microsoft Entra ID OAuth を使用することをお勧めします。 Azure DevOps OAuth 2.0 は非推奨となり、2025 年 4 月の時点で新しい登録は受け付けなくなり、2026 年に完全な非推奨が予定されています。

Azure DevOps での OAuth 2.0 のしくみ

OAuth 2.0 は、Azure DevOps Server ではなく、Azure DevOps Services でのみ使用できます。 オンプレミスのシナリオでは、 クライアント ライブラリ、Windows 認証、または 個人用アクセス トークンを使用します

Azure DevOps Services では 、OAuth 2.0 プロトコル を使用してアプリケーションを承認し、REST API 呼び出し用のアクセス トークンを生成します。 このプロセスには、次の手順が含まれます。

  • アプリの登録: OAuth プロバイダーにアプリケーションを登録します。
  • ユーザー承認: アプリがユーザー データにアクセスするためのアクセス許可を付与します。
  • トークン交換: API 呼び出しを行うアクセス トークンを受け取ります。
  • API アクセス: 認証された REST API 要求にトークンを使用します。
  • トークンの更新: 期限切れのトークンを更新してアクセスを維持します。

アプリの登録から API アクセスへの OAuth 2.0 承認フロー プロセスを示す図。

OAuth 実装オプション

アプリケーションのニーズに基づいて、適切な OAuth 実装を選択します。

Microsoft Entra ID OAuth は、Azure DevOps アプリケーションに対して最も安全で将来を見据える認証方法を提供します。 次のような利点があります。

  • エンタープライズ統合: 既存の Microsoft Entra ID インフラストラクチャとのシームレスな統合。
  • セキュリティの強化: 高度なセキュリティ機能には、Microsoft Entra の条件付きアクセスと多要素認証が含まれます。
  • 今後のサポート: 積極的に保守およびサポートされているプラットフォーム。
  • 統合 ID: Microsoft サービス全体でのシングル サインオン エクスペリエンス。

はじめに: 実装の詳細と移行ガイダンスについては、 Microsoft Entra ID OAuth ガイド に従ってください。

Azure DevOps OAuth (非推奨)

Warnung

Azure DevOps OAuth は非推奨です。 2025 年 4 月の時点で、新しいアプリの登録は受け付けなくなりました。 このサービスは、2026 年に完全に廃止される予定です。 既存のアプリケーションを Microsoft Entra ID OAuth に移行します。

既存の Azure DevOps OAuth アプリケーションの場合:

移行計画: Microsoft Entra ID OAuth への移行の計画を早い段階で開始します。 移行ガイドには、スムーズな移行のためのヒントと考慮事項が記載されています。

OAuth のスコープ

スコープは、アプリケーションがアクセスできる Azure DevOps リソースを定義します。 Microsoft Entra ID OAuth と Azure DevOps OAuth はどちらも同じスコープ定義を使用します。

スコープに関する主な考慮事項

  • 最小特権の原則: アプリケーションに必要な最小スコープのみを要求します。
  • スコープの継承: 一部のスコープには他のスコープが含まれます (たとえば、 vso.code_manage には vso.code_writeが含まれます)。
  • API カバレッジ: スコープを使用すると、REST API へのアクセスが有効になり、Git エンドポイントのみが選択されます (SOAP API はサポートされていません)。
  • ユーザーの同意: ユーザーは、要求されたスコープごとにアクセス許可を明示的に付与する必要があります。

必要なスコープを検索する

アプリケーションに必要なスコープを決定するには:

  • 使用する予定の各エンドポイントの API リファレンス ドキュメントを確認してください。
  • 各 API ページで scopes ヘッダーを探します。
  • 冗長なアクセス許可を要求しないようにするには、スコープの関係を検討してください。

利用可能なスコープ

カテゴリ Scope 名前 高い特権 説明 継承
高度なセキュリティ vso.advsec 高度なセキュリティ (読み取り) イエス アラート、結果インスタンス、および分析結果インスタンスを読み取る機能を付与します。
vso.advsec_write 高度なセキュリティ (読み取りと書き込み) イエス serif で分析をアップロードする機能を付与します。 vso.advsec
vso.advsec_manage 高度なセキュリティ (読み取り、書き込み、管理) イエス serif で分析をアップロードする機能を付与します。 vso.advsec_write
エージェント プール vso.agentpools エージェント プール (読み取り) タスク、プール、キュー、エージェント、現在実行中または最近完了したエージェントのジョブを表示する機能を付与します。
vso.agentpools_manage エージェント プール (読み取りと管理) イエス プール、キュー、およびエージェントを管理する機能を付与します。 vso.agentpools
vso.environment_manage 環境 (読み取りと管理) イエス プール、キュー、エージェント、および環境を管理する機能を付与します。 vso.agentpools_manage
Analytics vso.analytics 分析 (読み取り) 分析データのクエリを実行する機能を付与します。
Auditing vso.auditlog 監査ログ (読み取り) 監査ログをユーザーに読み取る権限を付与します。
vso.auditstreams_manage 監査ストリーム (読み取り) イエス 監査ストリームをユーザーに管理する機能を付与します。 vso.auditlog
建築する vso.build ビルド (読み取り) ビルドの結果、定義、要求など、ビルド成果物にアクセスする機能と、サービス フックを介してビルド イベントに関する通知を受信する機能を付与します。 vso.hooks_write
vso.build_execute ビルド (読み取りと実行) イエス ビルド結果、定義、要求など、ビルド成果物にアクセスする権限を付与します。 また、ビルドをキューに入れ、ビルド プロパティを更新し、サービス フックを介してビルド イベントに関する通知を受け取る機能も付与します。 vso.build
Code vso.code コード (読み取り) コミット、変更セット、ブランチ、およびその他のバージョン管理成果物に関するソース コードとメタデータを読み取る機能を付与します。 また、コードを検索し、サービス フックを使用してバージョン管理イベントに関する通知を受け取る機能も付与されます。 vso.hooks_write
vso.code_write コード (読み取りと書き込み) イエス ソース コードの読み取り、更新、削除、およびコミット、変更セット、ブランチ、およびその他のバージョン管理成果物に関するメタデータへのアクセスを許可します。 また、プル要求とコード レビューを作成および管理し、サービス フックを介してバージョン管理イベントに関する通知を受信する機能も付与します。 vso.code
vso.code_manage コード (読み取り、書き込み、管理) イエス ソース コードの読み取り、更新、削除、コミット、変更セット、ブランチ、およびその他のバージョン管理成果物に関するメタデータへのアクセスを許可します。 また、コード リポジトリの作成と管理、プル要求とコード レビューの作成と管理、サービス フックを介したバージョン管理イベントに関する通知の受信を行う機能も付与されます。 vso.code_write
vso.code_full コード(完全) イエス ソース コード、コミット、変更セット、ブランチ、およびその他のバージョン管理成果物に関するメタデータへのフル アクセスを許可します。 また、コード リポジトリの作成と管理、プル要求とコード レビューの作成と管理、サービス フックを介したバージョン管理イベントに関する通知の受信を行う機能も付与されます。 また、クライアント OM API の制限付きサポートも含まれています。 vso.code_manage
vso.code_status コード (状態) コミットとプル要求の状態の読み取りと書き込みを行う機能を付与します。
接続されたサーバー vso.connected_server 接続されたサーバー オンプレミスの接続されたサーバーから必要なエンドポイントにアクセスする権限を付与します。
権利 vso.entitlements 権利 (読み取り) ライセンスエンタイトルメント エンドポイントへの読み取り専用アクセス権を付与して、アカウントの権利を取得します。
vso.memberentitlementmanagement メンバーエンタイトルメント管理 (読み取り) ユーザー、ライセンス、およびアクセスできるプロジェクトと拡張機能を読み取る権限を付与します。
vso.memberentitlementmanagement_write メンバーエンタイトルメント管理 (書き込み) イエス ユーザーとそのライセンス、およびアクセスできるプロジェクトと拡張機能を管理する権限を付与します。 vso.memberentitlementmanagement
Extensions vso.extension 拡張機能 (読み取り) インストールされている拡張機能を読み取る権限を付与します。 vso.profile
vso.extension_manage 拡張機能 (読み取りと管理) イエス インストールされている拡張機能のインストール、アンインストール、その他の管理操作の実行を許可します。 vso.extension
vso.extension.data 拡張データ (読み取り) インストールされている拡張機能によって格納されたデータ (設定とドキュメント) を読み取る機能を付与します。 vso.profile
vso.extension.data_write 拡張データ (読み取りと書き込み) インストールされている拡張機能によって格納されているデータ (設定とドキュメント) の読み取りと書き込みを行う機能を付与します。 vso.extension.data
GitHub 接続 vso.githubconnections GitHub 接続 (読み取り) GitHub 接続と GitHub リポジトリ データを読み取る機能を付与します。
vso.githubconnections_manage GitHub 接続 (読み取りと管理) イエス GitHub 接続と GitHub リポジトリ データを読み取って管理する機能を付与します。 vso.githubconnections
グラフと ID vso.graph グラフ (読み取り) ユーザー、グループ、スコープ、およびグループ メンバーシップ情報を読み取る機能を付与します。
vso.graph_manage グラフ (管理) イエス ユーザー、グループ、スコープ、およびグループ メンバーシップ情報の読み取り、ユーザーとグループの追加、グループ メンバーシップの管理を行う機能を付与します。 vso.graph
vso.identity ID (読み取り) ID とグループを読み取る機能を付与します。
vso.identity_manage アイデンティティ(管理) イエス ID とグループの読み取り、書き込み、管理を行う機能を付与します。 vso.identity
マシン グループ vso.machinegroup_manage デプロイメントグループ (読み取り、管理) イエス デプロイ グループとエージェント プールを管理する機能を付与します。 vso.agentpools_manage
Marketplace vso.gallery Marketplace 公開項目、非公開項目、発行者への読み取りアクセスを付与します。 vso.profile
vso.gallery_acquire マーケットプレイス (取得) 読み取りアクセス権とアイテムを取得する機能を付与します。 vso.gallery
vso.gallery_publish マーケットプレイス (公開) イエス 読み取りアクセス権と、アイテムをアップロード、更新、共有する機能を付与します。 vso.gallery
vso.gallery_manage マーケットプレイス (管理) イエス 読み取りアクセス権と、アイテムと発行元を発行および管理する機能を付与します。 vso.gallery_publish
Notifications vso.notification 通知 (読み取り) フィルター可能なフィールド値を含む、サブスクリプションとイベント メタデータへの読み取りアクセスを許可します。 vso.profile
vso.notification_write 通知 (書き込み) サブスクリプションへの読み取りと書き込みのアクセス権を付与し、フィルター可能なフィールド値を含むイベント メタデータへの読み取りアクセスを許可します。 vso.notification
vso.notification_manage 通知 (管理) サブスクリプションへの読み取り、書き込み、管理アクセスを許可し、フィルター可能なフィールド値を含むイベント メタデータへの読み取りアクセスを許可します。 vso.notification_write
vso.notification_diagnostics 通知 (診断) 通知関連の診断ログへのアクセスを許可し、個々のサブスクリプションの診断を有効にする機能を付与します。 vso.notification
包装 vso.packaging パッケージ (読み取り) フィードとパッケージを読み取る機能を付与します。 vso.profile
vso.packaging_write パッケージ化 (読み取りと書き込み) イエス フィードとパッケージを作成および読み取る機能を付与します。 vso.packaging
vso.packaging_manage パッケージ化 (読み取り、書き込み、管理) イエス フィードとパッケージを作成、読み取り、更新、削除する機能を付与します。 vso.packaging_write
パイプライン リソース vso.pipelineresources_use パイプライン リソース (使用) イエス 保護されたリソース (エージェント プール、環境、キュー、リポジトリ、セキュリティで保護されたファイル、サービス接続、変数グループ) を使用するパイプラインの要求を承認する権限を付与します。
vso.pipelineresources_manage パイプライン リソース (使用と管理) イエス 保護されたリソース、または保護されたリソースを使用するパイプラインの要求 (エージェント プール、環境、キュー、リポジトリ、セキュリティで保護されたファイル、サービス接続、変数グループ) を管理する権限を付与します。 vso.pipelineresources_use
プロジェクトとチーム vso.project プロジェクトおよびチーム (読み取り) プロジェクトとチームを読み取る機能を付与します。
vso.project_write プロジェクトとチーム (読み取りと書き込み) プロジェクトとチームの読み取りと更新を行う機能を付与します。 vso.project
vso.project_manage プロジェクトとチーム (読み取り、書き込み、管理) イエス プロジェクトとチームを作成、読み取り、更新、削除する機能を付与します。 vso.project_write
リリース vso.release リリース (読み取り) リリース、リリース定義、リリース環境など、リリース成果物を読み取る機能を付与します。 vso.profile
vso.release_execute リリース (読み取り、書き込み、実行) イエス リリース、リリース定義、リリース環境など、リリース成果物の読み取りと更新を行う機能を付与します。 また、新しいリリースをキューに登録する機能も付与します。 vso.release
vso.release_manage リリース (読み取り、書き込み、実行、管理) イエス リリース、リリース定義、リリース環境など、リリース成果物の読み取り、更新、削除を行う機能を付与します。 また、新しいリリースをキューに入れ、承認する機能も付与されます。 vso.release_execute
ファイルをセキュリティで保護する vso.securefiles_read ファイルのセキュリティ保護 (読み取り) イエス セキュリティで保護されたファイルを読み取る機能を付与します。
vso.securefiles_write ファイルのセキュリティ保護 (読み取りと作成) イエス セキュリティで保護されたファイルを読み取って作成する機能を付与します。 vso.securefiles_read
vso.securefiles_manage ファイルのセキュリティ保護 (読み取り、作成、管理) イエス セキュリティで保護されたファイルの読み取り、作成、管理を行う機能を付与します。 vso.securefiles_write
セキュリティ vso.security_manage セキュリティ (管理) イエス セキュリティアクセス許可の読み取り、書き込み、管理を行う権限を付与します。
サービス接続 vso.serviceendpoint サービス エンドポイント (読み取り) サービス エンドポイントを読み取る機能を付与します。 vso.profile
vso.serviceendpoint_query サービス エンドポイント (読み取りとクエリ) サービス エンドポイントの読み取りとクエリを実行する機能を付与します。 vso.serviceendpoint
vso.serviceendpoint_manage サービス エンドポイント (読み取り、クエリ、管理) イエス サービス エンドポイントの読み取り、クエリ、管理を行う機能を付与します。 vso.serviceendpoint_query
サービス フック vso.hooks サービス フック (読み取り) サポートされているイベント、コンシューマー、アクションなど、サービス フックのサブスクリプションとメタデータを読み取る機能を付与します。 (パブリックではなくなりました。) vso.profile
vso.hooks_write サービス フック (読み取りと書き込み) サービス フック サブスクリプションを作成および更新し、サポートされているイベント、コンシューマー、アクションなどのメタデータを読み取る機能を付与します。 (パブリックではなくなりました。) vso.hooks
vso.hooks_interact サービス フック (インタラクト) サービス フックを介して受信したイベントに対して操作を行う機能を付与します。 (パブリックではなくなりました。) vso.profile
設定 vso.settings 設定 (読み取り) 設定を読み取る機能を付与します。
vso.settings_write 設定 (読み取りと書き込み) 設定の読み取りと書き込みを行う機能を付与します。 vso.settings
シンボル vso.symbols シンボル (読み取り) シンボルを読み取る機能を付与します。 vso.profile
vso.symbols_write シンボル (読み取りと書き込み) シンボルの読み取りと書き込みを行う機能を付与します。 vso.symbols
vso.symbols_manage シンボル (読み取り、書き込み、管理) シンボルの読み取り、書き込み、および管理を行う機能を付与します。 vso.symbols_write
タスク グループ vso.taskgroups_read タスク グループ (読み取り) タスク グループを読み取る機能を付与します。
vso.taskgroups_write タスク グループ (読み取りと作成) タスク グループを読み取って作成する機能を付与します。 vso.taskgroups_read
vso.taskgroups_manage タスク グループ (読み取り、作成、管理) イエス タスク グループの読み取り、作成、管理を行う権限を付与します。 vso.taskgroups_write
チーム ダッシュボード vso.dashboards チーム ダッシュボード (読み取り) チーム ダッシュボード情報を読み取る機能を付与します。
vso.dashboards_manage チーム ダッシュボード (管理) チーム ダッシュボード情報を管理する機能を付与します。 vso.dashboards
テスト管理 vso.test テスト管理 (読み取り) テスト計画、ケース、結果、およびその他のテスト管理関連の成果物を読み取る機能を付与します。 vso.profile
vso.test_write テスト管理 (読み取りと書き込み) テスト計画、ケース、結果、およびその他のテスト管理関連の成果物を読み取り、作成、更新する機能を付与します。 vso.test
Threads vso.threads_full PR スレッド 要求コメント スレッドをプルするための読み取りと書き込みの機能を付与します。
Tokens vso.tokens 委任された承認トークン イエス 委任された承認トークンをユーザーに管理する権限を付与します。
vso.tokenadministration トークン管理 イエス 組織の管理者に対して、既存のトークンを管理 (表示および取り消し) する機能を付与します。
ユーザー プロファイル vso.profile ユーザープロファイル(参照) プロファイル、アカウント、コレクション、プロジェクト、チーム、およびその他のトップレベルの組織成果物を読み取る機能を付与します。
vso.profile_write ユーザー プロファイル (書き込み) プロファイルに書き込む権限を付与します。 vso.profile
変数グループ vso.variablegroups_read 変数グループ (読み取り) 変数グループを読み取る機能を付与します。
vso.variablegroups_write 変数グループ (読み取りと作成) 変数グループを読み取って作成する機能を付与します。 vso.variablegroups_read
vso.variablegroups_manage 変数グループ (読み取り、作成、管理) イエス 変数グループの読み取り、作成、管理を行う権限を付与します。 vso.variablegroups_write
ウィキ vso.wiki Wiki (読み取り) Wiki、Wiki ページ、Wiki の添付ファイルを読み取る権限を付与します。 Wiki ページを検索する機能も付与されます。
vso.wiki_write Wiki (読み取りと書き込み) Wiki、Wiki ページ、Wiki 添付ファイルの読み取り、作成、更新を行う権限を付与します。 vso.wiki
作業項目 vso.work 作業項目 (読み取り) 作業項目、クエリ、ボード、領域とイテレーションのパス、およびその他の作業項目追跡関連のメタデータを読み取る機能を付与します。 また、サービス フックを使用して、クエリの実行、作業項目の検索、作業項目イベントに関する通知の受信を行うこともできます。 vso.hooks_write
vso.work_write 作業項目 (読み取りおよび書き込み) 作業項目とクエリの読み取り、作成、更新、ボード メタデータの更新、領域とイテレーションのパスおよびその他の作業項目追跡関連メタデータの読み取り、作成、更新、およびサービス フックを使用した作業項目イベントに関する通知の受信を行う機能を付与します。 vso.work
vso.work_full 作業項目 (フル) 作業項目、クエリ、バックログ、プラン、作業項目追跡メタデータへのフル アクセスを許可します。 また、サービス フックを介して作業項目イベントに関する通知を受信する機能を付与します。 vso.work_write
ユーザーの偽装 user_impersonation ユーザーの偽装 イエス Visual Studio Team Services REST API へのフル アクセスを許可します。 このスコープは非常に強力であるため、慎重に要求または同意してください。

よく寄せられる質問

質問 モバイル アプリケーションで OAuth を使用できますか?

A。 No. Azure DevOps Services では、アプリ シークレットを安全に格納する必要がある Web サーバー フロー (承認コード フロー) のみがサポートされています。 モバイル アプリケーションではシークレットを安全に格納できないため、OAuth はモバイル シナリオに適していません。

モバイル アプリの代替手段: モバイル アプリケーション認証 に個人用アクセス トークンを 使用します。

質問 OAuth はすべての Azure DevOps API で動作しますか?

A。 OAuth は REST API をサポートし、Git エンドポイントのみを選択します。 SOAP API は OAuth 認証をサポートしていません。

質問 Azure DevOps OAuth から Microsoft Entra ID OAuth に移行するにはどうすればよいですか?

A。 Microsoft Entra ID OAuth 移行ガイドに従います。これには次のものが含まれます。

  • ステップ バイ ステップの移行手順。
  • コード例とベスト プラクティス。
  • 非推奨のタイムラインに関する考慮事項。

質問 2026 以降、既存の Azure DevOps OAuth アプリはどうなりますか?

A。 既存の Azure DevOps OAuth アプリは、2026 年にサービスが完全に非推奨になると動作を停止します。 この期限の前に、Microsoft Entra ID OAuth への移行を計画します。

実装パスを選択する