適用対象: 開発者
SharePoint Embedded アプリケーションが Microsoft Graph または SharePoint Embedded API を呼び出す前に、認証と承認を構成します。
コンテナーの種類が使用しているテナントに登録されるように、最初に アプリケーションのアクセス許可 の登録を完了します。
アクセス モデルについて
SharePoint Embedded では、2 つのアクセス許可レイヤーが使用されます。
Microsoft Graph のアクセス許可を使用すると、アプリで SharePoint Embedded エンドポイントを呼び出すことができるようになります。
コンテナーの種類のアプリケーションのアクセス許可を使用すると、アプリは特定のコンテナーの種類のコンテナーにアクセスできます。
両方のレイヤーが必要です。
重要
Microsoft Graph の同意だけでは、コンテナーへのアクセスは許可されません。 アプリには、コンテナーの種類に対するアクセス許可も付与する必要があります。
Microsoft Entra ID アプリを構成する
Microsoft Entra ID アプリの登録から始めます。
アプリケーションの種類に合わせて構成します。
- 所有しているアプリケーションを登録または識別します。
- 開発および運用クライアントのリダイレクト URI を追加します。
- 必要に応じ、アプリ専用フローの資格情報を追加します。
- SharePoint Embedded アクセスに対する Microsoft Graph アクセス許可を追加します。
- 登録シナリオに必要な Microsoft Graph アクセス許可を追加します。
- 必要に応じて、管理者に同意を求めます。
一般的な手順については、「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 Administrator ロールまたはグローバル管理者ロールを持っている必要があります。
アプリケーションのアクセス許可を登録するには、この アクセス許可を使用します。
可能な場合は委任されたアクセスを優先する
可能な限り、ユーザーの代わりにアクセスを使用します。
委任されたアクセスにより、セキュリティ、説明責任、監査性、およびユーザーのコンテナー メンバーシップとの整合性が向上します。
委任されたアクセスを使用する場合、有効なアクセス許可は、アプリケーションのアクセス許可とユーザー コンテナーのアクセス許可の積集合です。
ユーザーはコンテナーのメンバーである必要があります。
機密クライアント アプリケーションを使用して、ユーザーに代わって実行されるアクションをアプリで制御します。 パブリック クライアント アプリケーションは、エンド ユーザーにユーザー トークンを公開できます。これにより、アプリの制御外で実行されるアクションが発生する可能性があります。 詳細については、「 パブリック クライアントアプリケーションと機密クライアント アプリケーション」を参照してください。
委任されたトークンの取得を構成する
委任された呼び出しの場合:
- Microsoft ID プラットフォームを使用してユーザーにサインインします。
- 委任された
FileStorageContainer.Selectedを要求します。 - 使用しているテナントのユーザー同意ポリシーに従って、委任された同意が付与されていることを確認します。
- Microsoft Graph のアクセス トークンを取得します。
- Microsoft Graph SharePoint Embedded エンドポイントを呼び出します。
- ユーザーがターゲット コンテナーのメンバーであることを確認します。
ユーザーがコンテナー メンバーでない場合、アプリはユーザーの代わりにそのコンテナーにアクセスできません。
アプリのみのトークン取得を構成する
ユーザーとして実行されないサービス ワークロードには、アプリ専用アクセスを使用します。
アプリのみの呼び出しの場合:
- 証明書などのアプリケーション資格情報を構成します。
- アプリケーションの
FileStorageContainer.Selectedを要求します。 - 使用しているテナント管理者に管理者の同意を付与します。
- クライアント資格情報フローを使用してトークンを取得します。
- Microsoft Graph SharePoint Embedded エンドポイントを呼び出します。
- コンテナーの種類のアクセス許可をワークロードのニーズに制限します。
注意
アプリ専用トークンは、コンテナーの種類のアプリケーションのアクセス許可によって有効になっているすべてのコンテナーにアクセスできます。 最小限の権限を使用する。
Microsoft Graph API を呼び出す
トークンの取得後、Microsoft Graph を介して SharePoint Embedded 操作を呼び出します。 便利な参照は次のとおりです。
ライフサイクル操作の コンテナーの作成と管理 に進みます。
Graph を介して公開されない操作を処理する
一部の操作には、優れたアクセス パターンがあります。
これらの操作では、優れたアクセス パターンが使用されます。
- Microsoft Graph コンテナーの種類 API (委任されたアクセス許可を
FileStorageContainerType.Manage.All) を使用して、所有テナント内のコンテナーの種類の管理を行います。 - Microsoft Graph コンテナーの種類登録 API (
FileStorageContainerTypeReg.Selected) を使用して、使用しているテナント内のコンテナーの種類の登録。 - SharePoint Embedded エージェントは、独自のアクセス許可要件を使用してエクスペリエンスを提供します。
-
検索: Microsoft Search on SharePoint Embedded コンテンツには、
FileStorageContainer.Selectedに加えて委任されたFiles.Read.Allアクセス許可が必要です。 -
ユーザー ライセンスを必要とする操作: 一覧表示コンテナー は、OneDrive を持たない委任されたユーザーの
403 Forbiddenを返します (アプリのみの呼び出しは影響を受けません)。ユーザーは Office @mentions ユーザー ピッカーに表示するには Microsoft 365 ライセンスが必要です。 -
コンテナーに対する管理アクション:
FileStorageContainer.Manage.Allには、サインインしているユーザーが SharePoint Embedded Administrator またはグローバル管理者である必要があります。 管理者以外のユーザーの場合、Manage.Allのみが許可されている場合、アプリはアクセスを拒否されます。Manage.AllとFileStorageContainer.Selectedの両方が許可されている場合、Manage.Allは無視されます。
重要
すべての操作で同じトークンまたはアクセス許可リソースが使用されているとは考えないでください。 フローを実装する前に、優れたアクセス パターンを確認してください。
コンテナーの種類のアプリケーションのアクセス許可を付与する
所有するアプリケーションは、使用しているテナントでの コンテナーの種類の登録を通じて、コンテナーの種類 のアプリケーションのアクセス許可を付与します。 これらのアクセス許可は、コンテナーの種類のコンテナーでアプリケーションが実行できる操作を決定します。
| アクセス許可 | 説明 |
|---|---|
| なし | このコンテナーの種類のコンテナーまたはコンテンツに対するアクセス許可はありません。 |
| ReadContent | このコンテナーの種類のコンテナーの内容を読み取る。 |
| WriteContent | このコンテナーの種類のコンテナーにコンテンツを書き込みます。 ReadContent が必要です。 |
| 作成する | このコンテナーの種類のコンテナーを作成します。 |
| 削除 | このコンテナーの種類のコンテナーを削除します。 |
| 読み取り | このコンテナーの種類のコンテナーのメタデータを読み取る。 |
| 書き込み | このコンテナーの種類のコンテナーのメタデータを更新します。 |
| EnumeratePermissions | コンテナーのメンバーとそのロールを列挙します。 |
| AddPermissions | コンテナーにメンバーを追加します。 |
| UpdatePermissions | 既存のメンバーのロールを変更します。 |
| DeletePermissions | コンテナーから他のメンバー (自己ではなく) を削除します。 |
| DeleteOwnPermission | コンテナーから独自のメンバーシップを削除します。 |
| ManagePermissions | コンテナー ロールのメンバーを追加、削除 (自己を含む)、または更新します。 |
| ManageContent | コンテナー コンテンツを管理します (WriteContent に加えて、アプリ専用モードでチェックアウトを破棄します)。 |
| Full | このコンテナーの種類のコンテナーに対するすべてのアクセス許可。 |
コンテナーの種類の所有者を管理する
外部 ID ではないMicrosoft Entraユーザーは、コンテナーの種類の所有者にすることができます。 所有者は、fileStorageContainerType リソースのアクセス許可ナビゲーション プロパティを使用して管理されます。 各エントリには owner ロールがあり、 grantedToV2を介してユーザーを識別します。
- 自動割り当て: コンテナーの種類を作成する ユーザーは、所有者として自動的に割り当てられます。
-
所有者の追加:
POST /containerTypes/{id}/permissionsを使用して、コンテナーの種類ごとに最大 3 人の所有者を追加します。 -
所有者の削除:
DELETE /containerTypes/{id}/permissions/{id}を使用して所有者を削除します。 -
所有者の読み取り:
GET /containerTypes/{id}?$expand=permissionsまたはGET /containerTypes/{id}/permissionsを使用して所有者を取得します。
SharePoint Embedded Administrators は、所有テナントで作成され、使用しているテナントにインストールされたすべてのアプリケーションを管理できます。 必要最小限の特権ロールを割り当てます。これらのタスクでは、SharePoint Embedded Administrator ロールがグローバル管理者よりも推奨されます。
コンテナーのアクセス許可について
コンテナーのアクセス許可は、委任されたアクセスにのみ適用されます。 ユーザーなしでコンテナーにアクセスするアプリは、代わりにコンテナーの種類のアプリケーションのアクセス許可によって定義されたフル アクセス権を取得します。
ユーザーは、次の 2 つの方法でコンテナー メンバーシップを取得します。
- 直接メンバーシップ — ユーザーは、特定のアクセス許可を持つコンテナーに直接追加されます。
- 推移的なメンバーシップ - ユーザーは、コンテナーのメンバーである Microsoft 365 グループ に属しています。
ユーザーは、次のいずれかのロールを持つコンテナーのメンバーである必要があります。
| 役割 | アクセスの概要 |
|---|---|
| Reader | コンテナーのプロパティとコンテンツを読み取る。 |
| ライター | 閲覧者アクセスに加えて、コンテンツの作成、更新、削除、および該当するプロパティの更新を行います。 |
| Manager | ライター アクセスとコンテナー メンバーシップの管理。 |
| Owner | Manager アクセスとコンテナーの削除。 |
ユーザーが委任された呼び出しを通じてコンテナーを作成すると、そのユーザーには所有者ロールが自動的に割り当てられます。
コンテナーへのアクセス権を付与せずに個々のアイテムを共有するには、 driveItem の招待 または アクセス許可の作成 エンドポイントを使用します。 アイテムを共有しても、コンテナーやその中の他のアイテムへのアクセスは許可されません。
認証を検証する
機能コードの前にフローを検証します。
- 管理者の同意が正常に完了したことを確認します。
- 委任されたトークンを取得します。
- アプリ専用トークンを取得します。
- トークンの種類に一致する単純な Graph エンドポイントを呼び出します。
- 登録に呼び出し元アプリが含まれていることを確認します。
- 委任された呼び出しのユーザー メンバーシップを確認します。
- アプリのみのアクセスがコンテナーの種類のアクセス許可によって制限されていることを確認します。
承認エラーのトラブルシューティング
| 現象 | チェック |
|---|---|
| Graph 呼び出しで未承認が返される | トークンが見つからない、期限切れ、または間違ったリソースの場合。 |
| Graph 呼び出しは禁止を返します | 同意、Graph アクセス許可、またはコンテナーの種類のアクセス許可がありません。 |
| 委任された呼び出しが 1 人のユーザーに対して失敗する | ユーザーがコンテナー メンバーではないか、必要なロールがありません。 |
| アプリのみの呼び出しにアクセスが多すぎます | コンテナーの種類のアクセス許可は、必要以上に広いです。 |
| 登録呼び出しが失敗する |
FileStorageContainerTypeReg.Selectedを使用します。委任された呼び出しの場合、ユーザーには SharePoint Embedded Administrator ロールまたはグローバル管理者ロールが必要です。 |
| 検索呼び出しが失敗する | 検索固有の例外的なアクセス パターンを確認します。 |
次の手順
構成したフローを使用して 、コンテナーを作成および管理します。