SharePoint Embedded の認証と承認

SharePoint Embedded を使用するには、アプリケーションで Microsoft Graph を使用する必要があります。 Microsoft Graph の認証と承認の詳細については、こちらをご覧ください。 SharePoint Embedded アーキテクチャの詳細については、こちらをご覧ください。

概要

SharePoint Embedded の認証と承認に関する主な原則を次に示します。

  • アプリケーションは、Microsoft Graph を介して SharePoint Embedded と対話します。
  • アプリケーションには、そのコンテナーの種類のコンテナーにアクセスするためのコンテナーの種類のアプリケーションのアクセス許可が必要です。
  • ユーザーの代わりにアクセスを使用する場合、アプリケーションは、ユーザーがメンバーであるコンテナーにのみアクセスできます。
  • ユーザーなしでアクセスを使用する場合、アプリケーションは、付与されているコンテナーの種類のアプリケーションのアクセス許可によって有効になっているコンテナーにアクセスできます。
  • アプリケーションは、可能な限りユーザーの代わりにアクセスを使用して、セキュリティと監査性を強化します

前提条件

Authorization

SharePoint Embedded 操作は、Microsoft Graph を介して公開されます。 SharePoint Embedded では、 ユーザーに代わってアクセス し、ユーザー なしでもアクセスできます

重要

アプリケーションに付与された Microsoft Graph のアクセス許可を使用すると、SharePoint Embedded エンドポイントを呼び出すことができます。 ただし、アプリケーションは、 その種類のコンテナーにアクセスする前に、コンテナーの種類 に対するアクセス許可を付与する必要があります。

ユーザーに代わってアクセスする

ユーザーに代わって SharePoint Embedded 操作を行うには、アプリケーションが Microsoft Graph FileStorageContainer.Selected の委任されたアクセス許可に対する同意を受け取る必要があります。 このアクセス許可は、テナントのユーザーがテナントに同意する前に、使用しているテナントに対する管理者の同意が必要です。

使用しているテナントに対 FileStorageContainer.Selected する同意を受け取るアプリケーションに加えて、代理として動作しているユーザーは 、コンテナーのアクセス許可を持っている必要があります。 アプリケーションが持つ有効なアクセス許可は、ユーザーの代わりに動作するときのアプリケーションのアクセス許可とユーザーのアクセス許可の積集合です。

重要

ユーザーの代わりに SharePoint Embedded を使用することをお勧めします。 この種類のアクセスにより、アプリケーションのセキュリティが強化されます。 また、アプリケーションによって実行されるアクションの監査可能性も向上します。

ユーザーなしでアクセスする

ユーザーがいない SharePoint Embedded 操作では、アプリケーションが Microsoft Graph FileStorageContainer.Selected アプリケーションのアクセス許可に対する同意を受け取る必要があります。 このアクセス許可には、使用しているテナントに対する管理者の同意が必要です。

注:

使用しているテナントの管理者は、アプリケーションのアクセス許可の要求に同意する必要があります。 詳細については、こちらをご覧ください。

優れたアクセス パターン

現在、Microsoft Graph ではアクセスできない 2 種類の操作があります。

コンテナーの種類の管理操作を実行するには、SharePoint Embedded Administrator またはグローバル管理者である必要があります。

コンテナーの種類を登録するには、リソースに対するアクセス許可をContainer.Selected要求するOffice 365 SharePoint Online必要があります。

スコープ名 スコープ ID 種類 操作
Container.Selected 19766c1b-905b-43af-8756-06526ab42875 アプリケーション SharePoint Embedded のコンテキストでは、使用しているテナントでコンテナーの種類の登録を有効にします。

注:

テナントの所有に対するコンテナーの種類の管理と、テナントの使用に対する登録は間もなく Microsoft Graph 操作になり、この手順は不要になります。 ご期待ください。

コンテナーの種類のアプリケーションのアクセス許可

SharePoint Embedded アプリケーションは、指定されたコンテナーの種類のコンテナーにアクセスする前に、所有者アプリケーションによってコンテナーの種類のアプリケーションのアクセス許可を付与する必要があります。 コンテナーの種類のアプリケーションのアクセス許可は、 コンテナーの種類の登録を介してアプリケーションに付与されます。

