Azure DevOps サービス |Azure DevOps Server |Azure DevOps Server 2022
この記事では、Azure DevOps統合の認証方法について説明し、シナリオに最適なオプションを選択するのに役立ちます。 Microsoft Entra IDのような最新の認証方法により、セキュリティが強化され、新しいアプリケーションに最適なアプローチが提供されます。
Azure DevOps Services と統合する新しいアプリケーションには、Microsoft Entra ID認証を使用します。 個人用アクセス トークンは、Microsoft Entra IDが使用できない場合にのみ、控えめに使用してください。
Von Bedeutung
より安全なMicrosoft Entraトークンを、リスクの高い個人アクセス トークンよりも使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください。 認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。
OAuth 2.0 および Microsoft Entra ID 認証は、Azure DevOps Serverではなく、Azure DevOps サービスでのみ使用できます。
オンプレミスのシナリオでは、.NET クライアント ライブラリ、Windows 認証、または 個人アクセス トークンを使用します。
ヒント
この記事の後半で、AI を用いてこのタスクを補助することができます。または、Azure DevOps MCP Server で AI 支援を有効にする方法を参照して作業を開始してください。
シナリオ別の認証方法
アプリケーションの種類と要件に基づいて、適切な認証方法を選択します。
| アプリケーションの種類 | 説明 | 例 | 推奨される方法 | コード サンプル |
|---|---|---|---|---|
| Web/デスクトップ アプリ | 現在のフレームワークを使用した対話型アプリケーション | React アプリ、.NET デスクトップ アプリ | Microsoft Entra OAuth と Microsoft Authentication Library (MSAL) | マネージド クライアント コンソール アプリ |
| サービス/バックグラウンド アプリ | ユーザー操作なしで実行されているアプリケーション | Azure Functions、バックグラウンド サービス | サービス プリンシパルとマネージド ID | サービス プリンシパル |
| レガシ クライアント アプリ | クライアント ライブラリを使用する既存のアプリケーション | Azure DevOps .NET ライブラリを含むコンソール アプリ | .NET 用クライアント ライブラリと OAuth | クライアント ライブラリ コンソール アプリ |
| ヘッドレス/CLI アプリ | 非インターアクティブなコマンド ライン ツール | スクリプトのビルド、自動化ツール | デバイス承認付与フロー | デバイス プロファイル |
| Azure DevOps 拡張機能 | Azure DevOps内で実行されている拡張機能 | カスタム ダッシュボード ウィジェットと作業項目フォーム | Azure DevOps Web 拡張機能 SDK | ダッシュボード ウィジェットを追加する |
| Azure DevOps Server アプリ | オンプレミスのAzure DevOps Server統合 | カスタム サーバー拡張機能 | .NET クライアント ライブラリまたはWindows認証 | クライアント ライブラリ コンソール アプリ |
| 個人用/アドホック スクリプト | 個人用のクイック スクリプト | PowerShell スクリプト、curl コマンド | 個人用アクセス トークン | REST API 入門 |
作業の開始に関する提案
次のセクションでは、さまざまなシナリオで作業を開始するための推奨事項を示します。
新しいアプリケーション
- Azure DevOps と Microsoft Entra OAuth アプリの統合を構築し、セキュリティと将来の互換性を最大限に高めます。
- サービス間シナリオでは、サービス プリンシパルまたはマネージド ID を使用します。
- 運用アプリケーションでは個人用アクセス トークンを使用しないでください。
既存のアプリケーション
- 個人用アクセス トークンからMicrosoft Entra ID認証への移行を計画します。
- Azure DevOpsの改善と個人用アクセス トークンの使用の削減については、認証移行タイムラインを検討してください。
- セキュリティのベスト プラクティスに対する現在の認証アプローチを確認します。
Azure DevOps Server
- 可能な場合は、.NET クライアント ライブラリをWindows認証と共に使用します。
- 個人用アクセス トークンは、受け入れ可能なAzure DevOps Serverシナリオに使用します。
- 最新の認証を利用するために、将来の Azure DevOps Services の移行を計画します。
よく寄せられる質問に対する回答
以下のセクションでは、よく寄せられる質問に対する回答を示します。
Microsoft Entra ID OAuth または個人用アクセス トークンを使用する必要がありますか?
次のシナリオでは、Microsoft Entra ID OAuth を使用します。
- 新しいアプリケーションと統合。
- 堅牢なセキュリティを必要とする運用ワークロード。
- エンタープライズ ID 統合を必要とするアプリケーション。
- コンプライアンス要件を持つ長期的なプロジェクト。
次のシナリオでは、個人用アクセス トークンのみを使用します。
- 個人用スクリプトとアドホック タスク。
- 移行計画を立てる際に考慮されるレガシーアプリケーション。
- Azure DevOps Server先進認証を使用できないシナリオです。
認証にサービス プリンシパルまたはユーザー委任を使用する必要がありますか?
次のシナリオでは、サービス プリンシパルまたはマネージド ID を使用します。
- 独立して動作するアプリケーション (バックグラウンド サービス、自動化) を構築します。
- ユーザーの操作を必要としないアプリを作成します。
- サービス間通信を実装します。
- 継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインまたは自動化されたワークフローを構築します。
次のシナリオでは、ユーザー委任 (ユーザーの同意による OAuth) を使用します。
- 人間のユーザー向けに動作するアプリケーションを構築します。
- ユーザーが自分の資格情報でサインインする対話型アプリを作成します。
- ユーザー固有のアクセス許可を必要とする機能を実装します。
- ユーザーの個々のアクセス権を尊重するアプリを構築します。
Azure DevOps サービスとAzure DevOps Serverの両方で認証するにはどうすればよいですか?
サービスごとに個別の認証パスを作成します。
- Azure DevOps Services: Microsoft Entra ID OAuth を使用します。
- Azure DevOps Server: Windows認証トークンまたは個人用アクセス トークン.NETクライアント ライブラリを使用します。
メソッドを使用してサービスの種類を検出し、適切な認証方法を適用します。
サービス アカウントが API Azure DevOpsアクセスできないのはなぜですか?
サービス アカウントのアクセスに影響する可能性がある一般的な問題を次に示します。
- サービス アカウントが "具体化" されていない: 正しいサインイン方法を使用します。 サービス アカウントには、対話型のサインインアクセス許可または適切なMicrosoft Entra ID登録が必要です。
- 十分なアクセス許可: サービス アカウントに適切なAzure DevOpsアクセス許可があることを確認します。
- 認証方法: サービス アカウントとして認証するのではなく、サービス プリンシパルまたはマネージド ID を使用します。
個人用アクセス トークンから先進認証に移行するにはどうすればよいですか?
次の手順に従います。
アプリケーションでの現在の個人用アクセス トークンの使用状況を特定します。
代替認証方法を選択します。
- ユーザー委任シナリオにおけるMicrosoft Entra IDのOAuth
- サービス間のやり取りにおけるサービス プリンシパル
Azure DevOps移行認証サンプルを使用して認証コードを更新します。
個人用アクセス トークンの依存関係を削除する前に、変更を十分にテストします。
新しい認証方法を監視して検証します。
実装手順
シナリオの認証方法を選択したら、実装を完了します。
- 新しいアプリケーション: Microsoft Entra OAuth アプリを使用して Azure DevOps 統合を構築
サービス アプリケーション :Azure DevOps - 個人用スクリプト: 個人用アクセス トークンを使用する
AI を使用して認証方法を選択する
エージェント モードで Azure DevOps MCP Server が AI エージェントに接続されている場合は、自然言語プロンプトを使用して、シナリオの認証に関する推奨事項を取得できます。
| Task | プロンプトの例 |
|---|---|
| バックグラウンド サービスの認証を選択する | Which authentication method should I use for a background Azure Function that needs to access Azure DevOps APIs? |
| 認証オプションを比較する | Help me choose between service principals, managed identities, and personal access tokens for my Azure DevOps integration |
| Web アプリの認証 | I'm building a React web app that needs to access Azure DevOps on behalf of signed-in users — what authentication approach should I use? |
| パーソナルアクセストークンからの移行 | Help me plan a migration from personal access tokens to Microsoft Entra ID authentication for my Azure DevOps integrations |
| CI/CD の認証 | What's the most secure way to authenticate Azure DevOps REST API calls from a GitHub Actions workflow? |
| 認証エラーのトラブルシューティング | I'm getting 401 errors when calling the Azure DevOps REST API with my token — help me diagnose the issue |
注
エージェント モードと MCP サーバーでは自然言語が使用されるため、これらのプロンプトを調整したり、フォローアップの質問をして結果を絞り込むことができます。