OAuth 2.0 を使用して REST API へのアクセスを承認する

Azure DevOps Services

アプリがユーザー名とパスワードを要求し続けないように、REST API アクセスのために Web アプリ ユーザーを認証する方法について説明します。

Note

  • 次のガイダンスは、Azure DevOps Server で OAuth 2.0 がサポートされていないため、Azure DevOps Services ユーザーを対象としています。 クライアント ライブラリは、Azure DevOps Server機能を拡張するために特別に構築された一連のパッケージです。 オンプレミス ユーザーの場合は、 Client ライブラリ、Windows 認証、または 個人アクセス トークン (AT) を使用して、ユーザーに代わって認証することをお勧めします。
  • 詳細については、 C# OAuth GitHub サンプルを参照してください。

OAuth 2.0 について

Azure DevOps Services では、 OAuth 2.0 プロトコル を使用してユーザーのアプリを承認し、アクセス トークンを生成します。 アプリケーションから REST API を呼び出すときは、このトークンを使用してください。 Azure DevOps Services API を呼び出すときは、対応するユーザーのアクセス トークンを使用します。 アクセス トークンの有効期限が切れているため、有効期限が切れた場合はアクセス トークンを更新します。

承認を取得するプロセス。

使用可能な OAuth モデル

重要

新しい OAuth 2.0 アプリを作成するときは、Microsoft Entra ID OAuth を使用します。 Azure DevOps OAuth 2.0 は、2026 年に非推奨となる予定です。 2025 年 2 月以降、新しい Azure DevOps OAuth アプリの受け入れは停止されます。 詳しくは、ブログ記事をご覧ください

Microsoft Entra ID OAuth

新しいプラットフォームでのビルドは、圧倒的な可能性があります。 Azure DevOps 用の Microsoft Entra アプリを構築するためのこのガイドでは Microsoft Entra で OAuth アプリ開発プロセスを開始するのに役立つ可能性のある有用なリンクを収集します。 Azure DevOps OAuth から Microsoft Entra OAuth に移行するユーザー向けに、移行作業中に考慮すべき有用なヒントが提供されます。

Azure DevOps OAuth

既存のアプリについては、 Azure DevOps OAuth アプリ ガイドを参照してください。 また、リソースにアクセスするために、承認されている Azure DevOps アプリを管理することもできます。

スコープ

開発者は、ユーザーに必要なスコープを指定することが求められます。 両方の OAuth モデルで同じスコープを使用できます。 次のスコープは、委任された (代理ユーザー) フローでのみ使用できます。 アプリに必要なスコープを確認するには、使用している各 API の API リファレンス ページの scopes ヘッダーを参照してください。

一部のスコープには、他のスコープが含まれる場合があります。たとえば、 vso.code_manage には vso.code_writeが含まれます。 たとえば、多くのスコープは vso.profileから継承されます。 ユーザーにスコープの同意を要求するときに必要なスコープの最小数を検討してください。

Note

スコープでは、REST API へのアクセスのみが有効になり、Git エンドポイントが選択されます。 SOAP API アクセスはサポートされていません。

