適用対象: 開発者
この記事を使用して、SharePoint Embedded アプリケーションの認証と承認を計画します。
SharePoint Embedded アプリケーションは、Microsoft Graph を使用してコンテナーとコンテンツにアクセスします。
完全な認証リファレンスについては、「 SharePoint Embedded の認証と承認」を参照してください。
コア 原則
SharePoint Embedded の認証と承認は、次の原則に従います。
- アプリケーションは、Microsoft Graph を介して SharePoint Embedded と対話します。
- アプリケーションには、そのコンテナーの種類のコンテナーにアクセスするためのコンテナーの種類のアプリケーションのアクセス許可が必要です。
- アプリケーションは、ユーザーの代わりにアクセスを使用する場合にのみ、ユーザーがメンバーになっているコンテナーにアクセスできます。
- アプリケーションは、ユーザーなしでアクセスを使用するときに、コンテナーの種類のアプリケーションのアクセス許可によって有効になっているすべてのコンテナーにアクセスできます。
- アプリケーションは、可能な限りユーザーの代わりにアクセスを使用して、セキュリティとア責任を強化する必要があります。
前提条件
次の計画を立てます。
- Microsoft Entra ID アプリケーションの登録。
- Microsoft Entra ID テナント内の Microsoft 365 サブスクリプション。
- SharePoint Embedded 操作に対する Microsoft Graph のアクセス許可。
- コンテナーの種類の登録によって付与されるコンテナーの種類のアプリケーションのアクセス許可。
- 管理使用しているテナントで同意します。
アクセス許可レイヤー
SharePoint Embedded アクセスには複数のレイヤーがあります。
| Layer | 用途 |
|---|---|
| Microsoft Graph のアクセス許可 | アプリで SharePoint Embedded エンドポイントを呼び出すことができます。 |
| コンテナーの種類のアプリケーションのアクセス許可 | アプリが特定のコンテナーの種類のコンテナーにアクセスできるようにします。 |
| コンテナーのアクセス許可 | 委任されたアクセスに対して特定のコンテナーでユーザーが実行できる操作を決定します。 |
重要
Microsoft Graph のアクセス許可だけでは、コンテナーへのアクセスは許可されません。 アプリケーションには、コンテナーの種類に対するアクセス許可も付与する必要があります。
委任されたアクセス
委任されたアクセスは、アプリケーションがユーザーに代わって動作する方法を意味します。
ユーザーに代わって SharePoint Embedded 操作を行うには、Microsoft Graph FileStorageContainer.Selected 委任されたアクセス許可が必要です。
この委任されたアクセス許可では、使用しているテナントに対する管理者の同意は必要ありません。
また、ユーザーにはコンテナーのアクセス許可も必要です。
アプリケーションの有効なアクセス許可は、次の共通部分です。
- コンテナーの種類に対して付与されたアプリケーションのアクセス許可。
- コンテナーに対するユーザーのアクセス許可。
可能な限り、委任されたアクセスを使用します。
委任されたアクセスでは、ユーザーにアクションを関連付けることができるため、監査可能性が向上します。
アプリ専用アクセス
アプリのみのアクセスは、アプリケーションがユーザーなしで動作を意味します。
ユーザーがいない SharePoint Embedded 操作には、Microsoft Graph FileStorageContainer.Selected アプリケーションのアクセス許可が必要です。
このアクセス許可には、使用しているテナントに対する管理者の同意が必要です。
アプリのみのアクセスでは、アプリはコンテナーの種類のアプリケーションのアクセス許可によって有効になっているすべてのコンテナーにアクセスできます。
ユーザーの代わりに実行できないバックグラウンド操作には、アプリ専用アクセスを使用します。
コンテナーの種類のアプリケーションのアクセス許可を付与する場合は、最小限の特権を適用します。
管理者の同意
使用しているテナントの管理者は、アプリケーションのアクセス許可要求に同意する必要があります。
アプリケーションFileStorageContainer.Selectedアクセス許可には、管理同意が必要です。 委任された FileStorageContainer.Selected では、管理者の同意は必要ありません。
コンテナーの種類の登録には、所有しているアプリケーションが使用しているテナントで動作することに同意する必要もあります。
コンテナーの種類の登録については、「 ファイル ストレージ コンテナーの種類のアプリケーションのアクセス許可を登録する」を参照してください。
コンテナーの種類のアクセス許可 (Microsoft Graph)
コンテナーの種類の作成、管理、登録が Microsoft Graph の操作になりました。 次のアクセス許可を計画します。
| アクセス許可 | 用途 | Tenant |
|---|---|---|
FileStorageContainerType.Manage.All |
所有テナントでコンテナーの種類を作成および管理します。 | 所有のみ |
FileStorageContainerTypeReg.Selected |
使用しているテナントにコンテナーの種類を登録します。 | 消費 |
FileStorageContainer.Selected |
テナントを使用する場合は、コンテナーの種類のコンテナーにアクセスします。 | 消費 |
FileStorageContainerType.Manage.All は 委任された アクセス許可であり、 管理者の同意は必要ありません。 所有テナント内のゲスト以外のユーザーは、それに同意し、それを使用してコンテナーの種類を作成し、 そのコンテナーの種類の所有者として自動的に割り当てることができます。 (2026 年 6 月より前には、SharePoint Embedded Administrator ロールまたはグローバル管理者ロールが必要でした)。
重要
FileStorageContainerType.Manage.All は、コンテナーの種類を作成するために 所有 テナントでのみ必要です。 顧客に過剰なアクセス許可を求めないように、使用しているテナントに配布する前に、アプリケーション マニフェストから削除します。 テナントを使用する場合は、 FileStorageContainerTypeReg.Selected と FileStorageContainer.Selectedのみを要求します。
コンテナーの種類のアプリケーションのアクセス許可
コンテナーの種類のアプリケーションのアクセス許可は、コンテナーの種類の登録を通じて所有者アプリケーションによって付与されます。
これらのアクセス許可は、コンテナーの種類のコンテナーに対してアプリケーションが実行できる操作を定義します。
コンテナーの種類のアプリケーションのアクセス許可は次のとおりです。
NoneReadContentWriteContentCreateDeleteReadWriteEnumeratePermissionsAddPermissionsUpdatePermissionsDeletePermissionsDeleteOwnPermissionManagePermissionsManageContentFull
アプリケーションに必要なアクセス許可のみを付与します。
たとえば、バックアップまたは分析のために読み取りアクセスのみが必要な場合は、バックグラウンド ゲスト アプリに Full を付与しないでください。
コンテナーのアクセス許可
コンテナーのアクセス許可はユーザーに適用されます。
ユーザーの代わりにアクセスする場合にのみ適用されます。
コンテナーにアクセスするすべてのユーザーは、コンテナーのメンバーである必要があります。
コンテナー メンバーシップは、そのコンテナーのユーザーアクセス許可を付与します。
SharePoint Embedded では、次のコンテナー ロールがサポートされています。
| 役割 | 概要 |
|---|---|
| Reader | コンテナーのプロパティと内容を読み取ります。 |
| ライター | 閲覧者のアクセス許可に加えて、コンテンツを作成、更新、削除し、該当するコンテナー プロパティを更新します。 |
| Manager | ライターのアクセス許可に加えて、コンテナーのメンバーシップを管理します。 |
| Owner | マネージャーのアクセス許可とコンテナーの削除。 |
ユーザーが委任された呼び出しを通じて新しいコンテナーを作成すると、そのユーザーには所有者ロールが自動的に割り当てられます。
コンテナーの種類の所有者
コンテナーの種類の所有者は、コンテナーの所有者とは異なります。 これらは、所有テナント内のコンテナーの種類自体 を 管理します。
- 自動割り当て: コンテナーの種類を作成するユーザーは、所有者として自動的に割り当てられます。
-
所有者の追加または削除: コンテナーの種類
permissionsリレーションシップ (POST/DELETE /storage/fileStorage/containerTypes/{id}/permissions、ベータ) を使用して、コンテナーの種類ごとに最大 3 人 の所有者を管理します。 -
機能: 委任モードの
FileStorageContainerType.Manage.Allでは、所有者は所有するコンテナーの種類を作成、読み取り、更新、削除し、所有者を管理し、その種類のコンテナーを作成できます (委任された呼び出しのみ)。 - 制限: 外部 ID (ゲスト ユーザー) をコンテナーの種類の所有者にすることはできません。 所有者情報は所有テナント にのみ 存在し、登録時に使用しているテナントに伝達されません。
- 有効なアクセス: 所有者機能はユーザーのアクセス許可です。有効なアクセスは、アプリの Graph アクセス許可と所有者ロールの積集合です。
コンテナーの種類の登録への影響
所有しているアプリケーションが使用しているテナントに対して動作する場合:
- 所有しているアプリには、使用しているテナントにサービス プリンシパルがインストールされている必要があります。
- 所有しているアプリには、コンテナーの種類の登録を実行するための管理者の同意が付与されている必要があります。
- コンテナーの種類の所有アプリケーションのみが、使用しているテナントで登録 API を呼び出すことができます。
登録 API は、所有するアプリとゲスト アプリのアクセス許可を指定します。
最後に成功した登録 API 呼び出しによって、使用中のテナントで使用される設定が決まります。
優れたアクセス パターン
通常の Microsoft Graph 承認パターンに従わない操作を計画します。
優れたアクセス パターンは次のとおりです。
- Microsoft Graph を使用した所有テナントでのコンテナーの種類の管理。
- Microsoft Graph (
FileStorageContainerTypeReg.Selected) を使用したテナントの使用に関するコンテナーの種類の登録。 -
FileStorageContainer.Manage.Allと SharePoint Embedded Administrator またはグローバル管理者のサインイン ユーザーを必要とする管理コンテナー操作。 - プレビュー中に追加のアクセス許可を必要とする Microsoft Search シナリオ。
- 現在、ユーザー ライセンスを必要とする操作。
特権または検索が多い機能を設計する前に、これらを確認してください。
セキュリティに関する考慮事項
- ユーザー主導の操作に委任されたアクセスを優先します。
- サービス操作に必要な場合にのみ、アプリのみのアクセスを使用します。
- コンテナーの種類レベルで少なくとも特権を付与します。
- コンテナー メンバーシップ レベルで少なくとも特権を付与します。
- 正しいテナントで管理者の同意が必要です。
- 登録を顧客オンボードの一部として扱います。
- シナリオで必要な場合を除き、広範なゲスト アプリ へのアクセスは避けてください。
- テナント管理者に対する監査とコンプライアンスへの影響を確認します。
計画チェックリスト
- Microsoft Entra ID アプリケーションを登録します。
- 委任されたアクセスを使用する操作を決定します。
- アプリのみのアクセスを使用する操作を決定します。
- Microsoft Graph
FileStorageContainer.Selectedアクセス許可を要求します。 - コンテナーの種類の作成と登録のために、Microsoft Graph
FileStorageContainerType.Manage.All(所有テナント) とFileStorageContainerTypeReg.Selected(テナントの使用) を要求します。 - 使用している各テナントで管理者の同意を計画します。
- コンテナーの種類のアプリケーションのアクセス許可を定義します。
- ユーザー コンテナー ロールを定義します。
- ゲスト アプリとそのアクセス許可を特定します。
- 優れたアクセス パターンを確認します。
次の手順
スケールとパフォーマンスの制約を確認する: 制限と呼び出しパターンについて説明します。