次の方法で共有


Azure DevOps の認証方法

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

この記事では、Azure DevOps 統合の認証方法について説明し、シナリオに最適なオプションを選択するのに役立ちます。 Microsoft Entra ID などの最新の認証方法により、セキュリティが強化され、新しいアプリケーションに最適なアプローチが提供されます。

Von Bedeutung

Azure DevOps Services と統合される新しいアプリケーションには、Microsoft Entra ID 認証をお勧めします。 個人用アクセス トークンは慎重に使用し、Microsoft Entra ID が利用できない場合にのみ使用してください。

OAuth 2.0 および Microsoft Entra ID 認証は、Azure DevOps Server ではなく、Azure DevOps Services でのみ使用できます。

オンプレミスのシナリオでは、 .NET クライアント ライブラリ、Windows 認証、または 個人用アクセス トークンを使用します

シナリオ別の認証方法

アプリケーションの種類と要件に基づいて、適切な認証方法を選択します。

アプリケーションの種類 説明 推奨される方法 コード サンプル
Web/デスクトップ アプリ 現在のフレームワークを使用した対話型アプリケーション React アプリ、.NET デスクトップ アプリ Microsoft 認証ライブラリ (MSAL) を使用した Microsoft Entra OAuth マネージド クライアント コンソール アプリ
サービス/バックグラウンド アプリ ユーザー操作なしで実行されているアプリケーション Azure Functions、バックグラウンド サービス サービス プリンシパルとマネージド ID サービス プリンシパル
レガシ クライアント アプリ クライアント ライブラリを使用する既存のアプリケーション Azure DevOps .NET ライブラリを使用したコンソール アプリ OAuth を使用した .NET クライアント ライブラリ クライアント ライブラリ コンソール アプリ
ヘッドレス/CLI アプリ 非インターアクティブなコマンド ライン ツール スクリプトのビルド、自動化ツール デバイス承認付与フロー デバイス プロファイル
Azure DevOps 拡張機能 Azure DevOps 内で実行されている拡張機能 カスタム ダッシュボード ウィジェットと作業項目フォーム Azure DevOps Web 拡張機能 SDK ダッシュボード ウィジェットを追加する
Azure DevOps Server アプリ オンプレミスの Azure DevOps Server の統合 カスタム サーバー拡張機能 .NET クライアント ライブラリ または Windows 認証 クライアント ライブラリ コンソール アプリ
個人用/アドホック スクリプト 個人用のクイック スクリプト PowerShell スクリプト、curl コマンド 個人用アクセス トークン REST API 入門

作業の開始に関する提案

次のセクションでは、さまざまなシナリオで作業を開始するための推奨事項を示します。

新しいアプリケーション

  • 最適なセキュリティと将来の互換性を実現するために、Microsoft Entra OAuth アプリと Azure DevOps の統合を構築します。
  • サービス間シナリオでは、サービス プリンシパルまたはマネージド ID を使用します。
  • 運用アプリケーションでは個人用アクセス トークンを使用しないでください。

既存のアプリケーション

  • 個人用アクセス トークンから Microsoft Entra ID 認証への移行を計画します。
  • Azure DevOps の機能強化と個人用アクセス トークンの使用の削減については、 認証移行のタイムライン を検討してください。
  • セキュリティのベスト プラクティスに対する現在の認証アプローチを確認します。

Azure DevOps Server

  • 可能な場合は、Windows 認証で .NET クライアント ライブラリ を使用します。
  • Azure DevOps Server シナリオが許容される場合は、個人用アクセス トークンを使用します。
  • 最新の認証を利用するために、将来の Azure DevOps Services の移行を計画します。

よく寄せられる質問に対する回答

以下のセクションでは、よく寄せられる質問に対する回答を示します。

Microsoft Entra ID OAuth または個人用アクセス トークンを使用する必要がありますか?

次のシナリオでは、Microsoft Entra ID OAuth を使用します。

  • 新しいアプリケーションと統合
  • 堅牢なセキュリティを必要とする運用ワークロード
  • エンタープライズ ID 統合が必要なアプリケーション
  • コンプライアンス要件を持つ長期的なプロジェクト

次のシナリオでは、個人用アクセス トークンのみを使用します。

  • 個人用スクリプトとアドホック タスク
  • 移行計画中のレガシ アプリケーション
  • 先進認証を使用できない Azure DevOps Server のシナリオ

認証にサービス プリンシパルまたはユーザー委任を使用する必要がありますか?

次のシナリオでは、サービス プリンシパルまたはマネージド ID を使用します。

  • 独立して動作するアプリケーション (バックグラウンド サービス、自動化) を構築します。
  • ユーザーの操作を必要としないアプリを作成します。
  • サービス間通信を実装します。
  • 継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインまたは自動化されたワークフローを構築します。

次のシナリオでは、ユーザー委任 (ユーザーの同意による OAuth) を使用します。

  • 人間のユーザー向けに動作するアプリケーションを構築します。
  • ユーザーが自分の資格情報でサインインする対話型アプリを作成します。
  • ユーザー固有のアクセス許可を必要とする機能を実装します。
  • ユーザーの個々のアクセス権を尊重するアプリを構築します。

Azure DevOps Services と Azure DevOps Server の両方で認証するにはどうすればよいですか?

ベスト プラクティスは、個別の認証パスを作成することです。

  • Azure DevOps Services: Microsoft Entra ID OAuth を使用します。
  • Azure DevOps Server: Windows 認証または個人用アクセス トークンで .NET クライアント ライブラリを使用します。

requestContextメソッドを使用してサービスの種類を検出し、適切な認証方法を適用します。

サービス アカウントが Azure DevOps API にアクセスできないのはなぜですか?

サービス アカウントのアクセスに影響する可能性がある一般的な問題を次に示します。

  • サービス アカウントが "具体化" されていない: 正しいサインイン方法を使用します。 サービス アカウントには、対話型のサインインアクセス許可または適切な Microsoft Entra ID 登録が必要です。
  • アクセス許可が不十分: サービス アカウントに適切な Azure DevOps アクセス許可があることを確認します。
  • 認証方法: サービス アカウントとして認証するのではなく、サービス プリンシパルまたはマネージド ID を使用します。

個人用アクセス トークンから先進認証に移行するにはどうすればよいですか?

次の手順に従います。

  1. アプリケーションでの現在の個人用アクセス トークンの使用状況を特定します。

  2. 代替認証方法を選択します。

    • ユーザー委任シナリオ用の Microsoft Entra ID OAuth
    • サービス間のやり取りにおけるサービス プリンシパル
  3. Azure DevOps 移行認証サンプルを使用して認証コードを更新します。

  4. 個人用アクセス トークンの依存関係を削除する前に、変更を十分にテストします。

  5. 新しい認証方法を監視して検証します。

実装手順

シナリオの認証方法を選択したら、実装を完了します。