Microsoft Graph API を使用してクラス ノートブックとサイトを大規模にプロビジョニングする

Microsoft がすべての製品とサービスにわたってセキュリティ体制を強化する中 、API 機能 に最近の変更があり、API を使用してクラス ノートブックをプロビジョニングするために以前はアプリ専用のアクセス許可に依存していた顧客に影響を与える可能性があります。

サポートされている代替方法に従うことにより、Microsoft Graph API を使用してサイトやノートブックを大規模にプロビジョニングすることは引き続き可能です。 この記事では、手順の概要を示し、関連ドキュメントへのリンクを提供します。

概要

クラス ノートブックと SharePoint サイトの大規模なプロビジョニングを継続するには:

  1. 新しいサイト (クラスごとに 1 つのグループ/サイト) を作成するときに CreateEducationClass API を使用します
  2. 既存のサイトの場合は、SharePoint CreatePermission API を使用して、OneNote Class Notebook AppId の権限をそのサイトに付与します。
  3. 上記の手順が完了すると、既存の Class Notebook 機能が復元され、 GetClassNotebooksAddTeacheraddStudent などの API 呼び出しが期待どおりに機能するはずです。

手順ごとの説明

1. CreateEducationClass を使用して新しいサイトを作成する

CreateEducationClass API を使用して、クラスごとに新しい Microsoft 365 グループおよび関連する SharePoint サイトを作成します。

  • この API は、グループ、サイト、および関連するリソースを 1 回の呼び出しでプロビジョニングします。
  • サイトが作成されたら、既存の API を使用してノートブックとアクセス許可を管理できます。

リファレンス: CreateEducationClass API ドキュメント

2. 既存のサイトへのアクセス許可を付与する

既存のグループまたはサイトの場合は、 Sites.Selected アクセス許可モデルを使用して、クラス ノートブック アプリのアクセスを明示的に付与する必要があります。

必要なアクセス許可

  • Sites.Selected スコープを使用したアプリのみのアクセス。
  • EDU OneNote アプリにサイトへのフル コントロールを付与します。

サンプル要求

POST https://graph.microsoft.com/v1.0/sites/{sitesId}/permissions Content-Type: application/json { "roles": ["fullcontrol"], "grantedToIdentities": [{ "application": { "id": "13291f5a-59ac-4c59-b0fa-d1632e8f3292", //ターゲット アプリケーションのクライアント ID "displayName": "EDU OneNote" //ターゲット アプリケーションの表示名 } }] }

参照:

アクセス許可 API の作成

サイトを使用するアプリケーションを開発します。SPO サイトの選択したアクセス許可

Microsoft 365 開発者ブログ: 特定の SharePoint サイト コレクションに対するアプリ アクセスの制御が Microsoft Graph で利用できるようになりました

3. ノートブック管理に既存の API を使用する

アクセス許可が正しく構成されると、次の API などの既存のクラス ノートブック機能は引き続き以前と同様に動作します。

  • GetClassNotebooks

  • AddTeacher

  • AddStudent

  • CreateClassNotebook

    • 注: 上記のように、新しいグループ/サイトの場合は、代わりに CreateEducationClass を使用します