🏗️

Microsoft Graph API でサイト コレクションの作成ができるようになりました

に公開
2026/08/08

以下のブログでも紹介されているように Microsoft Graph API を使用してサイト コレクションの作成ができるようになりました。

https://devblogs.microsoft.com/microsoft365dev/sharepoint-site-creation-in-microsoft-graph/?WT.mc_id=M365-MVP-5002941

これまではサイト コレクションを作成する場合、SharePoint REST API を使用する必要がありました。エンドポイントは /_api/SPSiteManager/create です。

https://learn.microsoft.com/ja-jp/sharepoint/dev/apis/site-creation-rest?WT.mc_id=M365-MVP-5002941

この方法ではいくつか問題点がありました。

  • SharePoint REST API は Microsoft Graph API のアクセス トークンでは呼び出せないため別にアクセス トークンを取得しなければならない
  • Sites.FullControl.All というほぼなんでもできる非常に強いアクセス許可を必要とする

特にセキュリティを考えるとアクセス許可は最小限にしたいところです。Microsoft Graph API のサイト コレクションの作成では新たに Sites.Create.All というスコープを導入し、最低限のアクセス許可で動作するようになっています。

API の呼び出しはそれほど難しくありません。

POST https://graph.microsoft.com/beta/sites
Content-Type: application/json

{
  "name": "Communication Site Test",
  "webUrl": "https://contoso.sharepoint.com/sites/commsite1",
  "locale": "en-US",
  "shareByEmailEnabled": false,
  "description": "Test Site Description",
  "template": "sitepagepublishing",
  "ownerIdentityToResolve": {
    "email": "ryan@contoso.com"
  }
}

選択できるサイト テンプレートは以下の 3 つになります。これ以外の種類を選択することはまずありませんが注意が必要です。

オプション テンプレート名 テンプレート ID
sts チーム サイト STS#3
sitepagepublishing コミュニケーション サイト SITEPAGEPUBLISHING#0
group Microsoft 365 グループ サイト GROUPS#0

作成されたサイトには Sites.Selected (リソース固有のアクセス許可) のスコープで動作するためのアクセス許可が割り当てられます。これは /sites/{{site-id}}/permission を呼び出して確認できます。

{
  "value": [
    {
      "id": "aTowaS50...",
      "roles": [
        "fullcontrol"
      ],
      "grantedToIdentitiesV2": [
        {
          "application": {
            "displayName": "Sample Application",
            "id": "95b74787-..."
          }
        }
      ],
      "grantedToIdentities": [
        {
          "application": {
            "displayName": "Sample Application",
            "id": "95b74787-..."
          }
        }
      ]
    }
  ]
}

サイト コレクションに対するフル コントロールのアクセス許可があるので、アクセス許可の追加やリストの作成などさまざまな操作ができるようになります。リソース固有のアクセス許可については Microsoft Learn のドキュメントも参考にしてください。

https://learn.microsoft.com/ja-jp/sharepoint/dev/sp-add-ins-modernize/understanding-rsc-for-msgraph-and-sharepoint-online?WT.mc_id=M365-MVP-5002941

Discussion