次の方法で共有


Azure DevOps - Git とサービス プリンシパルの統合

この記事では、Microsoft Fabric と Azure DevOps を統合するためのサービス プリンシパルを設定する方法の詳細なガイドを提供します。 この統合により、Fabric ユーザーはサービス プリンシパルを使用して Git 操作を実行できます。 サービス プリンシパルで API を使用して Git 統合を自動化するには、「API を使用した Git 統合の自動化」を参照してください。

[前提条件]

アプリケーションを Microsoft Entra テナントに登録し、それを使用して Fabric ワークスペースを Git と統合するには、次のものが必要です。

手順 1: Microsoft Entra ID を使用してアプリケーションを登録する

Microsoft Entra ID でアプリケーションを登録し、「アプリの登録」の指示に従ってシークレット を作成します。 組織のポリシーで、クライアント シークレットの作成とトークン取得での使用が許可されていることを確認します。 シークレットは必ず保存してください。後の手順で必要になります。

Azure DevOps インスタンスのホームと同じではないテナントにアプリケーションが存在する場合は、「 マルチテナントの考慮事項」を参照してください。

シークレットは必ず保存してください。 これは、後の手順で使用します。

詳細については、「 Microsoft Entra ID のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」および「Microsoft Entra IDアプリケーション プロパティのセキュリティのベスト プラクティス」を参照してください。

アプリケーション登録とサービス プリンシパルの作成の例については、「 Microsoft Entra アプリの登録とサービス プリンシパルの作成」を参照してください。

手順 2: DevOps 組織にサービス プリンシパルを割り当てる

アプリケーションとサービス プリンシパルを作成したら、それを Azure DevOps 組織に追加してリソースへのアクセスを許可する必要があります。

  1. Azure DevOps 組織にログインする
  2. [組織の設定] -> [ユーザー] -> [ユーザーの追加] に移動する
  3. サービス プリンシパルを追加するために選択します

Azure DevOps ポータルのスクリーンショット。

  1. 関連する Azure DevOps プロジェクト設定 ->Teams に移動します
  2. 関連するチームにサービス プリンシパルを追加する

手順 3: Azure DevOps ソース管理接続を作成する

次に、Azure DevOps ソース管理接続を作成します。 この手順を完了するには、次の情報が必要です。

テナント ID を取得する

テナント ID を取得するには、次の手順を使用します。

  1. Azure portal に移動し、資格情報でサインインします。
  2. Microsoft Entra ID (Azure Active Directory) に移動します
  3. [概要] セクションに、"テナント ID" が一覧表示されます。

Azure portal のテナント ID のスクリーンショット。

テナント ID を取得するその他の方法については、「 Microsoft Entra テナント ID を検索する方法」を参照してください。

サービス プリンシパル ID を取得する

サービス プリンシパル ID を取得するには、次の手順を使用します。

  1. Azure portal に移動し、資格情報でサインインします。
  2. Microsoft Entra ID (Azure Active Directory) に移動します
  3. 左側で、[アプリの登録] を選択します
  4. アプリに移動し、[概要] タブを選択する
  5. サービス プリンシパル ID 用にアプリケーション (クライアント) ID を使用する。

Azure portal でテナント ID を検索する場所を示すスクリーンショット。

ソース管理接続を作成する

ソース管理接続を作成するには、次の詳細と手順を使用します。

名前 Description
表示される名前 ソース管理接続の名前。 これは一意である必要があります。
Azure DevOps URL Azure DevOps 内のリポジトリへの URL。
認証方法 接続の認証方法。 サービス プリンシパルを選択する必要がある
テナント ID Azure DevOps が配置されているテナントの ID。 「 テナント ID の取得」セクションを 参照してください。
サービス主体 ID Azure portal のアプリの概要からのアプリケーション (クライアント) ID。 「 サービス プリンシパル ID の取得 」セクションを参照してください。
サービス主体キー これは、手順 1 で取得したシークレットです。
  1. ワークスペースから、ワークスペースの設定を選択する
  2. [Git 統合] を選択する
  3. Azure DevOps を選択する
  4. [アカウントの追加] をクリックします
  5. [ 表示名] に名前を入力します。
  6. Azure DevOps URL を入力します。
  7. [ 認証方法] で、[ サービス プリンシパル] を選択します。
  8. 上記の情報を使用して、他の詳細 (テナント ID、サービス プリンシパル ID、サービス プリンシパル キー) を入力します。

推奨される方法を使用した新しい接続のスクリーンショット。

  1. 接続を追加した後、 接続 をクリックして Git 接続の詳細を完了する必要があります。 詳細については、「ワークスペースへの接続」を参照してください。

サービス プリンシパルの作成に関するマルチテナントの考慮事項

Microsoft Entra テナントによってセキュリティ保護されたリソースにアクセスするには、アプリケーションにセキュリティ プリンシパルが必要です。 アプリケーションを作成すると、アプリケーションが存在するテナントでサービス プリンシパルが自動的に作成されます。

アプリケーション テナントが Azure DevOps インスタンスのホーム テナントと異なる場合は、Azure DevOps テナントでサービス プリンシパルを作成する必要があります。 手順 1 でアプリを登録するときに、次のシナリオを検討し、例を参照してください。

ADO が存在する可能性がある場所を示す図。

Scenario アプリケーションが次のように登録されている サービスプリンシパルの作成
1 - Fabric、DevOps、アプリケーションがすべて同じテナント内にある この組織ディレクトリ内のアカウントのみ:シングルテナントアプリ その他の要件はありません
2 - 同じテナント内の DevOps とアプリケーション この組織ディレクトリ内のアカウントのみ:シングルテナントアプリ その他の要件はありません
3 - 1つのテナントに含まれるファブリックとアプリケーション、別のテナントにあるDevOps 任意の組織ディレクトリのアカウント - マルチテナント アプリ Azure DevOps テナントで SP を作成します。 例を参照してください。
4 - Fabric、DevOps、およびアプリケーションはすべて異なるテナントに存在する 任意の組織ディレクトリのアカウント - マルチテナント アプリ Azure DevOps テナントで SP を作成します。 例を参照してください。

いずれかの例を使用して、Azure DevOps テナントにサービス プリンシパルを作成できます。 次の例は、Azure CLI と PowerShell を使用してこれを行う方法を示しています。 どちらの例も、アプリケーションがテナント A にあり、Azure DevOps がテナント B にあることを前提としています。


az login --tenant <your-tenant-id> # where --tenant is the tenant ID of Azure DevOps tenant (tenant B)

az ad sp create --id <app id> # where --id <app id> is the client ID of the application in tenant A

詳細については、「Microsoft Entra ID にアプリケーションが追加される方法と理由」および「Microsoft Entra ID のテナンシー」を参照してください。

付録: サービス プリンシパル接続の詳細を編集する

サービス プリンシパル キーの更新など、サービス プリンシパルの詳細を更新する必要がある場合は、次の手順を使用します。

  1. ファブリック設定で、[接続とゲートウェイの管理] に移動します。 前に作成したクラウド接続を見つけます。
  2. 更新された設定で接続を編集します。

既存の接続を編集する代わりに新しい接続を作成する場合は、左上隅にある [+新規 ] を選択して新しいクラウド接続を追加します。

  1. 接続の編集が完了したら、[ 保存] をクリックします。