Поделиться через


Включение лимитных 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 или управляющая программа или служба). Общедоступные клиентские приложения (классические и мобильные приложения) не поддерживаются.
  • Управляемые удостоверения Azure не поддерживают вызовы лимитных API. Дополнительные сведения см. в статье Службы Azure, поддерживающие управляемые удостоверения.

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

Прежде чем получить доступ к лимитным 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 graph-services в Azure Cloudshell или собственную установку Azure CLI , чтобы создать новый экземпляр типа ресурса Microsoft.GraphServices/accounts, чтобы связать регистрацию приложения с активной подпиской.

Скопируйте следующую команду в предпочитаемый интерфейс командной строки (PowerShell, Bash или командная строка Windows), замените перечисленные в таблице параметры собственными значениями и введите <ВВОД>. Если команда выполнена успешно, ответ содержит представление только что созданного ресурса выставления счетов в формате JSON.

az graph-services account create --resource-group myRG  --resource-name myGraphAppBilling --subscription mySubscriptionGUID --location global --app-id AppRegGUID
Параметр Описание
myRG Имя существующей группы ресурсов Azure, в которую нужно добавить только что созданный ресурс.
myGraphAppBilling Имя, которое необходимо присвоить этому экземпляру ресурса.
myAppGUID Идентификатор приложения (клиента) включенного приложения, предоставленный в виде строкового параметра; например, 123e4567-e89b-12d3-a456-426655440000.
mySubscriptionGUID Идентификатор подписки Azure, которая будет получать события выставления счетов, указанная в виде строкового параметра; например, 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"
}

Проверка установки

Выполните следующие действия, чтобы убедиться, что приложение правильно включено для использования лимитных 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/<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"
  }
]
  1. Используя значения, возвращенные на шаге 2, используйте команду az resource show , чтобы отобразить полные сведения о ресурсе. Скопируйте следующую команду в интерфейс командной строки, замените перечисленные в таблице параметры собственными значениями и введите <ВВОД>. Если команда выполнена успешно, ответ будет содержать представление запрошенного ресурса в формате 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 будет включать идентификатор приложения для связанной регистрации приложения.

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

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

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

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

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

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

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