認証と承認を構成する

適用対象: Developer

SharePoint Embedded アプリケーションが Microsoft Graph または SharePoint Embedded API を呼び出す前に、認証と承認を構成します。

コンテナーの種類が消費テナントに登録されるように、 最初にアプリケーション アクセス許可の登録 を完了します。

アクセス モデルについて

SharePoint Embedded では、2 つのアクセス許可レイヤーが使用されます。

Microsoft Graph のアクセス許可により、アプリは SharePoint Embedded エンドポイントを呼び出すことができます。

コンテナーの種類のアプリケーションのアクセス許可により、アプリは特定のコンテナーの種類のコンテナーにアクセスできます。

両方のレイヤーが必要です。

重要

Microsoft Graph の同意だけでは、コンテナーへのアクセスは許可されません。 アプリには、コンテナーの種類に対するアクセス許可も付与されている必要があります。

Microsoft Entra ID アプリを構成する

Microsoft Entra ID アプリの登録から始めます。 SharePoint Embedded は、すべての種類の Microsoft Entra サービス プリンシパルをサポートしています。

アプリケーションの種類に合わせて構成します。

  1. 所有しているアプリケーションを登録または識別します。
  2. 開発クライアントと運用クライアントのリダイレクト URI を追加します。
  3. 必要に応じて、アプリ専用フローの資格情報を追加します。
  4. SharePoint Embedded アクセス用の Microsoft Graph アクセス許可を追加します。
  5. 登録シナリオに必要な Microsoft Graph アクセス許可を追加します。
  6. 必要に応じて管理者に同意を依頼します。

一般的な手順については、「Microsoft ID プラットフォームへのアプリケーションの登録」を参照してください。

Microsoft Graph のアクセス許可を要求する

Microsoft Graph を使用した SharePoint Embedded 操作には FileStorageContainer.Selectedが必要です。

ユーザーの代理としてアクセスするには、委任された FileStorageContainer.Selected を使用します。

アプリのみのアクセスにはアプリケーション FileStorageContainer.Selected を使用します。

アプリケーション FileStorageContainer.Selected には、使用中のテナントの管理者の同意が必要です。 委任された FileStorageContainer.Selected には管理者の同意は必要ありません。

消費テナント内のすべての管理可能なコンテナーの種類で、管理者ユーザーに代わって管理機能に FileStorageContainer.Manage.All を使用します。 これらの機能には、コンテナーの列挙、削除、復元、パージ、更新、およびそれらのアクセス許可の管理が含まれます。

注:

Microsoft Graph のアクセス許可とコンテナーの種類のアプリケーションのアクセス許可の組み合わせによって、アプリケーションが実際に実行できる操作が決まります。

登録の許可を要求する

コンテナーの種類の登録には、v1.0 の Microsoft Graph コンテナーの種類登録 API を使用します。

登録の場合は、 FileStorageContainerTypeReg.Selected Microsoft Graph のアクセス許可を要求します (委任またはアプリのみ)。

スコープ名 使用
FileStorageContainerTypeReg.Selected 委任またはアプリケーション 消費するテナントでのコンテナーの種類の登録を有効にします。

代理登録呼び出しの場合、サインインしたユーザーは SharePoint Embedded 管理者またはグローバル管理者ロールを持っている必要があります。

このアクセス許可は 、[アプリケーションの登録] アクセス許可と共に使用します。

可能な場合は委任アクセスを優先する

可能な限り、ユーザーの代わりにアクセスしてください。

委任アクセスにより、セキュリティ、アカウンタビリティ、監査可能性、およびユーザーのコンテナー メンバーシップとの整合性が向上します。

委任アクセスを使用する場合、有効なアクセス許可とは、アプリケーションのアクセス許可とユーザー コンテナーのアクセス許可が交差する部分です。

ユーザーはコンテナーのメンバーである必要があります。

機密クライアント アプリケーションを使用して、ユーザーに代わって実行されるアクションをアプリで制御できるようにします。 パブリック クライアント アプリケーションは、エンド ユーザーにユーザー トークンを公開する可能性があります。これにより、アプリの制御外でアクションが実行される可能性があります。 詳細については、「 パブリック クライアントおよび機密クライアント アプリケーション」を参照してください。

