Microsoft Graph で従量制課金 API とサービスを有効にする
Microsoft Graph の一部の API とサービスは 従量制課金され、使用するために支払いが必要です。 支払いを必要とする API の現在の一覧については、「 Microsoft Graph の従量制課金 API とサービス」を参照してください。
Microsoft Graph で従量制課金 API とサービスを使用するには、API を使用する Microsoft Entra アプリケーションのアプリケーション登録を Azure サブスクリプションに関連付ける必要があります。 このサブスクリプションは、従量制課金に対して課金されます。 この関連付けにより、 Azure Cost Management + Billing を使用して、アプリケーションのコストを理解して管理することもできます。
この記事では、アプリケーションを Azure サブスクリプションに関連付ける方法について説明します。
従量制課金 API には、次の制限事項が適用されます。
- Microsoft Graph の従量制課金 API とサービスは現在、Microsoft グローバル環境でのみ使用でき、世界中の Microsoft Graph エンドポイントを介してアクセスされる Microsoft 365 GCC デプロイを含む、国内クラウドデプロイでは使用できません。 各国のクラウドの詳細については、「 National Cloud のデプロイ」を参照してください。
- ターゲット アプリケーションは、機密クライアント アプリケーション (Web アプリケーション、Web API、デーモン/サービスなど) である必要があります。 パブリック クライアント アプリケーション (デスクトップ アプリケーションとモバイル アプリケーション) はサポートされていません。
- Azure マネージド ID は、従量制課金 API を呼び出すためにサポートされていません。 詳細については、「 マネージド ID をサポートする Azure サービス」を参照してください。
Microsoft Graph で従量制課金 API とサービスにアクセスするには、次の手順を実行する必要があります。
- 従量制課金の Microsoft 365 API とサービスを呼び出すアプリケーションのアプリケーション登録を Microsoft Entra ID で作成します。
- Azure サブスクリプションをお持ちでない場合は、アプリケーションの登録を含むサブスクリプションをテナントに 作成 します。
- 使用するアクティブな Azure サブスクリプションに対する共同作成者アクセス許可と、ターゲット アプリケーションの登録に対するアプリケーション所有者のアクセス許可が必要です。
アプリケーションが Microsoft Graph で従量制課金 API とサービスを使用できるようにするには、Azure サブスクリプションに関連付けられている必要があります。 この関連付けを作成するには、 Microsoft.GraphServices/accounts 型の Azure リソースを作成する必要があります。 Azure リソースは、1 つの Microsoft Entra アプリケーション登録を Azure サブスクリプションに接続します。このサブスクリプションでは、アプリケーションの従量制課金 API の使用量が課金されます。
次の手順を使用して、 Microsoft.GraphServices/accounts Azure リソースを作成し、アプリケーションにリンクします。
手記: 次の手順を実行するには、 https://portal.azure.com にサインインして Cloud Shell を選択するか、ローカルの Azure コマンド ライン インターフェイスを使用します。 Cloud Shell を初めて使用する場合は、ストレージ アカウントの作成が必要になる場合があります。 Azure サブスクリプションを選択し、[ 作成] を選択し、指示に従ってストレージ アカウントを作成します。 ローカルの Azure コマンド ライン インターフェイスを使用するには、 Azure CLI をインストールします。
複数の Azure サブスクリプションがある場合は、アクティブなサブスクリプションの設定の詳細については、「 複数の Azure サブスクリプションを使用する」を参照してください。それ以外の場合は、次の手順に進みます。
Azure Cloudshell または独自の Azure CLI インストールで az graph-services を使用して、Microsoft.GraphServices/accounts リソースの種類の新しいインスタンスを作成して、アプリケーションの登録をアクティブなサブスクリプションに関連付けます。
次のコマンドを任意のコマンド ライン インターフェイス (PowerShell、Bash、または Windows コマンド プロンプト) にコピーし、テーブルに一覧表示されているパラメーターを独自の値に置き換え、「 <Enter>」と入力します。 コマンドが成功した場合、応答には、新しく作成された課金リソースの JSON 表現が含まれます。
az graph-services account create --resource-group myRG --resource-name myGraphAppBilling --subscription mySubscriptionGUID --location global --app-id AppRegGUID
パラメーター | 説明 |
---|---|
myRG | 新しく作成されたリソースを追加する既存の Azure リソース グループの名前。 |
myGraphAppBilling | このリソース インスタンスに指定する名前。 |
myAppGUID | 有効になっているアプリケーションのアプリケーション (クライアント) ID。文字列パラメーターとして指定されます。たとえば、123e4567-e89b-12d3-a456-426655440000。 |
mySubscriptionGUID | 課金イベントを受け取る Azure サブスクリプションの ID。文字列パラメーターとして指定されます。たとえば、123e4567-e89b-12d3-a456-426655440000。 |
成功した JSON の結果は次のようになります。
{
"extendedLocation": null,
"id": "/subscriptions/<mySubscriptionGUID>/resourceGroups/<myRG>/providers/Microsoft.GraphServices/accounts/<myGraphAppBilling>",
"identity": null,
"kind": null,
"location": "Global",
"managedBy": null,
"name": "<myGraphAppBilling>",
"plan": null,
"properties": {
"appId": "<myAppGUID>",
"billingPlanId": "123e4567-e89b-12d3-a456-426655440000",
"provisioningState": "Succeeded"
},
"resourceGroup": "<myRG>",
"sku": null,
"systemData": {
"createdAt": "2023-01-31T00:12:20.7893671Z",
"createdByType": "User",
"lastModifiedAt": "2023-01-31T00:12:20.7893671Z",
"lastModifiedByType": "User"
},
"tags": null,
"type": "microsoft.graphservices/accounts"
}
Microsoft Graph で従量制課金 API とサービスを使用するためにアプリケーションが適切に有効になっていることを確認するには、次の手順に従います。
手記: 次の手順を実行するには、 https://portal.azure.com にサインインして Cloud Shell を選択するか、ローカルの Azure コマンド ライン インターフェイスを使用します。 Cloud Shell を初めて使用する場合は、ストレージ アカウントの作成が必要になる場合があります。 Azure サブスクリプションを選択し、[ 作成] を選択し、指示に従ってストレージ アカウントを作成します。 ローカルの Azure コマンド ライン インターフェイスを使用するには、 Azure CLI をインストールします。
複数の Azure サブスクリプションがある場合は、アクティブなサブスクリプションの設定の詳細については、「 複数の Azure サブスクリプションを使用する」を参照してください。それ以外の場合は、次の手順に進みます。
az resource list を使用して、アクティブな Azure サブスクリプションに関連付けられているリソースを一覧表示します。 コマンド ライン インターフェイスに次のコマンドをコピーし、「 <Enter>」と入力します。 コマンドが成功した場合、応答には、アクティブな Azure サブスクリプションに関連付けられているリソースの JSON 表現が含まれます。
az resource list --resource-type Microsoft.GraphServices/accounts
成功した JSON の結果は次のようになります。
[
{
"changedTime": "2023-04-25T18:12:30.586342+00:00",
"createdTime": "2023-04-25T18:02:30.141407+00:00",
"extendedLocation": null,
"id": "/subscriptions/<mySubscriptionGUID>/resourceGroups/<myRG>/providers/Microsoft.GraphServices/accounts/<myGraphAppBilling>",
"identity": null,
"kind": null,
"location": "global",
"managedBy": null,
"name": "<myGraphAppBilling>",
"plan": null,
"properties": null,
"provisioningState": "Succeeded",
"resourceGroup": "<myRG>",
"sku": null,
"tags": null,
"type": "Microsoft.GraphServices/accounts"
}
]
- 手順 2 で返された値で、 az resource show を使用してリソースの完全な詳細を表示します。 次のコマンドをコマンド ライン インターフェイスにコピーし、テーブルに一覧表示されているパラメーターを独自の値に置き換え、「 <Enter>」と入力します。 コマンドが成功した場合、応答には要求されたリソースの JSON 表現が含まれます。
az resource show --resource-group myRg --name myGraphAppBilling --resource-type Microsoft.GraphServices/accounts
| Parameter | Description |
|:--------------------------|:----------------------------------------|
| myRG | The name of the Azure resource group provided in the result of step 2. |
| myGraphAppBilling | The name of the resource provided in the result of step 2. |
A successful JSON result will look something like this:
```json
{
"extendedLocation": null,
"id": "/subscriptions/<mySubscriptionGUID>/resourceGroups/<myRG>/providers/Microsoft.GraphServices/accounts/<myGraphAppBilling>",
"identity": null,
"kind": null,
"location": "Global",
"managedBy": null,
"name": "<myGraphAppBilling>",
"plan": null,
"properties": {
"appId": "<myAppGUID>",
"billingPlanId": "123e4567-e89b-12d3-a456-426655440000"
},
"resourceGroup": "<myRG>",
"sku": null,
"tags": null,
"type": "microsoft.graphservices/accounts"
}
properties プロパティには、関連付けられているアプリケーション登録のアプリケーション ID が含まれます。
アプリケーションの登録とサブスクリプションを関連付けた後、アプリケーションは Microsoft Graph で従量制課金 API とサービスの使用を開始できます。 これらの要求から生成されたコストは、アプリケーションに関連付けられている Azure サブスクリプションに課金されます。
手記: 従量制課金 API への要求が許可される前に、アプリケーションで新しい OAuth アクセス トークンを要求する必要がある場合があります。
Azure Cost Management + Billing を使用して、Microsoft Graph で従量制課金 API とサービスのコストと使用状況を監視できます。 これにより、サブスクリプション内のコストにアクセスできます。これは、アプリケーション、呼び出し元のテナント、またはメーターに基づいて分割できます。
サブスクリプションの課金サイクルが実行された後 、通常は月の 5 日目に、サブスクリプション所有者またはロールベースのアクセス許可を持つユーザーが請求書をダウンロードできます。 詳細については、「 Azure 請求書の表示とダウンロード」を参照してください。
請求書には、アプリケーションが生成する使用量と、その使用状況が発生しているマルチテナント アプリケーションの使用量を把握できる詳細が含まれます。 詳細については、「 Azure 請求書について」を参照してください。