テナント間アクセス機能を使用すると、プロバイダー テナントは、Fabric データ ウェアハウスと SQL 分析エンドポイントに格納されているデータをゲスト テナントと共有できます。 この機能は、ゲスト テナントとデータを共有する必要がある組織に役立ちます。 たとえば、会社 A が会社 B の Fabric データを格納する場合、会社 B はクロス テナント アクセスを使用して、会社 A の Fabric テナント内のデータにアクセスできます。 この記事は、テナント間アクセスを設定するプロバイダーを対象としています。
Von Bedeutung
- Fabric データ ウェアハウスのテナント間アクセスは、プロバイダー向けの限定的なプレビュー段階にあります。 テナント間データのプロバイダーとして登録するには、このフォームを送信 します。
- テナント間アクセスをゲストとして使用するには、「 ゲストのテナント間アクセス 」に記載されている手順に従い、信頼されたプロバイダーと連携する必要があります。
動作方法
テナント間アクセスを使用すると、ゲスト テナントはプロバイダーのデータ ウェアハウスと SQL 分析エンドポイントに格納されているデータにアクセスできます。 プロバイダーがゲスト テナントのプリンシパルがこの機能を使用できるようにすると、Fabric はプロバイダーのテナント内の各ゲストに対応するサービス プリンシパルを作成します。 その後、プロバイダーは、これらのサービス プリンシパルに対するアクセス許可をウェアハウスに付与します。 アクセス許可を持つゲストは、SQL Server Management Studio (SSMS) などのツールを使用して、独自の Entra ID ID 資格情報を使用してデータ ウェアハウス エンドポイントにアクセスできます。 これを行うために、ゲストはホーム組織に対して認証を行い、データ ウェアハウス エンドポイントへのアクセスが承認されます。
B2B とは異なり、Fabric データ ウェアハウスでテナント間アクセスを使用しても、ゲストにプロバイダー ディレクトリへのアクセスは許可されません。 プロバイダーは、個々のゲスト ユーザーを管理する必要はありません。プロバイダーがテナント間アクセス用にグループを構成する場合、グループ メンバーシップはゲスト テナントによって管理されます。
プロバイダーが OneLake データを別の Fabric テナントとインプレースで共有できる Fabric の外部データ共有機能とは異なり、この機能を使用すると、プロバイダーは Fabric を持たないゲストとデータ ウェアハウスを共有できます。
プロバイダーの責任
(プロバイダー) テナントでテナント間アクセス機能を使用するために、ゲスト テナントが同意していることを確認します。 ゲスト テナントは、 ゲストのテナント間アクセスに関するページに記載されている手順に従う必要があります。
テナント間アクセス用にゲスト プリンシパルを構成します。
テナント間アクセスに対してゲスト プリンシパルを有効にすると、Fabric は、プロバイダーのテナント内の各ゲストに対応するサービス プリンシパルと、各ゲスト グループのグループを作成します。 プロバイダーは、これらのサービス プリンシパルに対して、ウェアハウスに対するワークスペース ロールまたはアクセス許可を付与する必要があります。
ゲスト プリンシパルは、TDS エンドポイントを使用してテナント間データ ウェアハウスにアクセスし、データ ウェアハウスへの接続文字列が必要になります。 プロバイダーは、この接続文字列をゲストに提供する必要があります。 テナント間アクセスの接続文字列は、テナント内のアクセスに使用される接続文字列とは異なります。
テナント間アクセス用にゲスト プリンシパルを構成する
テナント間アクセス用にゲスト プリンシパルを構成する
POST https://api.fabric.microsoft.com/v1/admin/crosstenantauth/mappings
サポートされている ID: ユーザーとサービス プリンシパル
必要なアクセス許可: この API を呼び出すユーザーは、ファブリック管理者ロールに含まれている必要があります。
サービス プリンシパルがプロバイダー テナントで作成されたテナント間マッピングを作成、一覧表示、削除できるようにするには、Fabric アプリケーションに Group.Create Microsoft Graph アクセス許可が必要です。 Fabric アプリケーションに Group.Create アクセス許可を付与するには、次の記事を参照してください。
Fabric パブリック API、Fabric 読み取り API、および更新 API を呼び出すには、サービス プリンシパルを有効にする必要があります。
リクエストの本文
名前 | で | 必須 | タイプ | 説明 |
---|---|---|---|---|
ID | 体 | イエス | 糸 | ゲスト アプリケーションまたはグループのオブジェクト ID |
テナントID | 体 | イエス | 糸 | ゲスト テナント ID |
型 | 体 | イエス | 糸 | ユーザーまたはグループ |
user詳細 | 体 | イエス | JSON または複合 | ゲスト テナント ユーザーの詳細 |
ユーザープリンシパル名 | 体 | イエス | 糸 | ゲスト ユーザーのプリンシパル名 |
グループ詳細 | 体 | イエス | JSON または複合 | ゲスト テナント グループの詳細 |
グループタイプ | 体 | イエス | 糸 | ゲスト テナント グループの種類。使用できない場合は "不明" を送信します |
メール | 体 | イエス | 糸 | ゲスト テナント グループの電子メール |
サンプル要求本文
ユーザーマッピングのリクエスト本文
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "{guest tenant id}",
"type": "User",
"userDetails": {
"userPrincipalName": "user@contoso.com"
}
}
サービス プリンシパル マッピングの要求本文
{
"id": "{object id of the Enterprise application}",
"tenantId": " {guest tenant id} ",
"type": "User"
}
「グループマッピング」のリクエスト本文
{
"id": "00000000-0000-0000-0000-000000000000",
"tenantId": "{guest tenant id}",
"type": "Group",
"groupDetails": {
"groupType": "Unknown",
"email": "groupemail@contoso.com"
}
}
グループに電子メールがない場合の、グループ マッピングの要求本文
{
"id": "{object id of the group}",
"tenantId": "{guest tenant id}",
"type": "Group"
}
応答コード
応答コード | 注 |
---|---|
200 OK(正常に処理されました) | ゲスト グループまたはプリンシパルがテナント間アクセス用に構成されました |
400 要求が正しくありません | ゲスト プリンシパルが解決できない |
401 権限がありません | ゲスト テナントが同意していない |
429 要求が多すぎます | 要求が多すぎます。50回/分が上限です。 |
テナント間アクセスが有効になっているゲスト プリンシパルの一覧を取得する
GET https://api.fabric.microsoft.com/v1/admin/crosstenantauth/mappings
サポートされている ID: ユーザーとサービス プリンシパル
必要なアクセス許可: この API を呼び出すユーザーは、ファブリック管理者ロールに含まれている必要があります。
サービス プリンシパルがプロバイダー テナントで作成されたテナント間マッピングを作成、一覧表示、削除できるようにするには、Fabric アプリケーションに Group.Create Microsoft Graph アクセス許可が必要です。 Fabric アプリケーションに Group.Create アクセス許可を付与するには、次の記事を参照してください。
Fabric パブリック API、Fabric 読み取り API、および更新 API を呼び出すには、サービス プリンシパルを有効にする必要があります。
応答コード
応答コード | 注 |
---|---|
200 OK(正常に処理されました) | マッピングが存在しない場合、API は空のリストを返します |
404 見つかりません | |
401 権限がありません | |
429 要求が多すぎます | 要求が多すぎます。50回/分が上限です。 |
テナント間アクセスが有効になっているゲスト プリンシパルを削除する
DELETE https://api.fabric.microsoft.com/v1/admin/crosstenantauth/mappings/{mappingId}
サポートされている ID: ユーザーとサービス プリンシパル
必要なアクセス許可: この API を呼び出すユーザーは、ファブリック管理者ロールに含まれている必要があります。
サービス プリンシパルがプロバイダー テナントで作成されたテナント間マッピングを作成、一覧表示、削除できるようにするには、Fabric アプリケーションに Group.Create Graph アクセス許可が必要です。 Fabric アプリケーションに Group.Create アクセス許可を付与するには、次の記事を参照してください。
Fabric パブリック API、Fabric 読み取り API、および更新 API を呼び出すには、サービス プリンシパルを有効にする必要があります。
この API が呼び出されると、ゲスト プリンシパル用に作成されたグループとサービス プリンシパルはすぐに動作を停止しますが、マッピングは 1 日以上データベースに残り、GET マッピング API 応答に表示されます。
リクエストの本文
名前 | で | 必須 | タイプ | 説明 |
---|---|---|---|---|
マッピングID | 経路 | イエス | 糸 | マッピング識別子 |
応答コード
応答コード | 注 |
---|---|
200 OK(正常に処理されました) | |
404 見つかりません | |
401 権限がありません | |
429 要求が多すぎます | 要求が多すぎます。50回/分が上限です。 |
ワークスペースのロールまたはアクセス許可をサービス プリンシパルに付与する
プロバイダー テナントから許可されているユーザーは、[ワークスペース ロールの割り当ての追加] REST API または Fabric UI を使用して、ゲスト プリンシパルを表すために作成されたグループまたはサービス プリンシパルにワークスペース ロールを付与できます。 また、データ ウェアハウスをグループやサービス プリンシパルと共有することもできます。
ゲスト プリンシパルで使用できる SQL 接続文字列を取得する
プロバイダー テナントから許可されているユーザーは、この API を呼び出して、特定のゲスト テナントの指定されたワークスペースの SQL 接続文字列を取得できます。
- サポートされている ID: ユーザー、サービス プリンシパル、およびマネージド ID
- 必要なアクセス許可: 呼び出し元にはビューアー以上のワークスペース ロールが必要です
GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/warehouses/{warehouseId}/connectionString?guestTenantId={guestTenantId}&privateLinkType={privateLinkType}
リクエストの本文
名前 | で | 必須 | タイプ | 説明 |
---|---|---|---|---|
warehouseId | 経路 | 正しい | 糸 | 倉庫識別子 |
ワークスペースID | 経路 | 正しい | 糸 | ワークスペース ID |
guestTenantId (ゲストテナントID) | クエリ | 糸 | エンド ユーザーのテナントがウェアハウス テナントと異なる場合のゲスト テナント ID | |
プライベートリンクタイプ | クエリ | 糸 | なし (プライベート リンクまたはテナント レベルのプライベート リンクなし) またはワークスペース (ワークスペースのプライベート リンク) |
応答コード
応答コード | 注 |
---|---|
200 OK(正常に処理されました) | 応答で接続文字列を返します |
404 見つかりません | ItemNotFound - 要求された項目が見つかりませんでした。 InvalidGuestTenantId - 指定されたゲスト テナント ID が存在しません |
応答本文の例
{
"connectionString": "DW connection string"
}
テナント間アクセスのガバナンス
テナント間認証マッピングの取得 API を使用 する - GET テナント間認証マッピング API を使用して、テナント内のウェアハウスと SQL エンドポイントにアクセスできる可能性があるゲスト テナントのユーザーとグループを確認できます。 これらのユーザーには、アイテムに対するアクセス許可も付与する必要があります。
Purview で監査ログを使用する - Microsoft Purview ハブに移動します。ここでは、次のイベントの種類を検索して、CRUD とトークン生成アクティビティをプロバイダーとしてマッピングする方法に関する詳細情報を取得できます。
- テナント間認証マッピングを作成しました
- テナント間認証マッピングの一覧
- テナント間認証マッピングを削除しました
- クロス テナント認証トークンを作成しました
- ゲストテナントのデータをクリアしてテナント間認証 (ゲストテナントによる同意の失効後にマッピングが削除されたときに生成されます)
ゲスト テナントでは、次のイベントの種類を確認できます。
- テナント間認証の同意
- テナント間認証の許諾を撤回する
Microsoft Entra で作成されたサービス プリンシパルとグループを管理 する (グローバル管理者、アプリ管理者、またはその他の高い特権ユーザーのみ) - Microsoft Entra で作成されたサービス プリンシパルとグループを確認して、ゲスト テナント プリンシパルがテナント間データにアクセスできるようにすることもできます。 サインイン ログ (サービス プリンシパル サインイン) などの他の Azure エクスペリエンスには、ゲスト テナント ユーザーのサインイン アクティビティに対応するサービス プリンシパルのサインインの詳細が表示されます。 Microsoft Entra 監査ログでは、Fabric によって実行されるグループ作成アクティビティに関する情報も提供されます。 テナント間アクセス用に Fabric によって作成された Fabric ID アプリケーションとアプリ登録は、変更または削除しないでください。 テナント間アクセス用に作成された FabricIdentity を削除する場合、プロバイダーはマッピングを削除する必要があります。
ゲストの責任
プロバイダーと共に Fabric データ ウェアハウスのテナント間アクセス機能を使用することに同意する前に、プロバイダーを信頼してください。 ゲスト テナントは、 ゲストのクロステナント アクセス に関する記事に記載されている手順に従う必要があります。
ゲスト テナントは、テナント間アクセス用に構成された Microsoft Entra グループの作成と管理を担当します。
ゲスト テナントは、ユーザーの条件付きアクセスまたは MFA ポリシーの管理を担当します。 これらのポリシーは、ゲスト ユーザーがテナント間データ ウェアハウスにアクセスしようとしたときに適用されます。
制限事項と考慮事項
サービス プリンシパルがプロバイダー テナントで作成されたテナント間マッピングを作成、一覧表示、削除できるようにするには、Fabric アプリケーションにグループが必要です。 Graph の作成アクセス許可。 次のドキュメントを参照して、グループへの権限付与を行ってください。 Fabric アプリケーションへのアクセス許可を作成します。
ゲスト テナントの条件付きアクセスまたは MFA ポリシーは、ゲスト ユーザーによるサインイン時に適用されます。
ゲスト テナントは、テナント間アクセス用に構成された Microsoft Entra グループの作成と管理を担当します。
Fabric は、テナント間アクセス用に 1 時間ごとに構成されたゲスト グループのグループ拡張を実行します。 つまり、ユーザーがゲスト テナントのグループに追加され、グループがテナント間アクセス用に既に構成されている場合、このユーザーがテナント間データ ウェアハウスにアクセスできるようになるまで最大 1 時間かかる場合があります。
ゲストがグループのメンバーシップを介してアクセス許可を取得した場合、アクセス許可の変更がデータ ウェアハウスに反映されるまでに最大 1 時間かかる場合があります。 ユーザーに直接アクセス許可が付与されている場合 (つまり、グループを通じてではなく)、データ ウェアハウスに対するアクセス許可の変更が直ちに反映されます。
SPN のリソース制限とリサイクル - テナント間ユーザー用に作成されたサービス プリンシパルとグループは、プロバイダー テナントのリソース制限に影響します。 詳細については、Microsoft Entra ID の制限を参照してください。 Fabric では、テナント間アクセス用に最大 100,000 個のサービス プリンシパルを作成できますが、この前にリソースの制限が使い果たされる可能性があります。 ゲストが 5 日間にわたってウェアハウスにログインしない場合は、このゲスト プリンシパルに関連付けられているサービス プリンシパルを削除して、リソースの制限を制御します。
ゲストは公開 API を実行できません。 テナント間ユーザー用に作成されたサービス プリンシパルとグループは、現在、公開 API を実行できません。 これは、監査、スナップショット、および SQL プールに適用されます。 たとえば、スナップショットを作成できるのはプロバイダー テナントのユーザーだけです。ゲスト ユーザーは API を実行して作成することはできませんが、スナップショットに対してクエリを実行できます。 同様に、ゲスト ユーザーは監査 TVF のみを実行できますが、ログを有効または無効にする API は実行できません。
ゲスト テナントが同意を取り消すと、ゲストは 1 日以内にプロバイダー テナント内のウェアハウスにアクセスできなくなります。 ただし、既存のセッションは影響を受けません。
特定の状況では、ゲスト プリンシパルがテナント間アクセス用に構成された後、数時間にわたって、ゲスト プリンシパルがテナント間データ ウェアハウスにアクセスできない場合があります。