委任トークンの取得を構成する

委任された呼び出しの場合:

  1. Microsoft ID プラットフォームを使用してユーザーをサインインします。
  2. 委任された FileStorageContainer.Selectedを要求します。
  3. 使用するテナントのユーザー同意ポリシーに従って、委任された同意が付与されていることを確認します。
  4. Microsoft Graph のアクセス トークンを取得します。
  5. Microsoft Graph SharePoint Embedded エンドポイントを呼び出します。
  6. ユーザーがターゲット コンテナーのメンバーであることを確認します。

ユーザーがコンテナー メンバーではない場合、アプリはユーザーの代わりにそのコンテナーにアクセスすることはできません。

アプリのみのトークンの取得を構成する

ユーザーとして実行されないサービス ワークロードには、アプリのみのアクセスを使用します。

アプリのみの呼び出しの場合:

  1. 証明書などのアプリケーション資格情報を構成します。
  2. アプリケーションの FileStorageContainer.Selectedを要求します。
  3. 消費しているテナント管理者に管理者の同意を付与する。
  4. クライアント資格情報フローを使用してトークンを取得します。
  5. Microsoft Graph SharePoint Embedded エンドポイントを呼び出します。
  6. コンテナーの種類のアクセス許可をワークロードのニーズに制限します。

注意

アプリ専用トークンは、そのコンテナーの種類アプリケーションのアクセス許可によって有効になっているすべてのコンテナーにアクセスできます。 最小限の権限を使用する。

Microsoft Graph API を呼び出す

トークンの取得後、Microsoft Graph を介して SharePoint Embedded 操作を呼び出します。 役立つ参照は次のとおりです。

ライフサイクル操作の コンテナーの作成と管理に 進みます。

Graph で公開されていない操作を処理する

一部の操作には、例外的なアクセス パターンがあります。

これらの操作では、例外的なアクセス パターンが使用されます。

  • Microsoft Graph コンテナーの種類 API (FileStorageContainerType.Manage.All の委任されたアクセス許可) による所有テナントでのコンテナーの種類の管理。
  • Microsoft Graph コンテナーの種類登録 API (FileStorageContainerTypeReg.Selected) を使用した、消費テナントでのコンテナーの種類の登録。
  • SharePoint Embedded エージェントのエクスペリエンスを、独自のアクセス許可要件を通じて提供します。
  • 検索: SharePoint Embedded コンテンツの Microsoft Search には、FileStorageContainer.Selected に加えて委任された Files.Read.All アクセス許可が必要です。
  • ユーザー ライセンスを必要とする操作: コンテナーの一覧 表示は、OneDrive を持たない委任されたユーザーの 403 Forbidden を返し (アプリのみの通話は影響を受けません)、Office @mentions ユーザー選択ウィンドウに表示するには Microsoft 365 ライセンスが必要です。
  • コンテナーの管理アクション: FileStorageContainer.Manage.All では、サインインしているユーザーが SharePoint Embedded 管理者またはグローバル管理者である必要があります。 コンテナーへの通常のアプリ アクセスの場合は、必要なコンテナーの種類のアクセス許可で FileStorageContainer.Selected を使用します。

重要

すべての操作で同じトークンまたはアクセス許可リソースが使用されると想定しないでください。 フローを実装する前に、例外的なアクセス パターンを確認します。

コンテナー型アプリケーションのアクセス許可を付与する

所有アプリケーションは、消費テナントでの コンテナー タイプの登録 を通じて、コンテナー タイプのアプリケーションのアクセス許可を付与します。 これらのアクセス許可によって、アプリケーションがコンテナー タイプのコンテナーで実行できる操作が決まります。

