Включение лимитных API и служб в Microsoft Graph

Некоторые API и службы в Microsoft Graph лимитируются и требуют оплаты за использование. Текущий список API- интерфейсов, требующих оплаты, см. в разделе Лимитные API и службы в Microsoft Graph.

Чтобы использовать лимитные API и службы в Microsoft Graph, регистрация приложения для приложения Microsoft Entra, использующего API, должна быть связана с подпиской Azure. Плата за эту подписку будет выставляться за все лимитные расходы. Эта связь также позволяет использовать управление затратами и выставление счетов Azure для понимания затрат приложения и управления ими.

В этой статье описывается, как связать приложение с подпиской Azure.

Известные ограничения

К лимитным API применяются следующие ограничения:

  • Лимитные API и службы в Microsoft Graph в настоящее время доступны только в глобальной среде Майкрософт, а не в национальных облачных развертываниях, включая развертывания Microsoft 365 GCC, доступные через глобальную конечную точку Microsoft Graph. Дополнительные сведения о национальных облаках см. в статье Развертывание национальных облаков.
  • Целевое приложение должно быть конфиденциальным клиентским приложением (например, веб-приложением, веб-API или управляющая программа или служба). Общедоступные клиентские приложения (классические и мобильные приложения) не поддерживаются.

Предварительные требования

Прежде чем получить доступ к лимитным API и службам в Microsoft Graph, необходимо выполнить следующие действия.

  • Создайте регистрацию приложения в Microsoft Entra ID для приложения, которое будет выполнять вызовы к лимитным API и службам Microsoft 365.
  • Если у вас нет подписки Azure, создайте ее в клиенте, который включает регистрацию приложения.
  • У вас должны быть разрешения участник для активной подписки Azure, которую вы хотите использовать, а также разрешения владельца приложения для регистрации целевого приложения.

Включение приложения

Чтобы разрешить приложению использовать лимитные API и службы в Microsoft Graph, оно должно быть связано с подпиской Azure. Чтобы создать эту связь, необходимо создать ресурс Azure типа Microsoft.GraphServices/accounts. Ресурс Azure подключает одну регистрацию приложения Microsoft Entra с подпиской Azure, в которой взимается плата за использование приложением лимитных API.

Выполните следующие действия, чтобы создать и связать ресурс Azure Microsoft.GraphServices/accounts с приложением.

Примечание: Следующие действия можно выполнить, войдя в https://portal.azure.com систему и выбрав Cloud Shell, или с помощью локального интерфейса командной строки Azure. Если вы используете Cloud Shell в первый раз, может потребоваться создать учетную запись хранения. Выберите подписку Azure, нажмите кнопку Создать и следуйте инструкциям, чтобы создать учетную запись хранения. Чтобы использовать локальный интерфейс командной строки Azure, установите Azure CLI.

  1. Если у вас несколько подписок Azure, сведения о настройке активной подписки см. в статье Использование нескольких подписок Azure. В противном случае перейдите к следующему шагу.

  2. Используйте команду az resource create , чтобы создать экземпляр типа ресурса Microsoft.GraphServices/accounts, чтобы связать регистрацию приложения с активной подпиской. Скопируйте следующую команду в интерфейс командной строки, замените перечисленные в таблице параметры собственными значениями и введите <ВВОД>. Если команда выполнена успешно, ответ будет содержать представление только что созданного ресурса в формате 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 Идентификатор приложения (клиента) включенного приложения, предоставленный в виде строкового параметра; например, 00000000-0000-0000-0000-000000000000000.
mySubscriptionGUID Идентификатор подписки Azure, которая будет получать события выставления счетов, указанная в виде строкового параметра; например, 00000000-0000-0000-0000-000000000000000.

Успешный результат 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.

Примечание: Следующие действия можно выполнить, войдя в https://portal.azure.com систему и выбрав Cloud Shell, или с помощью локального интерфейса командной строки Azure. Если вы используете Cloud Shell в первый раз, может потребоваться создать учетную запись хранения. Выберите подписку Azure, нажмите кнопку Создать и следуйте инструкциям, чтобы создать учетную запись хранения. Чтобы использовать локальный интерфейс командной строки Azure, установите Azure CLI.

  1. Если у вас несколько подписок Azure, сведения о настройке активной подписки см. в статье Использование нескольких подписок Azure. В противном случае перейдите к следующему шагу.

  2. Используйте команду az resource list , чтобы получить список ресурсов, связанных с активной подпиской Azure. Скопируйте следующую команду в интерфейс командной строки и введите <ВВОД>. Если команда выполнена успешно, ответ будет содержать представление ресурсов, связанных с активной подпиской 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/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": null,
    "provisioningState": "Succeeded",
    "resourceGroup": "myRG",
    "sku": null,
    "tags": null,
    "type": "Microsoft.GraphServices/accounts"
  }
]
  1. Используя значения, возвращенные на шаге 2, используйте команду az resource show , чтобы отобразить полные сведения о ресурсе. Скопируйте следующую команду в интерфейс командной строки, замените перечисленные в таблице параметры собственными значениями и введите <ВВОД>. Если команда выполнена успешно, ответ будет содержать представление запрошенного ресурса в формате JSON.
  az resource show --resource-group myRg --name myGraphAppBilling --resource-type Microsoft.GraphServices/accounts
Параметр Описание
myRG Имя группы ресурсов Azure, предоставленное в результате действия 2.
myGraphAppBilling Имя ресурса, предоставленное в результате действия 2.

Успешный результат 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"
  },
  "resourceGroup": "myRG",
  "sku": null,
  "tags": null,
  "type": "microsoft.graphservices/accounts"
}

Свойство properties будет включать идентификатор приложения для связанной регистрации приложения.

Использование лимитных API в приложении

После связывания регистрации приложения и подписки приложение может начать использовать лимитные API и службы в Microsoft Graph. Затраты, созданные на основе этих запросов, будут взиматься за подписку Azure, связанную с приложением.

Примечание: Приложению может потребоваться запросить новый маркер доступа OAuth, прежде чем будут разрешены запросы к ЛИМИТным API.

Вы можете отслеживать затраты и использование лимитных API и служб в Microsoft Graph с помощью управления затратами Azure и выставления счетов. Это обеспечивает доступ к затратам в рамках подписки, которые можно разделить на основе приложения, вызывающего клиента или счетчика.

Счета за использование лимитных API и служб

После запуска период выставления счетов подписки, обычно на 5-й день месяца, владелец подписки или пользователи с разрешениями на основе ролей могут скачать счет. Дополнительные сведения см. в статье Просмотр и скачивание счета Azure.

Счет будет содержать сведения, позволяющие понять объем использования, создаваемый приложением, и для мультитенантных приложений, где это происходит. Дополнительные сведения см. в статье Общие сведения о счете Azure.