アプリとテナントのアーキテクチャについて

適用対象: 建築 家

アプリ モデルを選択するか、コンテナーの種類を作成する前に、この記事を使用してコア SharePoint Embedded アーキテクチャをマップします。

SharePoint Embedded は、Microsoft 365 上に構築された API 専用ストレージです。 アプリケーションは、ユーザー エクスペリエンスを提供します。 Filesとドキュメントはコンテナーに格納され、Microsoft Graph を介してアクセスされます。

アーキテクチャの概要

SharePoint Embedded では、次の 3 つの概念が分離されています。

  • Microsoft Graph を呼び出すアプリケーション。
  • アプリケーションのアクセス、動作、課金の説明責任を定義するコンテナーの種類。
  • Microsoft 365 テナント境界内に存在するコンテナーとファイル。

SharePoint Embedded 内のすべてのファイルとドキュメントは、コンテナーに格納されます。

すべてのコンテナーとコンテナー コンテンツは、Microsoft 365 テナント内に作成および格納されます。

アプリケーションは、Microsoft Graph を使用してコンテナーとコンテナー コンテンツを作成、管理、操作します。

SharePoint Embedded アーキテクチャの図。SharePoint Embedded アプリケーションは Microsoft Graph を呼び出し、Microsoft 365 テナント内のストレージに接続します。テナント内では、コンテナーの種類によってコンテナーのスタックがグループ化され、各コンテナーはファイルとドキュメントを保持します。

図 1: アプリケーションは Microsoft Graph を呼び出し、Graph は Microsoft 365 テナント境界内に存在するコンテナー内のファイルを読み取りおよび書き込みます。

開発者テナントとテナントの使用

SharePoint Embedded では、2 つのテナント ロールが使用されます。

テナント ロール 意味 一般的な責任
テナントの所有 コンテナーの種類が作成されるMicrosoft Entra ID テナント。 Microsoft Entra ID アプリの登録を所有し、コンテナーの種類を管理します。
テナントの使用 コンテナーの種類が使用されるMicrosoft Entra ID テナント。 アプリケーションのユーザーのコンテナーとコンテンツをホストします。

同じMicrosoft Entra IDテナントは、特定のコンテナーの種類の所有テナントと使用しているテナントの両方にすることができます。

たとえば、エンタープライズ 基幹業務 (LOB) アプリは、エンタープライズ テナントによって所有され、その同じテナントで使用できます。

独立系ソフトウェア ベンダー (ISV) アプリは、ISV テナントによって所有され、さまざまな顧客テナントで使用できます。

重要

コンテナーとコンテンツは、使用しているテナントに格納されます。 アプリが所有されているという理由だけで、開発者または ISV テナントに移動しません。

アプリの所有権

SharePoint Embedded アプリケーションは、Microsoft Entra ID アプリケーションの登録です。

コンテナーの種類に対する所有アプリケーションまたはゲスト アプリケーションとして、アプリはそのコンテナーの種類のコンテナーにアクセスできます。

SharePoint Embedded には、所有するアプリケーションとコンテナーの種類の間に 1 対 1 の関係が必要です。

これは、次のことを意味します。

  • 1 つの所有アプリが所有するコンテナーの種類は 1 つだけです。
  • コンテナーの種類は、1 つのアプリによって所有されます。
  • 所有するアプリ開発者は、そのコンテナーの種類の作成と管理を担当します。
  • 所有アプリは、その種類のコンテナーに対するゲスト アプリのアクセス制御を定義します。

注:

他のアプリケーションには同じコンテナーの種類へのアクセス権を付与できますが、コンテナーの種類にはまだ所有アプリケーションが 1 つだけあります。

コンテナーの種類

コンテナーの種類は、SharePoint Embedded リソースです。

アプリケーションとコンテナーのセット間の関係、アクセス権限、課金アビリティを定義します。

また、その型のすべてのコンテナーに対して選択した動作も定義します。

コンテナーの種類は、変更できないプロパティとして各コンテナーで表されます。

コンテナーの種類を使用して、次のアーキテクチャの質問に回答します。

  • このコンテナー ファミリを所有しているアプリはどれですか?
  • 課金に対して責任を負うテナントはどれですか?
  • この種類のすべてのコンテナーに適用される動作設定はどれですか?