アクセス許可 説明
なし このコンテナー タイプのコンテナーまたはコンテンツへのアクセス許可はありません。
ReadContent このコンテナー タイプのコンテナーの内容を読み取ります。
WriteContent このコンテナー タイプのコンテナーにコンテンツを書き込みます。 ReadContent が必要です。
作成する このコンテナー タイプのコンテナーを作成します。
削除 このコンテナー タイプのコンテナーを削除します。
読み取り このコンテナー タイプのコンテナーのメタデータを読み取ります。
書き込み このコンテナー タイプのコンテナーのメタデータを更新します。
EnumeratePermissions コンテナーのメンバーとそのロールを列挙します。
AddPermissions メンバーをコンテナーに追加します。
UpdatePermissions 既存のメンバーのロールを変更する。
DeletePermissions コンテナーから他のメンバー (self 以外) を削除します。
DeleteOwnPermission コンテナーから自分のメンバーシップを削除します。
ManagePermissions コンテナー ロールのメンバーを追加、削除 (self を含む)、または更新します。
ManageContent コンテナー コンテンツを管理します (WriteContent に加えて、アプリのみモードでチェックアウトを破棄します)。
Full このコンテナー タイプのコンテナーのすべてのアクセス許可。

コンテナーの種類の所有者を管理する

外部 ID ではない Microsoft Entra ユーザーは、コンテナーの種類の所有者になることができます。 fileStorageContainerType リソースのアクセス許可ナビゲーション プロパティによる所有者管理は、現在 Microsoft Graph ベータ版でのみ使用できます。 各エントリには owner ロールがあり、 grantedToV2を介してユーザーを識別します。

SharePoint Embedded 管理者は、所有テナントで作成され、使用中のテナントにインストールされているすべてのアプリケーションを管理できます。 必要な最低特権ロールを割り当てます。これらのタスクでは、全体管理者よりも SharePoint Embedded 管理者ロールをお勧めします。

コンテナーのアクセス許可について

コンテナーのアクセス許可は、委任されたアクセスにのみ適用されます。 ユーザーなしでコンテナーにアクセスするアプリは、代わりに、そのコンテナーの種類であるアプリケーションのアクセス許可で定義されたフル アクセスを取得します。

ユーザーは、次の 2 つの方法でコンテナー メンバーシップを取得します。

  • 直接メンバーシップ — ユーザーは特定のアクセス許可を持つコンテナーに直接追加されます。
  • 推移的なメンバーシップ — ユーザーは、コンテナーのメンバーである Microsoft 365 グループ に属しています。

ユーザーは、次のいずれかの役割を持つコンテナーのメンバーである必要があります。

役割 アクセスの概要
Reader コンテナーのプロパティとコンテンツを読み取ります。
ライター 閲覧者のアクセスに加えて、コンテンツの作成、更新、削除、および適用可能なプロパティの更新。
Manager ライター アクセスとコンテナー メンバーシップの管理。
Owner マネージャー アクセスとコンテナーの削除。

ユーザーが代理呼び出しを使用してコンテナーを作成すると、そのユーザーに所有者ロールが自動的に割り当てられます。

コンテナー アクセスを許可せずに個々のアイテムを共有するには、 driveItem 招待 または 作成アクセス許可 エンドポイントを使用します。 アイテムを共有しても、コンテナーやその中の他のアイテムへのアクセスは許可されません。

認証の検証

フィーチャー コードの前にフローを検証します。

  1. 管理者の同意が正常に完了したことを確認します。
  2. 委任されたトークンを取得します。
  3. アプリ専用トークンを取得します。
  4. トークンの種類に一致する単純な Graph エンドポイントを呼び出します。
  5. 通話アプリが登録されていることを確認します。
  6. 委任された呼び出しのユーザー メンバーシップを確認します。
  7. アプリのみのアクセスがコンテナーの種類のアクセス許可によって制限されていることを確認します。

認証エラーのトラブルシューティング

現象 チェック
Graph 呼び出しが未承認を返す トークンが見つからないか、期限が切れているか、またはリソースが間違っています。
Graph 呼び出しの戻り値が許可されていません 同意、Graph アクセス許可、またはコンテナーの種類のアクセス許可がありません。
1 人のユーザーに対して委任された呼び出しが失敗する ユーザーがコンテナー メンバーではないか、必要なロールがありません。
アプリのみの通話のアクセス権が多すぎる コンテナーの種類のアクセス許可が必要以上に広い。
登録呼び出しが失敗する FileStorageContainerTypeReg.Selectedを使用します。委任された呼び出しの場合、ユーザーには SharePoint Embedded 管理者またはグローバル管理者の役割が必要です。
検索呼び出しが失敗する 検索固有の例外アクセス パターンを確認します。

次の手順

構成したフローを使用して、 コンテナーを作成および管理します