Microsoft Graph で Exchange Online のメールボックスを作成する

Microsoft Graph では Exchange Online のメールボックスの作成はできないと思われがちですが、ユーザーの作成とライセンスの割り当てを行うことができるので、結果としてメールボックスの作成を行うことができます。

Step 1. ユーザーの作成

まずはユーザーを作成します。ポイントとしては、この時に usageLocation を指定することです。この例では JP (日本) を指定しています。その他の値は適宜変更してください。

POST https://graph.microsoft.com/v1.0/users

{
    "accountEnabled": true,
    "displayName": "testUser05",
    "mailNickname": "testUser05",
    "passwordProfile": {
        "password": "password"
    },
    "userPrincipalName": "testUser05@contoso.onmicrosoft.com",
    "usageLocation": "JP"
}

Step 2. SkuId を確認する

ライセンスを割り当てるためには SkuId を知っている必要があります。以下のようにリクエストしてサブスクリプションの名前とそれに対応する SkuId を取得します。例えば Office 365 E3 なら ENTERPRISEPACK なので、その SkuId を取得します。

GET https://graph.microsoft.com/v1.0/subscribedSkus/?$select=skuPartNumber,skuid

Step 3. ライセンスを割り当てる

作成したユーザーに対してライセンスを割り当てます。ユーザーの UPN と skuId は適宜変更してください。

POST https://graph.microsoft.com/v1.0/users/testUser05@contoso.onmicrosoft.com/assignLicense

{
    "addLicenses": [
        {
            "skuId": "6fd2c87f-b296-42f0-b197-1e91e994b900"
        }
    ],
    "removeLicenses": []
}

以上で完了です。最大 24 時間待てばメールボックスが作成されているはずです。