詳細については、「コンテナーの 種類とコンテナーについて」を参照してください。

コンテナーの種類の登録リソース

コンテナーの種類の登録は、SharePoint Embedded リソースでもあります。

これは、特定の使用しているテナントでのコンテナーの種類のインストールを表します。 また、その特定の使用テナント内のその種類のすべてのコンテナーに対して選択した動作も定義します。

コンテナーの種類の登録を使用して、次のアーキテクチャの質問に回答します。

  • 使用しているテナントでこの種類のコンテナーにアクセスできるアプリはどれですか?
  • この種類のコンテナーを作成できるテナントはどれですか?
  • 使用しているテナント内のこの種類のすべてのコンテナーに適用される動作設定はどれですか?

詳細については、「コンテナーの 種類とコンテナーについて」を参照してください。

Containers

コンテナーは、SharePoint Embedded の基本的なストレージ ユニットです。

コンテナーは、セキュリティとコンプライアンスの境界も定義します。

アプリケーションは、使用している各テナント内のコンテナーの種類に対して多数のコンテナーを作成できます。

各コンテナーには、ファイルを格納する場所が用意されています。 これは、SharePoint Online の API 専用ドキュメント ライブラリと同様で、SharePoint Embedded に固有の違いがあると考えることができます。

コンテナーには、SharePoint Embedded の制限に従って、多数のファイルと数テラバイトのコンテンツを格納できます。

現在の制限については、「 制限と呼び出しパターンについて」を参照してください。

ファイルのライブ場所

使用しているテナントが SharePoint Embedded アプリを使用する場合、SharePoint Embedded はその Microsoft 365 テナントにストレージ パーティションを作成します。

パーティションには SharePoint Online ユーザー エクスペリエンスがありません。

パーティション内のドキュメントには、API とアプリが提供するコンテンツ エクスペリエンスを通じてアクセスできます。

Filesコンシューマーの Microsoft 365 テナント境界内に残ります。

使用しているテナントの Microsoft 365 設定は、サポートされている Microsoft Purview セキュリティポリシーやコンプライアンス ポリシーなど、アプリ ドキュメントに適用されます。

ガバナンス計画については、「 セキュリティ、コンプライアンス、ガバナンスを計画する」を参照してください。

コンテナーの種類の登録

所有しているアプリは、その使用しているテナントにコンテナーの種類が登録されるまで、使用しているテナント内のコンテナーと対話できません。

コンテナーの種類の登録は、所有しているアプリケーションによって実行されます。

登録は、所有しているアプリとゲスト アプリが、使用しているテナント内のそのコンテナーの種類のコンテナーに対して持つアクセス許可を指定します。

完全な登録要件については、「 ファイル ストレージ コンテナーの種類のアプリケーションのアクセス許可を登録する」を参照してください。

アクセス関係

コンテナーとコンテンツへのアプリケーションのアクセスは、コンテナーの種類の登録中に構成されたアクセス許可によって決まります。

所有するアプリケーションは、コンテナーの種類が作成されるときに、そのコンテナーの種類に対するアクセス許可を受け取ります。 ただし、使用しているテナントでの登録後にのみ、コンテナーの種類のコンテナーと対話できます。

次の図は、専用パターンを示しています。 2 つの独立系ソフトウェア ベンダー (ISV) アプリ (アプリ 1 とアプリ 2) と 1 つの基幹業務 (LOB) アプリ (アプリ 3) の 3 つのアプリケーションが 1 つのテナントにデプロイされます。 各アプリは個別のコンテナーの種類を所有しており、所有するコンテナーの種類のコンテナーのスタックにのみアクセスできます。

専用アクセス パターンの図。3 つのアプリケーション (アプリ 1、アプリ 2、およびアプリ 3) はそれぞれ個別のコンテナーの種類を所有しており、各アプリは独自のコンテナーのスタックにのみアクセスできます。他のアプリのコンテナーに到達できるアプリはありません。

図 2: 専用アクセス。 各アプリケーションは、1 つのコンテナーの種類を所有し、独自のコンテナーにのみ到達します。

