この記事では、Microsoft Fabric と Azure DevOps を統合するためのサービス プリンシパルを設定する方法の詳細なガイドを提供します。 この統合により、Fabric ユーザーはサービス プリンシパルを使用して Git 操作を実行できます。 サービス プリンシパルで API を使用して Git 統合を自動化するには、「API を使用した Git 統合の自動化」を参照してください。
[前提条件]
アプリケーションを Microsoft Entra テナントに登録し、それを使用して Fabric ワークスペースを Git と統合するには、次のものが必要です。
- 少なくとも クラウド アプリケーション管理者 のアクセス許可。
- 管理者アクセス許可を持つ Fabric ワークスペース。
手順 1: Microsoft Entra ID を使用してアプリケーションを登録する
Microsoft Entra ID でアプリケーションを登録し、「アプリの登録」の指示に従ってシークレット を作成します。 組織のポリシーで、クライアント シークレットの作成とトークン取得での使用が許可されていることを確認します。 シークレットは必ず保存してください。後の手順で必要になります。
Azure DevOps インスタンスのホームと同じではないテナントにアプリケーションが存在する場合は、「 マルチテナントの考慮事項」を参照してください。
注
シークレットは必ず保存してください。 これは、後の手順で使用します。
詳細については、「 Microsoft Entra ID のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」および「Microsoft Entra ID の アプリケーション プロパティのセキュリティのベスト プラクティス」を参照してください。
アプリケーション登録とサービス プリンシパルの作成の例については、「 Microsoft Entra アプリの登録とサービス プリンシパルの作成」を参照してください。
手順 2: DevOps 組織にサービス プリンシパルを割り当てる
アプリケーションとサービス プリンシパルを作成したら、それを Azure DevOps 組織に追加してリソースへのアクセスを許可する必要があります。
- Azure DevOps 組織にログインする
- [組織の設定] -> [ユーザー] -> [ユーザーの追加] に移動する
- サービス プリンシパルを追加するために選択します
- 関連する Azure DevOps プロジェクト設定 ->Teams に移動します
- 関連するチームにサービス プリンシパルを追加する
手順 3: Azure DevOps ソース管理接続を作成する
次に、Azure DevOps ソース管理接続を作成します。 この手順を完了するには、次の情報が必要です。
テナント ID を取得する
テナント ID を取得するには、次の手順を使用します。
- Azure portal に移動し、資格情報でサインインします。
- Microsoft Entra ID (Azure Active Directory) に移動します
- [概要] セクションに、"テナント ID" が一覧表示されます。
テナント ID を取得するその他の方法については、「 Microsoft Entra テナント ID を検索する方法」を参照してください。
サービス プリンシパル ID を取得する
サービス プリンシパル ID を取得するには、次の手順を使用します。
- Azure portal に移動し、資格情報でサインインします。
- Microsoft Entra ID (Azure Active Directory) に移動します
- 左側で、[アプリの登録] を選択します
- アプリに移動し、[概要] タブを選択する
- サービス プリンシパル ID 用にアプリケーション (クライアント) ID を使用する。
ソース管理接続を作成する
ソース管理接続を作成するには、次の詳細と手順を使用します。
| 名前 | Description |
|---|---|
| 表示される名前 | ソース管理接続の名前。 これは一意である必要があります。 |
| Azure DevOps URL | Azure DevOps 内のリポジトリへの URL。 |
| 認証方法 | 接続の認証方法。 サービス プリンシパルを選択する必要がある |
| テナント ID | Azure DevOps が配置されているテナントの ID。 「 テナント ID の取得」セクションを 参照してください。 |
| サービス主体 ID | Azure portal のアプリの概要からのアプリケーション (クライアント) ID。 「 サービス プリンシパル ID の取得 」セクションを参照してください。 |
| サービス主体キー | これは、手順 1 で取得したシークレットです。 |
- ワークスペースから、ワークスペースの設定を選択する
- [Git 統合] を選択する
- Azure DevOps を選択する
- [アカウントの追加] をクリックします
- [ 表示名] に名前を入力します。
- Azure DevOps URL を入力します。
- [ 認証方法] で、[ サービス プリンシパル] を選択します。
- 上記の情報を使用して、他の詳細 (テナント ID、サービス プリンシパル ID、サービス プリンシパル キー) を入力します。
- 接続を追加した後、 接続 をクリックして Git 接続の詳細を完了する必要があります。 詳細については、「ワークスペースへの接続」を参照してください。
サービス プリンシパルの作成に関するマルチテナントの考慮事項
Microsoft Entra テナントによってセキュリティ保護されたリソースにアクセスするには、アプリケーションにセキュリティ プリンシパルが必要です。 アプリケーションを作成すると、アプリケーションが存在するテナントでサービス プリンシパルが自動的に作成されます。
アプリケーション テナントが Azure DevOps インスタンスのホーム テナントと異なる場合は、Azure DevOps テナントでサービス プリンシパルを作成する必要があります。 手順 1 でアプリを登録するときに、次のシナリオを検討し、例を参照してください。
| 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 のテナンシー」を参照してください。
付録: サービス プリンシパル接続の詳細を編集する
サービス プリンシパル キーの更新など、サービス プリンシパルの詳細を更新する必要がある場合は、次の手順を使用します。
- ファブリック設定で、[接続とゲートウェイの管理] に移動します。 前に作成したクラウド接続を見つけます。
- 更新された設定で接続を編集します。
注
既存の接続を編集する代わりに新しい接続を作成する場合は、左上隅にある [+新規 ] を選択して新しいクラウド接続を追加します。
- 接続の編集が完了したら、[ 保存] をクリックします。