Ответы об ошибках 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 и проверка всех элементов.

Ограничения

Параметр $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.