適切な認証メカニズムを選択する

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019 |TFS 2018

Azure DevOps Servicesとインターフェイスするアプリケーションの場合は、REST API などのリソースにアクセスするために認証する必要があります。 Azure DevOps Servicesは、アプリケーションを認証するためのさまざまな方法を提供することを理解しています。 この記事では、アプリケーションに適した認証を選択するのに役立つガイダンスを提供します。 次の表は、さまざまなアプリケーションの種類に対して推奨される認証メカニズムの概要を示しています。 作業を開始するには、次の基本的な説明、例、およびコード サンプルを参照してください。

アプリケーションの種類 説明 認証メカニズム コード サンプル
対話型クライアント側 (REST) ユーザーの操作を許可し、REST API Azure DevOps Services呼び出すクライアント アプリケーション 組織内のプロジェクトを列挙するコンソール アプリケーション Microsoft Authentication Library (MSAL) sample
対話型クライアント側 (クライアント ライブラリ) ユーザー操作を許可するクライアント アプリケーションAzure DevOps Servicesクライアント ライブラリを呼び出す 現在のユーザーに割り当てられているバグを列挙するコンソール アプリケーション クライアント ライブラリ sample
対話型 JavaScript GUI ベースの JavaScript アプリケーション ユーザーのプロジェクト情報を表示する AngularJS シングル ページ アプリ JavaScript 用 Microsoft Authentication Library (MSAL JS) sample
個人用アクセス トークン (PAT) 通常の OAuth トークンに代わる簡単な方法。 パスワードの代わりに PAT を使用します。 なで
非対話型クライアント側 ヘッドレス テキストのみのクライアント側アプリケーション ユーザーに割り当てられているすべてのバグを表示するコンソール アプリ デバイス プロファイル sample
Azure DevOps を対象とする対話型クライアント側アプリ ユーザー操作を許可するクライアント アプリケーションで Azure DevOps ユーザーを認証する Azure DevOps ユーザーが割り当てられたバグを表示できるようにするコンソール アプリケーション クライアント ライブラリ (対話型およびWindows 認証) sample
対話型 Web GUI ベースの Web アプリケーション ビルドの概要を表示するカスタム Web ダッシュボード OAuth sample
Azure DevOps Server アプリケーション クライアント OM ライブラリを使用してアプリをAzure DevOps Serverする チームバグダッシュボードを表示するAzure DevOps Server拡張機能 クライアント ライブラリ sample
Azure DevOps Services拡張機能 Azure DevOps Services拡張機能 アジャイル カード VSS Web 拡張機能 SDK サンプルのチュートリアル

Note

Azure DevOps API では、サービス プリンシパルを介した非対話型サービス アクセスはまだサポートされていませんが、 ロードマップに掲載されています。 非対話型アプリケーション (バックグラウンド ジョブなど、エンド ユーザーが対話形式で認証できない場合) から Azure DevOps API を呼び出す必要がある場合は、個人用アクセス トークン (PAT) を使用する必要があります。 これはセキュリティ資格情報であるため、PAT は Azure Key Vault などのセキュリティで保護されたストレージに格納する必要があります。 可能であれば、非対話型アプリケーションはマネージド ID を使用してKey Vaultにアクセスし、アプリケーションがシークレットや資格情報を格納する必要がないようにする必要があります。

セキュリティと ID の管理方法の詳細については、「 セキュリティと ID について」を参照してください。

資格情報の格納方法の詳細については、「 Azure DevOps の資格情報ストレージ」を参照してください。

IIS 基本認証を有効にすると、Azure DevOps Serverの AT を使用して無効になります

オンプレミスの Azure DevOps で IIS 基本認証を使用する方法の詳細について説明します。

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

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

A: サービス アカウントに "具体化" されていない可能性があります。対話型サインインのアクセス許可を持たないサービス アカウントではサインインできないため、 この回避策を確認してください。

Q: 対話型のクライアント側アプリケーションを作成しています。 Azure DevOps Services クライアント ライブラリまたは Azure DevOps Services REST API を使用する必要がありますか?

A: Azure DevOps Services リソースにアクセスするときは、REST API に対して Azure DevOps Services クライアント ライブラリを使用することをお勧めします。 REST エンドポイントに対するバージョンの変更が発生すると、よりシンプルで保守が容易になります。 クライアント ライブラリに機能がない場合は、 MSAL が REST API で使用するのに最適な認証メカニズムです。

Q: このガイダンスはAzure DevOps Servicesに対してのみですか、それともオンプレミスのAzure DevOps Server ユーザーにも関連していますか?

A: このガイダンスは、主にAzure DevOps Servicesユーザー向けです。 クライアント ライブラリは、Azure DevOps Server機能を拡張するために特別に構築された一連のパッケージです。 オンプレミス ユーザーの場合は、 クライアント ライブラリ、Windows 認証、または 個人用アクセス トークン (AT) を 使用してユーザーの認証を行うことをお勧めします。

Q: Azure DevOps ServerとAzure DevOps Servicesの両方でアプリケーションを認証する場合はどうすればよいでしょうか。

A: ベスト プラクティスは、Azure DevOps ServerとAzure DevOps Servicesに対して異なる認証パスを使用することです。 requestContext を使用して、ヒットしている対象を確認し、それぞれに最適なメカニズムを使用できます。 代わりに、統合ソリューションが必要な場合は、両方に対 して PAT が 機能します。