Включение лимитных 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.
Если у вас несколько подписок Azure, сведения о настройке активной подписки см. в статье Использование нескольких подписок Azure. В противном случае перейдите к следующему шагу.
Используйте 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.
Если у вас несколько подписок Azure, сведения о настройке активной подписки см. в статье Использование нескольких подписок Azure. В противном случае перейдите к следующему шагу.
Используйте команду 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"
}
]
- Используя значения, возвращенные на шаге 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.