在 Microsoft Graph 中启用按流量计费的 API 和服务

Microsoft Graph 中的某些 API 和服务是 按流量计费的,需要使用付费。 有关需要付款的 API 的当前列表,请参阅 Microsoft Graph 中的按流量计费的 API 和服务

若要在 Microsoft Graph 中使用按流量计费的 API 和服务,使用 API 的 Azure Active Directory 应用程序的应用程序注册必须与 Azure 订阅相关联。 此订阅将对任何按流量计费的费用计费。 此关联还允许使用 Azure 成本管理 + 计费 来了解和管理应用程序的成本。

本文介绍如何将应用程序与 Azure 订阅相关联。

已知限制

以下限制适用于按流量计费的 API:

  • Microsoft Graph 中的按流量计费的 API 和服务目前仅在 Microsoft 全球环境中可用,不适用于国家云部署,包括通过全球 Microsoft Graph 终结点访问的 Microsoft 365 GCC 部署。 有关国家云的详细信息,请参阅 国家云部署
  • 目标应用程序必须是机密客户端应用程序 (例如 Web 应用程序、Web API 或守护程序/服务) 。 不支持公共客户端应用程序 (桌面和移动应用程序) 。

先决条件

在 Microsoft Graph 中访问按流量计费的 API 和服务之前,必须完成以下步骤:

  • 在 Azure Active Directory (Azure AD) 中创建应用程序注册,该应用程序将调用按流量计费的 Microsoft 365 API 和服务。
  • 如果没有 Azure 订阅,请立即在包含应用程序注册的租户 中创建一个
  • 必须对要使用的活动 Azure 订阅具有参与者权限,以及目标应用程序注册的应用程序所有者权限。
  • 如果计划使用受保护的 API,请提交请求表单(如果适用):

启用应用程序

若要使应用程序能够使用 Microsoft Graph 中的按流量计费的 API 和服务,它必须与 Azure 订阅相关联。 若要创建此关联,必须创建 Microsoft.GraphServices/accounts 类型的 Azure 资源。 Azure 资源将单个 Azure AD 应用程序注册连接到 Azure 订阅,该订阅对应用程序的按流量计费 API 的使用量计费。

使用以下步骤创建 Microsoft.GraphServices/accounts Azure 资源并将其链接到应用程序:

注意:可以通过登录https://portal.azure.com并选择Cloud Shell或使用本地 Azure 命令行界面来完成以下步骤。 如果首次使用 Cloud Shell,可能需要创建存储帐户。 选择 Azure 订阅,选择 “创建”,然后按照说明创建存储帐户。

  1. 如果有多个 Azure 订阅,有关设置活动订阅的信息,请参阅 使用多个 Azure 订阅;否则,请转到下一步。

  2. 使用 az provider register 在活动订阅上注册 Microsoft.GraphServices 资源提供程序,以创建 Azure 资源。 将以下命令复制到命令行界面,然后键入 <Enter>。

az provider register --namespace Microsoft.GraphServices
  1. 使用 az resource create 创建 Microsoft.GraphServices/accounts 资源类型的新实例,以将应用程序注册与活动订阅相关联。 将以下命令复制到命令行界面中,将表中列出的参数替换为自己的值,然后键入 <Enter>。 如果命令成功,响应将包括新创建资源的 JSON 表示形式。
az resource create --resource-group myRG --name myGraphAppBilling --resource-type Microsoft.GraphServices/accounts --properties  "{`"appId`": `"myAppGUID`"}" --location Global --subscription mySubscriptionGUID
参数 说明
myRG 要向其添加新创建资源的现有 Azure 资源组的名称。
myGraphAppBilling 要为此资源实例提供的名称。
myAppGUID 应用程序 (客户端) 要启用的应用程序的 ID,作为字符串参数提供;例如,00000000-0000-0000-0000-0000000000000。
mySubscriptionGUID 将接收计费事件的 Azure 订阅的 ID,作为字符串参数提供;例如,00000000-0000-0000-0000-0000000000000。

成功的 JSON 结果如下所示:

{
  "extendedLocation": null,
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.GraphServices/accounts/myGraphAppBilling",
  "identity": null,
  "kind": null,
  "location": "Global",
  "managedBy": null,
  "name": "myGraphAppBilling",
  "plan": null,
  "properties": {
    "appId": "00000000-0000-0000-0000-000000000000",
    "billingPlanId": "00000000-0000-0000-0000-000000000000",
    "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"
}

在应用程序中使用按流量计费的 API

关联应用程序注册和订阅后,应用程序可以开始使用 Microsoft Graph 中的按流量计费的 API 和服务。 从这些请求产生的成本将计入与应用程序关联的 Azure 订阅。

注意: 应用程序可能需要请求新的 OAuth 访问令牌,然后才能允许对按流量计费的 API 的请求。

可以通过 Azure 成本管理 + 计费监视 Microsoft Graph 中按流量计费的 API 和服务的成本和使用情况。 这提供对订阅内成本的访问权限,可以根据应用程序、呼叫租户或计量进行拆分。

按流量计费的 API 和服务使用情况的帐单

订阅计费周期运行后(通常在当月的第 5 天),订阅所有者或具有基于角色权限的用户可以下载发票。 有关详细信息,请参阅 查看和下载 Azure 发票

发票将包含详细信息,使你能够了解应用程序生成的使用量,以及用于发生该使用情况的多租户应用程序的详细信息。 有关详细信息,请参阅 了解 Azure 发票

另请参阅