SharePoint Embedded では、コンテナーの種類の登録でアクセス許可が付与されている場合に、アプリケーションが所有していないコンテナーのコンテナーにアクセスすることもできます。

次の図は、共有パターンを示しています。 アプリ 1 とアプリ 2 はどちらも同じコンテナーの種類にアクセスできるため、両方のアプリが同じコンテナーのスタックにアクセスできます。

共有アクセス パターンの図。アプリ 1 とアプリ 2 はどちらも、1 つのコンテナーの種類とそのコンテナーのスタックに接続します。アプリ 1 はコンテナーの種類を所有し、アプリ 2 には同じコンテナーの種類へのゲスト アクセスが付与されます。

図 3: 共有アクセス。 あるアプリがコンテナーの種類を所有し、別のアプリに同じコンテナーへのアクセス権が付与されます。

アプリケーションのアクセス許可とユーザー コンテナーのアクセス許可の両方を使用して、アクセス モデルを計画します。

詳細については、「 認証とアクセス許可を計画する」を参照してください。

一般的なアーキテクチャ パターン

エンタープライズ LOB アプリ

エンタープライズ LOB アプリでは、次の手順を実行します。

  • 通常、エンタープライズ テナントはアプリの登録を所有しています。
  • エンタープライズ テナントは、コンテナーの種類を作成します。
  • 同じエンタープライズ テナントがアプリを使用します。
  • コンテナーとファイルは、エンタープライズ テナントに格納されます。
  • エンタープライズ管理者は、課金、コンプライアンス、テナントの設定を管理します。

このモデルは、アプリが 1 つのorganizationで内部使用用に構築されている場合に使用します。

ISV マルチテナント アプリ

ISV アプリでは、次の手順を実行します。

  • ISV テナントはアプリの登録を所有しています。
  • ISV テナントは、コンテナーの種類を作成します。
  • 顧客テナントはアプリを使用します。
  • コンテナーとファイルは、各顧客テナントに格納されます。
  • 顧客テナント設定は、その顧客のコンテンツに適用されます。

1 つのアプリが複数の顧客テナントで使用されている場合は、このモデルを使用します。

次の図は、有効な例を示しています。 Contoso は、SharePoint Embedded に人事アプリを構築し、監査会社 Fabrikam にデプロイした ISV です。 Fabrikam は独自の LOB 監査アプリも構築しました。 各アプリには独自のコンテナーの種類があります。Contoso は HR アプリとそのコンテナーの種類を所有し、Fabrikam は監査アプリとそのコンテナーの種類を所有しています。 Fabrikam は両方のアプリの消費テナントであるため、両方のコンテナー スタックは Fabrikam の Microsoft 365 テナントに格納されます。 Fabrikam は、Hr App データを含め、Microsoft 365 テナントに格納されているすべてのデータを所有しています。

動作する ISV の例の図。Contoso の HR アプリケーションとそのコンテナーの種類は、Contoso 所有テナントにあります。Contoso の HR アプリと Fabrikam の LOB 監査アプリの両方が Fabrikam の使用テナントで動作し、各アプリのコンテナー スタックが個別に格納されます。

図 4: ISV アプリ (Contoso) と LOB アプリ (Fabrikam) はそれぞれコンテナーの種類を所有し、両方とも同じ使用テナント (Fabrikam) にコンテナーを格納します。

モデルの選択については、「 アプリ モデルの選択: シングルテナントまたはマルチテナント」を参照してください。

計画チェックリスト

  • 所有しているテナントを特定します。
  • 使用している各テナントを特定します。
  • Microsoft Entra IDアプリの登録が存在する場所を確認します。
  • コンテナーの種類を所有するアプリ登録を確認します。
  • 他のゲスト アプリにアクセスが必要かどうかを決定します。
  • コンテナーを作成する場所を決定します。
  • コンテンツが使用しているテナントに残っている必要があることを確認します。
  • 使用しているテナントごとにコンテナーの種類の登録を計画します。
  • コンテナーの種類の課金を計画します。
  • 認証と管理者の同意を計画します。
  • セキュリティとコンプライアンスの責任を計画します。

次の手順

テナントと顧客の関係に一致するアプリ モデルを選択する: アプリ モデル (シングルテナントまたはマルチテナント) を選択します。