SharePoint Embedded を使用するには、アプリケーションで Microsoft Graph を利用する必要があります。 Microsoft Graph の認証と承認の詳細については、こちらをご覧ください。 SharePoint Embedded アーキテクチャの詳細については、こちらをご覧ください。
概要
SharePoint Embedded の認証と承認の主な原則を次に示します。
- アプリケーションは、Microsoft Graph を介して SharePoint Embedded と対話します。
- アプリケーションには、そのコンテナーの種類のコンテナーにアクセスするためのコンテナーの種類のアプリケーションのアクセス許可が必要です。
- アプリケーションは、ユーザーの代わりにアクセスを使用する場合にのみ、ユーザーがメンバーになっているコンテナーにアクセスできます。
- アプリケーションは、ユーザーなしでアクセスを使用するときに、コンテナーの種類のアプリケーションのアクセス許可によって有効になっているすべてのコンテナーにアクセスできます。
- アプリケーションは、可能な限りユーザーの代わりにアクセスを使用して、セキュリティと説明責任を強化します
前提条件
- Microsoft Entra ID アプリケーションの登録。 アプリケーションの登録に関するページを参照してください。
- Microsoft Entra ID テナントに Microsoft 365 サブスクリプションがある
Authorization
SharePoint Embedded 操作は、Microsoft Graph を介して公開されます。 SharePoint Embedded では、 ユーザーに代わってアクセス し、ユーザー なしでもアクセスできます。
重要
アプリケーションに付与された Microsoft Graph アクセス許可を使用すると、SharePoint Embedded エンドポイントを呼び出すことができるようになります。 ただし、アプリケーションは、 その種類のコンテナーにアクセスする前に、コンテナーの種類 に対するアクセス許可を付与する必要があります。
アプリケーションのアクセス許可
SharePoint Embedded アプリケーションは、SharePoint Embedded を操作するために、アプリケーション マニフェストで次の Microsoft Graph アクセス許可を要求する必要があります。
- FileStorageContainerType.Manage.All を使用すると、アプリケーションが所有テナントでコンテナーの種類を作成および管理できます。 このアクセス許可は、コンテナーの種類が作成される所有テナントでのみ必要です。
- FileStorageContainerTypeReg.Selected を使用して、アプリケーションがテナントを使用する際にコンテナーの種類を登録できるようにします。
- FileStorageContainer.Selected を使用 すると、アプリケーションがテナントを使用する際に特定のコンテナーの種類のコンテナーにアクセスできるようになります。
ユーザーに代わってアクセスする
ユーザーに代わって SharePoint Embedded 操作を行うには、アプリケーションが Microsoft Graph FileStorageContainer.Selected委任されたアクセス許可に対する同意を受け取る必要があります。 このアクセス許可は、テナントのユーザーがテナントに同意する前に、使用しているテナントに対する管理者の同意が必要です。
使用しているテナントの FileStorageContainer.Selected に対する同意を受け取るアプリケーションに加えて、代理として動作するユーザーは 、コンテナーのアクセス許可を持っている必要があります。 アプリケーションが持つ有効なアクセス許可は、ユーザーの代わりに動作するときのアプリケーションのアクセス許可とユーザーのアクセス許可の積集合です。
重要
ユーザーの代わりに SharePoint Embedded を使用することをお勧めします。 この種類のアクセスにより、アプリケーションのセキュリティが強化されます。 また、アプリケーションによって実行されるアクションの監査可能性も向上します。
ユーザーなしでアクセスする
ユーザーがいない SharePoint Embedded 操作では、アプリケーションが Microsoft Graph FileStorageContainer.Selectedアプリケーションのアクセス許可に対する同意を受け取る必要があります。 このアクセス許可には、使用しているテナントに対する管理者の同意が必要です。
注:
使用しているテナントの管理者は、アプリケーションのアクセス許可の要求に同意する必要があります。 詳細については、こちらをご覧ください。
優れたアクセス パターン
現時点では、優れたアクセス パターンを持つ 2 種類の操作があります。
重要
アプリケーションやその他のアプリケーションがコンテナーの種類で SharePoint Embedded コンテンツにアクセスする方法に関する、これらの優れたアクセス パターンの影響を考慮してください。
Microsoft Graph を介して公開されない操作
現在、Microsoft Graph を介してアクセスできないシナリオが 1 つあります。
- SharePoint REST API v2 アクセス許可を介して公開される SharePoint Embedded エージェント。
アプリケーションで SharePoint Embedded エージェント エクスペリエンス (プレビュー 段階) を使用するには、Office 365 SharePoint Online リソースに対するContainer.Selectedアクセス許可が必要です。
| スコープ名 | スコープ ID | 型 | 操作 |
|---|---|---|---|
| Container.Selected | 19766c1b-905b-43af-8756-06526ab42875 | アプリケーション | SharePoint Embedded のコンテキストでは、使用しているテナントでコンテナーの種類の登録を有効にします。 |
注:
Container.Selectedアクセス許可は非表示のアクセス許可であり、Microsoft Entra管理者の同意エクスペリエンスには表示されません。 詳細については、「 非表示のアクセス許可に対する管理者の同意を付与 する」を参照してください。
非表示のアクセス許可に対する管理者の同意の付与
非表示のアクセス許可を要求するアプリケーションに管理者の同意を付与するには、管理者の同意 URL を使用して行う必要があります。 Microsoft Entra ディレクトリ管理者に同意 URL を指定し、応答が成功したことを確認します。 同意 URL は次のようになります。
https://login.microsoftonline.com/{tenant}/v2.0/adminconsent?client_id={client_id}&redirect_uri={redirect_uri}&scope={tenant_root_site_url}/.default
重要
Azure portalの [アプリの登録] ウィンドウを使用して、非表示のアクセス許可を要求するアプリケーションに管理者の同意を付与しないでください。 [アプリの登録] ウィンドウでは、要求された非表示のアクセス許可の検証に失敗し、マニフェストから削除されます。 管理者の同意 URL を使用して管理者の同意が付与された後、Azure portalの [エンタープライズ アプリケーション] ウィンドウを使用して、付与された非表示のアクセス許可を表示できます。
SharePoint Embedded コンテンツの検索に関連する操作
このセクションでは、検索 コンテンツの検索シナリオのみを参照し、列挙シナリオは参照しません。
SharePoint Embedded コンテンツで Microsoft Search を使用するには、通常は SharePoint Embedded アクセスに使用されるFileStorageContainer.Selectedの上に、委任されたFiles.Read.All Microsoft Graph アクセス許可を要求する必要があります。 この機能のプレビュー 段階では、 Files.Read.All アプリケーションのアクセス許可によって、すべての SharePoint Embedded コンテンツの検索機能へのアクセス権がアプリケーションに付与されます。
注:
SharePoint Embedded コンテンツに対する Microsoft Search のサポートはプレビュー段階であり、変更される可能性があります。 SharePoint Embedded コンテンツでの Microsoft Search のアクセス要件は、今後、SharePoint Embedded 承認モデルと一致します。 ご期待ください。
ユーザー ライセンスを必要とする操作
SharePoint Embedded は、エンド ユーザーが何らかの種類の Microsoft 365 製品ライセンスを割り当てる必要なく動作するように設計されています。 ただし、この原則にまだ従っていない特定の操作があります。
コンテナーの一覧表示
コンテナーの一覧表示操作は、OneDrive を持たないユーザーの代わりに呼び出された場合、403 Forbidden応答コードを返します。 この依存関係は間もなく削除される予定です。 この依存関係は、ユーザー コンテキスト (アプリ専用モード) なしで呼び出されたときの List コンテナー操作には適用されません。
Office ドキュメントでユーザーをメンションする
一般的な Office エクスペリエンス には、ドキュメントの確認や、それらのドキュメントへのコメントの追加が含まれます。 ユーザーが @mentions ユーザー ピッカーに表示するには、Microsoft 365 ライセンスが割り当てられている必要があります。
コンテナーの種類のアプリケーションのアクセス許可
SharePoint Embedded アプリケーションは、指定されたコンテナーの種類のコンテナーにアクセスする前に、所有者アプリケーションによってコンテナーの種類のアプリケーションのアクセス許可を付与する必要があります。 コンテナーの種類のアプリケーションのアクセス許可は、 コンテナーの種類の登録を介してアプリケーションに付与されます。
| アクセス許可 | 説明 |
|---|---|
| なし | このコンテナーの種類のコンテナーまたはコンテンツに対するアクセス許可がありません。 |
| ReadContent | このコンテナーの種類のコンテナーの内容を読み取ることができます。 |
| WriteContent | このコンテナーの種類のコンテナーにコンテンツを書き込むことができます。 これは、ReadContent アクセス許可なしでは付与できません。 |
| 作成する | このコンテナーの種類のコンテナーを作成できます。 |
| 削除 | このコンテナーの種類のコンテナーを削除できます。 |
| 読み取り | このコンテナーの種類のコンテナーのメタデータを読み取ることができます。 |
| 書き込み | このコンテナーの種類のコンテナーのメタデータを更新できます。 |
| EnumeratePermissions | コンテナーのメンバーと、このコンテナーの種類のコンテナーのロールを列挙できます。 |
| AddPermissions | このコンテナーの種類のコンテナーのコンテナーにメンバーを追加できます。 |
| UpdatePermissions | このコンテナーの種類のコンテナーのコンテナー内の既存のメンバーシップを更新 (のロールの変更) できます。 |
| DeletePermissions | このコンテナーの種類のコンテナーについて、コンテナーから他のメンバー (自己ではない) を削除できます。 |
| DeleteOwnPermissions | このコンテナーの種類のコンテナーのコンテナーから独自のメンバーシップを削除できます。 |
| ManagePermissions | このコンテナーの種類のコンテナーのコンテナー ロールでメンバーを追加、削除 (自己を含む) または更新できます。 |
| ManageContent | コンテナーのコンテンツを管理できます |
| Full | このコンテナーの種類のコンテナーに対するすべてのアクセス許可を持ちます。 |
注:
Microsoft Graph のアクセス許可とコンテナーの種類のアプリケーションのアクセス許可の組み合わせには、アプリケーションのクライアント承認が含まれます。
コンテナーのアクセス許可
コンテナーにアクセスするすべてのユーザーは、コンテナーのメンバーである必要があります。 コンテナーへのメンバーシップは、 ユーザーコンテナーのアクセス許可を付与します。 これらのアクセス許可は、ユーザーが特定のコンテナーに対して持つアクセス レベルを定義します。 コンテナーのアクセス許可は、ユーザーの代わりにアクセスする場合にのみ適用され、ユーザーなしでアクセスすることはできません。 ユーザーがいないコンテナーにアクセスする SharePoint Embedded アプリケーションは、代わりに コンテナーの種類のアプリケーションのアクセス許可 で定義されているフル アクセス権を取得します。
重要
委任された呼び出しを介して新しいコンテナーを作成する呼び出し元のユーザーには、所有者ロールが自動的に割り当てられます。
| アクセス許可 | 説明 |
|---|---|
| Reader | このロールを使用すると、ユーザーはコンテナーのプロパティと内容を読み取ることができます。 |
| ライター | このロールには、閲覧者が持つすべてのアクセス許可と、コンテナー内のコンテンツの作成、更新、削除、および該当するコンテナーのプロパティの更新に関するアクセス許可があります。 |
| Manager | このロールには、ライターが持つすべてのアクセス許可と、コンテナーのメンバーシップを管理するためのアクセス許可があります。 |
| Owner | このロールには、マネージャーが持つすべてのアクセス許可と、コンテナーを削除するアクセス許可があります。 |
次の内容
次に実行できるアクションを次に示します。
- SharePoint Embedded アプリケーション マニフェスト (PowerShell または Azure CLI Microsoft Entra使用できます) を構成して、所有しているテナントに必要なアクセス許可を要求します。
- Microsoft Graph (resourceAppId:
00000003-0000-0000-c000-000000000000)- 追加:
FileStorageContainerType.Manage.All(型:Role、ID:8e6ec84c-5fcd-4cc7-ac8a-2296efc0ed9b) を使用して、 所有する テナントにコンテナーの種類を作成します
- 追加:
- Microsoft Graph (resourceAppId:
- 所有テナントでアプリケーションに管理者の同意を付与する
- 所有テナントに新しいコンテナーの種類を作成します。
- SharePoint Embedded アプリケーション マニフェスト を再構成して、テナントの使用に必要なアクセス許可のみを要求します。
- Microsoft Graph (resourceAppId:
00000003-0000-0000-c000-000000000000)- 削除:
FileStorageContainerType.Manage.All(型:Role、ID:8e6ec84c-5fcd-4cc7-ac8a-2296efc0ed9b) です。これは 、所有 しているテナントにコンテナーの種類を作成するためにのみ必要であるためです注:
所有テナントでコンテナーの種類を作成したら、アプリケーションのマニフェストから
FileStorageContainerType.Manage.Allアクセス許可を削除する必要があります。 アプリケーションでは、コンテナーの種類を作成するために所有テナントでのみ、テナントを使用する場合は必要ありません。 このアクセス許可をアプリケーションのマニフェストから削除しないと、アプリケーションによって要求された過剰なアクセス許可が顧客に懸念されます。 - 追加:
FileStorageContainerTypeReg.Selected(型:Role、ID:2dcc6599-bd30-442b-8f11-90f88ad441dc) を 使用している テナントにコンテナーの種類を登録します - 追加:
FileStorageContainer.Selected(種類:Scope、ID:085ca537-6565-41c2-aca7-db852babc212) を使用して、ユーザーの代わりにテナント を使用する コンテナーにアクセスします - 必要に応じて、
FileStorageContainer.Selected(種類:Role、ID:40dc41bc-0f7e-42ff-89bd-d9516947e474) を追加して、ユーザーなしで テナントを使用する 際にコンテナーにアクセスします
- 削除:
- Office 365 SharePoint Online (resourceAppId:
00000003-0000-0ff1-ce00-000000000000)-
Container.Selected(型:Role、ID:19766c1b-905b-43af-8756-06526ab42875) を使用して SharePoint Embedded Agent を使用する
-
- Microsoft Graph (resourceAppId:
- 使用しているテナント (所有テナントと同じ場合があります) でアプリケーションに管理者の同意を付与します。
- 使用している テナントにコンテナーの種類 を 登録します。
- 使用しているテナントにコンテナーを作成する