API Microsoft Graph: загрузка приложения Intune Win32 — ошибка commitFileFailed после успешных вызовов APIPython

Программы на Python
Anonymous
API Microsoft Graph: загрузка приложения Intune Win32 — ошибка commitFileFailed после успешных вызовов API

Сообщение Anonymous »

У меня возникают постоянные ошибки commitFileFailed при загрузке файлов .intunewin в Microsoft Intune через Graph API. Все вызовы API возвращают коды состояния успеха, но внутренняя обработка окончательной фиксации завершается сбоем.
Рабочий процесс API
Следует стандартной последовательности API Microsoft Graph для загрузки приложений Win32:
  • Код: Выделить всё

    POST /deviceAppManagement/mobileApps
    (Создать Win32LobApp)
  • Код: Выделить всё

    POST /mobileApps/{id}/contentVersions
    (Создать версию контента)
  • Код: Выделить всё

    POST /contentVersions/{version}/files
    (Создать запись файла)
  • Подождите URI хранилища Azure (опрос до тех пор, пока azureStorageUriRequestSuccess)
  • в URI хранилища Azure (загрузить файл .intunewin)
  • Код: Выделить всё

    POST /files/{fileId}/commit
    (файл фиксации) (возвращает HTTP 200)
Шаблон проблемы
  • Шаги 1–5: все успешно с правильными ответами HTTP 201/200.
  • Шаг 6: API фиксации возвращает HTTP 200 OK
  • Конечный результат: uploadState: commitFileFailed
Ошибка возникает во время внутренней обработки Intune после успешного выполнения API фиксации.
Структура полезной нагрузки FileEncryptionInfo

Код: Выделить всё

{
"fileEncryptionInfo": {
"encryptionKey": "base64-encoded-32-bytes",
"macKey": "base64-encoded-32-bytes",
"initializationVector": "base64-encoded-16-bytes",
"mac": "base64-encoded-32-bytes",
"profileIdentifier": "ProfileVersion1",
"fileDigest": "base64-encoded-32-bytes",
"fileDigestAlgorithm": "SHA256",
"@odata.type": "microsoft.graph.fileEncryptionInfo"
},
"size": 3064190,
"name": "example-installer.intunewin"
}

Проверка выполнена

Проверка полей: все поля base64 декодируются до необходимой длины в байтах Microsoft: Создание файла: с использованием официального средства подготовки содержимого Microsoft Win32 v1.8.7
Метаданные шифрования: извлечены непосредственно из .intunewin Detection.xml
Azure Storage: правильные заголовки, проверка MD5, успешно загрузка с соответствующим ETag
Соответствие API: точное соответствие документации Microsoft Graph API

Сведения о среде

  • Версия API: Microsoft Graph v1.0
  • Аутентификация: Регистрация приложения с помощью DeviceManagementApps.ReadWrite.All
  • Метод загрузки: одиночный PUT (файлы < 4 МБ в соответствии с рекомендациями Microsoft).
  • Формат файла: пакеты .intunewin, созданные с помощью официального инструмента Microsoft.
Сталкивался ли кто-нибудь с подобными проблемами, когда API фиксации завершается успешно, но обработка завершается неудачно?
Требуются ли дополнительные заголовки или поля для запроса на фиксацию, не задокументированы?

Что я пробовал

  • Проверено, что все поля шифрования соответствуют требованиям Microsoft к двоичной длине
  • Подтверждено, что структура файла .intunewin соответствует формату Microsoft
  • Протестировано с различными размерами и типами файлов
  • Добавлены задержки для внутренней обработки
  • Проверена целостность загрузки в хранилище Azure с контрольными суммами MD5
Эта проблема постоянно возникает в разных файлах .intunewin. Все проверки на стороне клиента соответствуют спецификациям Microsoft, что позволяет предположить, что это может быть проблема обработки на стороне службы.
Спасибо за любую помощь!

Вернуться в «Python»