Ответы об ошибках Microsoft Graph API безопасности
Пространство имен: microsoft.graph
Ошибки в microsoft Graph API безопасности возвращаются с помощью стандартного кода состояния частичного содержимого HTTP 206 и доставляются через заголовок предупреждения.
Ошибки
Microsoft Graph API безопасности — это федеративная служба, которая получает несколько ответов от всех поставщиков данных. Когда API безопасности Microsoft Graph получает ошибку HTTP, она отправляет заголовок предупреждения в следующем формате:
{Vendor}/{Provider}/{StatusCode}/{LatencyInMs}
Этот заголовок предупреждения отправляется клиентам только в том случае, если один из поставщиков данных возвращает код ошибки, отличный от 2xx или 404. Например:
- Если доступ к ресурсу не предоставлен, может быть возвращен httpStatusCode.Forbidden (403).
- Если время ожидания поставщика истекло, httpStatusCode.GatewayTimeout (504) возвращается в заголовке предупреждения.
- Если возникает внутренняя ошибка поставщика, в заголовке предупреждения используется httpStatusCode.InternalServerError (500).
Если поставщик данных возвращает значение 2xx или 404, он не отображается в заголовке предупреждения, так как эти коды ожидаются для успешного выполнения или если данные не найдены соответственно. В федеративной системе ожидается, что 404 не найден, так как данные известны только одному или нескольким, но не всем поставщикам.
Пример
Пользователь запрашивает security/alerts/{alert_id}
.
Provider 1: 404 (provider does not have a record of this alert ID)
Provider 2: 504 (provider timed out)
Provider 3: 200 (success)
Provider 4: 403 (customer has not licensed this provider)
Так как 404 и 200 являются ожидаемыми условиями, заголовок предупреждения содержит следующее:
Warning : 199 - "{Vendor2}/{Provider 2}/504/10000", (usual timeout limit is set at 10 seconds)
199 - "{Vendor4}/{Provider 4}/403/10" (Provider 4 rejected the request in 10 ms)
Примечание: Каждый заголовок HTTP представляет собой коллекцию подэлементов, поэтому пользователи могут перечислять заголовок Warning и проверка всех элементов.
Ошибки массового действия индикатора угроз
Массовые действия (создание, обновление, удаление) могут генерировать два разных потенциальных кода ошибок:
- Код ошибки 400 указывает на то, что в предоставленном тексте произошла ошибка во время сериализации.
- Код ошибки 206 указывает на то, что одно или несколько массовых действий завершилось ошибкой при федеративном подключении к поставщику. Ответ будет содержать данные об успешном выполнении и ошибках от отдельных поставщиков для каждого индикатора аналитики угроз. В отличие от оповещений, все потенциальные сведения об ошибках будут содержаться в тексте ответа для массовых действий tiIndicator .
Ограничения
Параметр $top
запроса OData имеет ограничение в 1000 оповещений. В первый запрос GET рекомендуется включить только параметр $top
, но не параметр $skip
. Для разбивки на страницы можно использовать параметр @odata.nextLink
. Если требуется применить параметр $skip
, он имеет ограничение в 500 оповещений. Например, /security/alerts?$top=10&$skip=500
вернет код отклика 200 OK
, но /security/alerts?$top=10&$skip=501
вернет код отклика 400 Bad Request
. Дополнительные сведения см. в статье Ответы с ошибками Microsoft Graph Security API.
Обходной путь для этого ограничения заключается в $filter
использовании параметра запроса OData с eventDateTime
объектом оповещения из API безопасности Microsoft Graph, а ?$filter=eventDateTime gt {YYYY-MM-DDT00:00:00.000Z}
также замены значения dateTime последним (1500-м) оповещением. Можно также задать диапазон для eventDateTime
; например, alerts?$filter=eventDateTime **gt** 2018-11-**11**T00:00:00.000Z&eventDateTime **lt** 2018-11-**12**T00:00:00.000Z
.
Связанные материалы
Если у вас возникли проблемы с авторизацией, см. статью Авторизация и API безопасности Microsoft Graph.