Azure AIP同步错误:配置文件\u添加\u引擎\u异步失败,原因:[ConnectionHttpError]发送http请求失败,错误代码为“windows:87”

Azure AIP同步错误:配置文件\u添加\u引擎\u异步失败,原因:[ConnectionHttpError]发送http请求失败,错误代码为“windows:87”,azure,azure-information-protection,microsoft-information-protection,Azure,Azure Information Protection,Microsoft Information Protection,我试图使用在cpp中实现的AIPSDK在我的自定义客户端应用程序上同步Azure AIP标签。对于POC,我尝试了这个发布在Microsoft代码示例上的示例 但这是一个例外 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] A

我试图使用在cpp中实现的AIPSDK在我的自定义客户端应用程序上同步Azure AIP标签。对于POC,我尝试了这个发布在Microsoft代码示例上的示例

但这是一个例外

    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

我已经按照上面SDK示例页面中的说明在Azure AIP和Azure AD中配置了所有内容,但仍然出现此错误。我无法获得无效的参数以及我做错了什么

另一方面,我可以运行使用dotnetsdk的示例。我可以列出所有的标签

有人能帮我让这个应用程序成功运行吗


谢谢。

该错误将通过cpprestsdk从winhttp冒出来。根据一些快速搜索,如果您的身份验证令牌末尾有空格,则可能会发生这种情况。你能查一下吗

我只是通过在令牌中添加一个空格来测试它,它确实再现了错误。根据示例,我不确定为什么会出现空白,但看看是否能够修剪末端并使其正常工作

我通过将以下内容添加到auth委托中进行了复制:

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


Event.Failed.Message:[失败的API调用:配置文件\u添加\u引擎\u异步失败,原因:[ConnectionHttpError]发送http请求失败,错误代码为“windows:87”,失败原因为:[http\u异常]'WinHttpAddressHeaders:87:参数不正确。

谢谢Tom。令牌前面有额外的字符串这是令牌值=\n。已明确删除此字符串。无效参数问题现已解决。现在给出错误:请求失败,http状态代码:401,x-ms-diagnostics:[2000008;原因=\令牌不包含权限,或权限无法理解。\;错误\u类别=\invalid\u grant\]不客气!新错误是因为您没有传递重定向URI。示例没有要求它。在AAD应用程序注册中,身份验证页面上有一个设置,显示“视为公共客户端”或类似内容。将该设置翻转为“是”,它将开始工作。我需要更新示例文档以表明这一点。