アクセス許可 説明
なし このコンテナーの種類のコンテナーまたはコンテンツに対するアクセス許可がありません。
ReadContent このコンテナーの種類のコンテナーのコンテンツを読み取ることができます。
WriteContent このコンテナーの種類のコンテナーにコンテンツを書き込むことができます。 これは、ReadContent アクセス許可なしでは付与できません。
作成する このコンテナーの種類のコンテナーを作成できます。
削除 このコンテナーの種類のコンテナーを削除できます。
読み取り このコンテナーの種類のコンテナーのメタデータを読み取ることができます。
書き込み このコンテナーの種類のコンテナーのメタデータを更新できます。
EnumeratePermissions コンテナーのメンバーと、このコンテナーの種類のコンテナーのロールを列挙できます。
AddPermissions このコンテナーの種類のコンテナーのコンテナーにメンバーを追加できます。
UpdatePermissions このコンテナーの種類のコンテナーのコンテナー内の既存のメンバーシップを更新 (のロールの変更) できます。
DeletePermissions このコンテナーの種類のコンテナーについて、コンテナーから他のメンバー (自己ではない) を削除できます。
DeleteOwnPermissions このコンテナーの種類のコンテナーのコンテナーから独自のメンバーシップを削除できます。
ManagePermissions このコンテナーの種類のコンテナーのコンテナー ロールにメンバーを追加、削除 (自己を含む) または更新できます。
Full このコンテナーの種類のコンテナーに対するすべてのアクセス許可を持ちます。

注:

Microsoft Graph のアクセス許可とコンテナーの種類のアプリケーションのアクセス許可の組み合わせには、アプリケーションのクライアント承認が含まれます。

コンテナーのアクセス許可

コンテナーにアクセスするすべてのユーザーは、コンテナーのメンバーである必要があります。 コンテナーへのメンバーシップは、 ユーザーコンテナーのアクセス許可を付与します。 これらのアクセス許可は、ユーザーが特定のコンテナーに対して持つアクセス レベルを定義します。 コンテナーのアクセス許可は、ユーザーの代わりにアクセスする場合にのみ適用され、ユーザーがいないアクセスには適用されません。 ユーザーがいないコンテナーにアクセスする SharePoint Embedded アプリケーションは、代わりに コンテナーの種類のアプリケーションのアクセス許可 で定義されているフル アクセス権を取得します。

重要

委任された呼び出しを介して新しいコンテナーを作成する呼び出し元のユーザーには、所有者ロールが自動的に割り当てられます。

アクセス許可 説明
Reader このロールを使用すると、ユーザーはコンテナーのプロパティと内容を読み取ることができます。
ライター このロールには、閲覧者が持つすべてのアクセス許可と、コンテナー内のコンテンツの作成、更新、削除、および該当するコンテナーのプロパティの更新に関するアクセス許可があります。
Manager このロールには、ライターが持つすべてのアクセス許可と、コンテナーのメンバーシップを管理するためのアクセス許可があります。
Owner このロールには、マネージャーが持つすべてのアクセス許可と、コンテナーを削除するアクセス許可があります。

次の内容

次に実行できるアクションを次に示します。

  1. SharePoint Embedded アプリケーション マニフェスト を構成して、必要なアクセス許可を要求します。
    • Microsoft Graph (resourceAppId: 00000003-0000-0000-c000-000000000000)
      • FileStorageContainer.Selected (型: Scope、ID: 085ca537-6565-41c2-aca7-db852babc212) を使用しているテナント上のコンテナーにアクセスする
    • Office 365 SharePoint Online (resourceAppId: 00000003-0000-0ff1-ce00-000000000000)
      • Container.Selected (型: Role、ID: 19766c1b-905b-43af-8756-06526ab42875) を使用してテナントを使用する際にコンテナーを登録します
  2. 所有テナントと使用テナントの両方 (同じテナントである可能性があります) に対して、アプリケーションに管理者の同意を付与します。
  3. 所有テナントに新しいコンテナーの種類を作成します。
  4. 使用しているテナントにコンテナーの種類を登録します。
  5. コンテナーを作成する