適用対象: 開発者
SharePoint Embedded アプリがコンテナーを作成するか、使用しているテナント内のコンテンツにアクセスする前に、コンテナーの種類のアプリケーションのアクセス許可を登録します。
コンテナーの種類 ID と所有アプリケーションを使用できるように、最初にコンテナーの種類を作成して構成するを完了します。
登録が必要な理由
SharePoint Embedded アプリケーションは、コンテナーの種類がそのテナントに登録されるまで、使用しているテナント内のコンテナーと対話できません。
登録コントロール:
- コンテナーの種類にアクセスできるアプリケーション ID。
- 各アプリケーションに付与される委任されたアクセス許可。
- 各アプリケーションが持つアプリ専用のアクセス許可。
- ゲスト アプリケーションが所有するアプリケーションのコンテナーと対話できるかどうか。
登録が見つからないか不完全な場合、アクセス拒否エラーで後の呼び出しが失敗する可能性があります。
登録できるユーザーを理解する
コンテナーの種類の所有アプリケーションのみが、使用しているテナントで登録 API を呼び出すことができます。
所有するアプリケーションには、次のものが必要です。
- 使用しているテナントにインストールされているサービス プリンシパル。
- 管理使用しているテナントで登録を実行することに同意します。
-
FileStorageContainerTypeReg.SelectedMicrosoft Graph アクセス許可 (ユーザー委任またはアプリ専用)。 - Microsoft Graph リソースの有効なトークン。
注:
コンテナーの種類の登録 API は、Microsoft Graph v1.0 で使用できます。 所有アプリケーションがユーザーの代わりに登録 API を呼び出す場合 (委任)、そのユーザーに SharePoint Embedded Administrator ロールまたは グローバル管理者 ロールを割り当てる必要があります。 ユーザー コンテキスト (アプリのみ) なしでを呼び出すと、クライアント資格情報付与フローが使用されます。
管理者の同意を付与する
使用しているテナント管理者に、所有するアプリケーションに管理者の同意を付与するように依頼します。
Microsoft ID プラットフォーム管理者の同意エンドポイントを使用します。
https://login.microsoftonline.com/{consuming-tenant-id}/v2.0/adminconsent?client_id={owning-app-clientid}&scope=https://graph.microsoft.com/.default&redirect_uri={spe-app-redirect-uri}
オンボード フローの成功とエラー処理を構成します。
国内クラウド エンドポイントについては、「国内クラウド上のMicrosoft ID プラットフォーム エンドポイント」を参照してください。
登録用のトークンを取得する
登録には、委任された認証またはアプリのみの認証を使用します。
登録には次が必要です。
-
FileStorageContainerTypeReg.SelectedMicrosoft Graph アクセス許可。 - アプリのみの呼び出しの場合、 クライアント資格情報の付与フロー。
- 委任された呼び出しの場合は、SharePoint Embedded Administrator ロールまたはグローバル管理者ロールを持つサインイン ユーザー。
コンテナーの種類のアクセス許可を登録する
使用しているテナントで登録エンドポイントを呼び出します。
PUT https://graph.microsoft.com/v1.0/storage/fileStorage/containerTypeRegistrations/{containerTypeId}
{containerTypeId} は、所有テナントで作成されたコンテナーの種類 ID です。
要求本文で、コンテナーの種類に対するアプリケーションのアクセス許可許可を指定します。
所有しているアプリにアクセス許可を付与する
一般的な最初の登録では、委任された呼び出しとアプリのみの呼び出しに対する所有アプリの完全なアクセス許可が付与されます。
{
"applicationPermissionGrants": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegatedPermissions": ["full"],
"applicationPermissions": ["full"]
}
]
}
サンプル アプリ ID を独自のアプリケーション ID に置き換えます。
注意
運用には最小限の特権を使用します。 アプリケーションで完全なコンテナーの種類へのアクセスが必要な場合にのみ、 full を付与します。
ゲスト アプリにアクセス許可を付与する
所有しているアプリは、別のアプリケーションのアクセス許可を登録することもできます。
このパターンは、バックアップや処理など、定義されたワークロードがゲスト アプリに必要な場合に使用します。
{
"applicationPermissionGrants": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegatedPermissions": ["full"],
"applicationPermissions": ["full"]
},
{
"appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
"delegatedPermissions": ["read", "write"],
"applicationPermissions": ["none"]
}
]
}
両方のアプリ ID をアプリケーションに置き換えます。
アクセス許可の値
| アクセス許可 | 使用 |
|---|---|
None |
アクセス許可を付与しません。 |
ReadContent |
この種類のコンテナー内のコンテンツを読み取る。 |
WriteContent |
この種類のコンテナーにコンテンツを書き込みます。 |
Create |
この種類のコンテナーを作成します。 |
Delete |
この種類のコンテナーを削除します。 |
Read |
コンテナー メタデータを読み取る。 |
Write |
コンテナー メタデータを更新します。 |
EnumeratePermissions |
コンテナー メンバーとロールを列挙します。 |
AddPermissions |
コンテナー メンバーを追加します。 |
UpdatePermissions |
既存のメンバーシップを更新します。 |
DeletePermissions |
他のメンバーを削除します。 |
DeleteOwnPermission |
呼び出し元自身のメンバーシップを削除します。 |
ManagePermissions |
コンテナー ロールの割り当てを管理します。 |
ManageContent |
この種類のコンテナーのコンテンツを管理します。 |
Full |
すべてのアクセス許可を付与します。 |
注:
WriteContentは、ReadContentなしでは付与できません。
登録を検証する
登録が成功すると、応答本文で 201 Created と構成されたアクセス許可が返されます。
登録が成功した後:
- 応答に予想されるアプリ ID が含まれていることを確認します。
- 委任された配列とアプリ専用配列が目的の許可と一致することを確認します。
- SharePoint Embedded アクセス許可を持つ Microsoft Graph トークンを取得します。
- 登録されているアクセス許可に一致するリスクの低い操作を試してください。
- [ 認証と承認の構成] に進みます。
同意に関する問題のトラブルシューティング
| 現象 | 考えられる原因 | アクション |
|---|---|---|
401 Unauthorized |
トークンが見つからないか無効です | 有効なアプリ専用トークンを要求します。 |
403 Forbidden |
アプリにアクセス許可がない、またはアプリを所有していない |
FileStorageContainerTypeReg.Selected、同意、アプリ ID を確認します。 |
404 Not Found |
コンテナーの種類が存在しない | ID とテナントを確認します。 |
| Graph 呼び出しでアクセスが拒否されました | 登録が見つからないか、不十分です | 必要なアクセス許可で再登録します。 |
| 管理非表示のアクセス許可が見つかりません | ポータルで公開されない | 管理者の同意 URL を使用します。 |
安全に再登録する
登録 API を呼び出すことができる回数に制限はありません。
最後に成功した登録呼び出しによって、使用しているテナントで使用される設定が決まります。
安全な更新プロセスを使用します。
- 完全な登録ペイロードを構築します。
- アクセス権を保持する必要があるすべてのアプリを含めます。
- 登録呼び出しを送信します。
- 応答を検証します。
- アプリ ロールごとに煙テストを実行します。
重要
結果の登録にアプリケーションとアクセス許可のセットのみを含める場合を除き、部分的なペイロードを送信しないでください。
次の手順
「認証と承認の 構成」でトークンと承認フローを構成します。