カテゴリ 範囲 名前 説明 継承元
高度なセキュリティ vso.advsec AdvancedSecurity (読み取り) アラート、結果インスタンス、分析結果インスタンスを読み取る機能を付与します。
vso.advsec_write AdvancedSecurity (読み取りと書き込み) サリフで分析をアップロードする機能を付与します vso.advsec
vso.advsec_manage AdvancedSecurity (読み取り、書き込み、管理) サリフで分析をアップロードする機能を付与します vso.advsec_write
エージェント プール vso.agentpools エージェント プール (読み取り) タスク、プール、キュー、エージェント、および現在実行中または最近完了したエージェントのジョブを表示する権限を付与します。
vso.agentpools_manage エージェント プール (読み取り、管理) プール、キュー、およびエージェントを管理する機能を付与します。 vso.agentpools
vso.environment_manage 環境 (読み取り、管理) プール、キュー、エージェント、および環境を管理する機能を付与します。 vso.agentpools_manage
分析 vso.analytics 分析 (読み取り) 分析データのクエリを実行する機能を付与します。
監査 vso.auditlog 監査ログ (読み取り) 監査ログをユーザーに読み取る権限を付与します。
vso.auditstreams_manage 監査ストリーム (読み取り) 監査ストリームをユーザーに管理する機能を付与します。 vso.auditlog
ビルド vso.build ビルド (読み取り) ビルドの結果、定義、要求など、ビルド成果物にアクセスする機能と、サービス フックを介してビルド イベントに関する通知を受信する機能を付与します。 vso.hooks_write
vso.build_execute ビルド (読み取りと実行) ビルドの結果、定義、要求など、ビルド成果物にアクセスする機能と、ビルドをキューに入れ、ビルド プロパティを更新する機能、およびサービス フックを介してビルド イベントに関する通知を受信する機能を付与します。 vso.build
コード 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 MemberEntitlement Management (読み取り) ユーザー、ライセンス、およびアクセスできるプロジェクトと拡張機能を読み取る権限を付与します。
vso.memberentitlementmanagement_write MemberEntitlement Management (書き込み) ユーザー、ライセンス、およびアクセスできるプロジェクトと拡張機能を管理する権限を付与します。 vso.memberentitlementmanagement
拡張機能 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 (管理) ID とグループの読み取り、書き込み、管理を行う機能を付与します。 vso.identity
マシン グループ vso.machinegroup_manage 展開グループ (読み取り、管理) デプロイ グループとエージェント プールを管理する機能を提供します。 vso.agentpools_manage
Marketplace vso.gallery マーケットプレース パブリックおよびプライベートのアイテムとパブリッシャーへの読み取りアクセスを許可します。 vso.profile
vso.gallery_acquire Marketplace (取得) 読み取りアクセス権とアイテムを取得する機能を付与します。 vso.gallery
vso.gallery_publish Marketplace (発行) 読み取りアクセス権と、アイテムをアップロード、更新、共有する機能を付与します。 vso.gallery
vso.gallery_manage Marketplace (管理) 読み取りアクセス権と、アイテムと発行元を発行および管理する機能を付与します。 vso.gallery_publish
通知 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_manage
プロジェクトとチーム 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_manage
ファイルのセキュリティ保護 vso.securefiles_read ファイルのセキュリティ保護 (読み取り) セキュリティで保護されたファイルを読み取る機能を付与します。
vso.securefiles_write ファイルのセキュリティ保護 (読み取り、作成) セキュリティで保護されたファイルを読み取って作成する機能を付与します。 vso.securefiles_read
vso.securefiles_manage ファイルのセキュリティ保護 (読み取り、作成、管理) セキュリティで保護されたファイルの読み取り、作成、管理を行う機能を付与します。 vso.securefiles_write
Security 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
Settings vso.settings 設定 (読み取り) 設定を読み取る機能を付与します。
vso.settings_write 設定 (読み取りと書き込み) 設定を作成および読み取る機能を付与します。
記号 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
スレッド vso.threads_full PR スレッド 要求コメント スレッドをプルするための読み取りと書き込みの機能を付与します。
トークン 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
Wiki 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 にフル アクセスできます。 非常に強力であるため、このスコープを慎重に要求または同意してください。

よく寄せられる質問

よく寄せられる質問 (FAQ)

Q: 携帯電話アプリで OAuth を使用できますか?

A: いいえ。 Azure DevOps Services は Web サーバー フローのみをサポートしているため、アプリ シークレットを安全に格納できないため、OAuth を実装する方法はありません。

Q: SOAP エンドポイントと REST API で OAuth を使用できますか。

A: いいえ。 OAuth は REST API でのみサポートされます。