Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрос можно отправить в рабочую область с помощью конечной точки Azure Monitor Log Analytics https://api.loganalytics.azure.com. Чтобы получить доступ к конечной точке, необходимо пройти проверку подлинности через Microsoft Entra ID.
Замечание
Конечная точка api.loganalytics.io заменяется на api.loganalytics.azure.com. Конечная api.loganalytics.io точка будет поддерживаться в обозримом будущем.
Проверка подлинности с помощью демонстрационного ключа API
Чтобы быстро изучить API без Microsoft Entra проверки подлинности, используйте демонстрационную рабочую область с примерами данных, которые поддерживают проверку подлинности ключа API.
Для проверки подлинности и выполнения запросов к образцу рабочей области используйте DEMO_WORKSPACE в качестве {workspace-id} и передайте ключ DEMO_KEYAPI.
Если идентификатор приложения или ключ API неверный, служба API возвращает ошибку 403 (запрещено).
Ключ DEMO_KEY API можно передать тремя способами в зависимости от того, нужно ли использовать заголовок, URL-адрес или обычную проверку подлинности:
-
Пользовательский заголовок: укажите ключ API в пользовательском заголовке
X-Api-Key. -
Параметр запроса: укажите ключ API в параметре URL- адреса
api_key. - Обычная проверка подлинности: укажите ключ API в качестве имени пользователя или пароля. Если вы предоставляете оба варианта, ключ API должен находиться в имени пользователя.
В этом примере используется идентификатор рабочей области и ключ API в заголовке:
POST https://api.loganalytics.azure.com/v1/workspaces/DEMO_WORKSPACE/query
X-Api-Key: DEMO_KEY
Content-Type: application/json
{
"query": "AzureActivity | summarize count() by Category"
}
Общедоступная конечная точка API
Конечная точка общедоступного API:
https://api.loganalytics.azure.com/{api-version}/workspaces/{workspaceId}
Где:
-
api-version: версия API. Текущая версия
v1. - workspaceId: идентификатор рабочей области.
Замечание
Версия beta API устарела. Для получения дополнительной информации см. «Миграция от API пакетного и бета-запроса».
Запрос передается в тексте запроса.
Рассмотрим пример.
https://api.loganalytics.azure.com/v1/workspaces/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
Body:
{
"query": "Usage"
}
Настройка проверки подлинности
Чтобы получить доступ к API, зарегистрируйте клиентское приложение с помощью Microsoft Entra ID и запросите маркер.
На странице обзора приложения выберите разрешения API.
Выберите Добавить разрешение.
На вкладке Используемые моей организацией API найдите Log Analytics и выберите API Log Analytics из списка.
Выберите Делегированные разрешения.
Установите флажок Data.Read.
Выберите Добавить разрешения.
Теперь, когда приложение зарегистрировано и имеет разрешения на использование API, предоставьте приложению доступ к вашей Log Analytics рабочей области.
На странице обзора рабочей области Log Analytics выберите Управление доступом (IAM).
выберите Добавить назначение ролей.
Выберите роль читателя и выберите "Участники".
На вкладке "Члены" выберите "Выбрать участников".
Введите имя приложения в поле "Выбор ".
Выберите приложение и нажмите кнопку "Выбрать".
Выберите кнопку Проверить + назначить.
После завершения настройки Active Directory и разрешений рабочей области запросите маркер авторизации.
Замечание
В этом примере мы применили роль читателя. Эта роль является одной из многих встроенных ролей и может включать больше разрешений, чем требуется. Можно создать более детализированные роли и разрешения. Дополнительные сведения см. в разделе Manage access to Log Analytics workspaces.
Запрос токена авторизации
Прежде чем начать, убедитесь, что у вас есть все необходимые значения для успешного выполнения запроса. Для всех запросов требуется:
- Идентификатор клиента Microsoft Entra.
- Идентификатор рабочей области.
- Идентификатор клиента Microsoft Entra для приложения.
- Секретный ключ клиента Microsoft Entra для приложения.
API Log Analytics поддерживает проверку подлинности Microsoft Entra с тремя различными потоками Microsoft Entra ID OAuth2:
- Учетные данные клиента
- Код авторизации
- Неявный
Поток учетных данных клиента
В потоке учетных данных клиента токен используется с конечной точкой Log Analytics. При регистрации приложения в Microsoft Entra ID делается единый запрос на получение токена, используя учетные данные, предоставленные для вашего приложения на предыдущем шаге.
Используйте resource=https://api.loganalytics.io.
Получите токен аутентификации, используя один из следующих методов:
- интерфейс командной строки (CLI)
- REST API
- Пакет SDK
Получить токен с помощью REST-запроса
Используйте следующий вызов REST API, чтобы получить токен. Этот запрос использует идентификатор клиента и секрет клиента для аутентификации запроса. Идентификатор клиента и секрет клиента получаются при регистрации приложения с помощью Microsoft Entra ID. Для получения дополнительной информации см. Регистрация приложения для запроса токенов авторизации и работы с API.
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource={resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}'
Тело ответа отображается в следующем формате:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "{resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Используйте маркер в запросах к конечной точке Log Analytics:
POST /v1/workspaces/your workspace id/query?timespan=P1D
Host: https://api.loganalytics.azure.com
Content-Type: application/json
Authorization: Bearer <your access token>
Body:
{
"query": "AzureActivity |summarize count() by Category"
}
Пример ответа:
{
"tables": [
{
"name": "PrimaryResult",
"columns": [
{
"name": "OperationName",
"type": "string"
},
{
"name": "Level",
"type": "string"
},
{
"name": "ActivityStatus",
"type": "string"
}
],
"rows": [
[
"Metric Alert",
"Informational",
"Resolved",
...
],
...
]
},
...
]
}
Поток кода авторизации
Основной поддерживаемый поток OAuth2 — через коды авторизации. Для этого метода требуется два HTTP-запроса для получения маркера, с помощью которого необходимо вызвать API Azure Monitor Log Analytics. Существует два URL-адреса с одной конечной точкой для каждого запроса. Их форматы описаны в следующих разделах.
URL-адрес кода авторизации (запрос GET)
GET https://login.microsoftonline.com/YOUR_Azure AD_TENANT/oauth2/authorize?
client_id=<app-client-id>
&response_type=code
&redirect_uri=<app-redirect-uri>
&resource=https://api.loganalytics.io
Когда запрос выполняется к URL для авторизации, client_id — это идентификатор вашего приложения Microsoft Entra, который скопирован из меню свойств приложения. Redirect_uri — это URL-адрес домашней страницы или входа из того же приложения Microsoft Entra. При успешном выполнении запроса эта конечная точка перенаправляет вас на страницу входа, предоставленную при регистрации с кодом авторизации, добавленным к URL-адресу. См. следующий пример.
http://<app-client-id>/?code=AUTHORIZATION_CODE&session_state=STATE_GUID
На этом этапе вы получили код авторизации, который теперь необходимо использовать для получения токена доступа.
URL-адрес токена кода авторизации (POST-запрос)
POST /YOUR_Azure AD_TENANT/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=<app client id>
&code=<auth code fom GET request>
&redirect_uri=<app-client-id>
&resource=https://api.loganalytics.io
&client_secret=<app-client-secret>
Используются те же значения с некоторыми дополнениями. Код авторизации — это тот же код, который вы получили в предыдущем запросе после успешного перенаправления. Код сочетается с ключом, полученным из приложения Microsoft Entra. Если ключ не сохранен, его можно удалить и создать на вкладке "Ключи" в меню Microsoft Entra приложения. Ответ — это строка JSON, содержащая маркер со следующей схемой. Типы указаны для значений токенов.
Пример ответа:
{
"access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
"expires_in": "3600",
"ext_expires_in": "1503641912",
"id_token": "not_needed_for_log_analytics",
"not_before": "1503638012",
"refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az",
"resource": "https://api.loganalytics.io",
"scope": "Data.Read",
"token_type": "bearer"
}
Часть маркера доступа в этом ответе — это то, что вы отправляете API Log Analytics в заголовке Authorization: Bearer. Вы также можете использовать токен обновления в будущем, чтобы получить новые access_token и refresh_token, когда ваши токены устаревают. Формат и конечная точка для этого запроса:
POST /YOUR_AAD_TENANT/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=<app-client-id>
&refresh_token=<refresh-token>
&grant_type=refresh_token
&resource=https://api.loganalytics.io
&client_secret=<app-client-secret>
Пример ответа:
{
"token_type": "Bearer",
"expires_in": "3600",
"expires_on": "1460404526",
"resource": "https://api.loganalytics.io",
"access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax",
"refresh_token": "eyJ0esdfiJKV1ljhgYF.....Az"
}
Поток учетных данных клиента
API Log Analytics поддерживает поток аутентификации OAuth2 учетные данные клиента. Этот поток подходит для вызовов между службами, где взаимодействие с пользователем не требуется.
Запрос токена учетных данных клиента
POST https://login.microsoftonline.com/YOUR_AAD_TENANT/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=<app-client-id>
&scope=https://api.loganalytics.io/.default
&client_secret=<app-client-secret>
&grant_type=client_credentials
Пример ответа:
{
"token_type": "Bearer",
"expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
}
Этот access_token можно использовать в качестве значения заголовка Authorization: Bearer при передаче в API Log Analytics для авторизации запросов.
Дополнительные сведения
См. документацию по OAuth2 с Microsoft Entra здесь:
- Microsoft Entra поток кода авторизации
- поток учетных данных клиента Microsoft Entra
Дальнейшие шаги
- формат запроса
- Формат отклика
- Запрос журналов для ресурсов Azure
- Пакетные запросы