Azure AIP Syn c Ошибка: profile_add_engine_asyn c Не удалось: [ConnectionHttpError] Не удалось отправить http-запрос с кодом ошибки 'windows: 87' - PullRequest
0 голосов
/ 24 января 2020

пытаюсь синхронизировать c Azure метки AIP в моем клиентском приложении, используя AIP SDK, который реализован в cpp. Для ПО C я попробовал этот пример, который размещен на примере кода Microsoft.

https://docs.microsoft.com/en-us/samples/azure-samples/mipsdk-policyapi-cpp-sample-basic/mipsdk-policyapi-cpp-sample-basic/

Но это исключение

    Trace   2020-01-23 16:23:58.690 telemetry_utils.cpp:66  mipsdk-policyapi-cpp-sample-basic (13592)   "Send Telemetry. Event Name : [profile_add_engine_async]
App.ApplicationId: [36980fd4-b1e8-4856-8703-c1004a99722b], Pii: [None]
App.ApplicationName: [Ravindra12], Pii: [None]
App.ApplicationVersion: [1.0.0], Pii: [None]
App.SessionId: [1], Pii: [None]
Engine.SessionId: [1], Pii: [None]
Event.CorrelationId: [c34572fd-57a9-4a97-a94b-4cf3a98518fe], Pii: [None]
Event.CorrelationIdDescription: [PolicyProfile], Pii: [None]
Event.Duration: [2.68388], Pii: [None]
Event.ErrorType: [ConnectionHttpError], Pii: [None]
Event.Failed.File: [src\upe\api_impl\policy_profile_impl.cpp], Pii: [None]
Event.Failed.Func: [mip::ProfileImpl::AddEngineAsync], Pii: [None]
Event.Failed.Line: [332], Pii: [None]
Event.Failed.Message: [Failed API call: profile_add_engine_async Failed with: [ConnectionHttpError] Failed sending http request with error code 'windows:87' Failed with: ([http_exception] 'WinHttpAddRequestHeaders: 87: The parameter is incorrect.

')], Pii: [None]
Event.UniqueId: [2029587e-eb8c-4483-a5ef-283a0a0f7a59], Pii: [None]
EventInfo.Level: [10], Pii: [None]
EventInfo.PrivTags: [33554432], Pii: [None]
MIP.Version: [1.4.154], Pii: [None]
iKey: [ce9aa5fb5a414ecebb15af10715bd8ff-831d197e-fc97-4df6-b998-c8c13a0fc3ce-6768], Pii: [None]
"   mip::WriteEventToTraceLog   29012

При пошаговой отладке я заметил, что он может успешно получить токен аутентификации из Azure AD, но не может добавить PolicyEngine в PolicyProfile.

Я настроил все в Azure AIP и Azure AD, как объяснено на приведенной выше странице примера SDK, но эта ошибка все еще появляется Я не могу получить недопустимый параметр и то, что я делаю неправильно.

С другой стороны, я могу запустить пример, использующий do tnet sdk. Я мог бы перечислить все ярлыки. - https://docs.microsoft.com/en-us/samples/azure-samples/mipsdk-dotnet-policy-quickstart/mipsdk-dotnet-policy-quickstart/

Может ли кто-нибудь помочь мне успешно запустить приложение.

Спасибо.

1 Ответ

1 голос
/ 25 января 2020

Эта ошибка всплывает из winhttp через cpprestsdk. Основываясь на быстром поиске, кажется, что это может произойти, если в конце вашего токена авторизации есть пробел. Вы можете это проверить?

Я только что проверил это, добавив пробел к токену, и он воспроизводит ошибку. Исходя из примера, я не уверен, почему вы получите пробел, но посмотрите, сможете ли вы обрезать конец и заставить его работать.

Я сделал ребро, добавив его к делегату авторизации:

    string accessToken = sample::auth::AcquireToken(mUserName, mPassword, mApplicationInfo.applicationId, challenge.GetResource(), challenge.GetAuthority());
    accessToken.append(1, ' ');

И он выдал:

Event.Failed.Message: [Ошибка вызова API: profile_add_engine_asyn c Сбой с: [ConnectionHttpError] Сбой при отправке http-запроса с кодом ошибки 'windows: 87' Сбой с: ([http_exception] 'WinHttpAddRequestHeaders: 87: Неверный параметр.

...