创建应用程序时 UCWA OAuth 令牌无效
Posted
技术标签:
【中文标题】创建应用程序时 UCWA OAuth 令牌无效【英文标题】:UCWA OAuth token invalid when creating application 【发布时间】:2016-07-07 13:14:36 【问题描述】:我正在尝试通过使用 Azure ID 对用户进行身份验证来使用 ucwa。 我已尝试关注这些信息:Authentication using Azure AD
有些步骤运行得不是很好,但在重新发送带有不记名令牌的自动发现请求后,我设法获取了应用程序资源链接。
当我向https://webdir1e.online.lync.com/autodiscover/autodiscoverservice.svc/root/oauth/user 发送获取请求时,不记名令牌起作用。 所以我收到了这样一个答案:
HTTP/1.1 200 OK
"_links":
"self":"href":"https://webdirX.online.lync.com/Autodiscover/AutodiscoverService.svc/root/user",
"applications":"href":"https://webpoolXY.infra.lync.com/ucwa/oauth/v1/applications"
所以我尝试做一个像这样的发布请求:
POST https://webpoolXY.infra.lync.com/ucwa/oauth/v1/applications HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <access-token>
...
"UserAgent":"UCWA Samples",
"EndpointId":"a917c6f4-976c-4cf3-847d-cdfffa28ccdf",
"Culture":"en-US",
但我有一个403 Forbidden
的答案,有
X-Ms-diagnostics:28055;source="DB41E07FES15.infra.lync.com";reason="The OAuth token is invalid.";faultcode="wsse:FailedAuthentication"
我对此请求使用相同的 Bearer 访问令牌。我应该得到一个新的令牌吗?
【问题讨论】:
【参考方案1】:是的,您需要获得一个新令牌才能访问应用程序资源,然后才能成功 POST 到它。
在您的示例中,将 https://webpoolXY.infra.lync.com/ 作为资源传递给 Azure AD,并使用生成的令牌来执行您的 POST 请求。
我创建了一个 C#-based sample application,它执行 UCWA 自动发现以及应用程序创建、会议创建/列表/删除和状态管理,您可以将其作为参考。
【讨论】:
谢谢你的样品和回复。我现在尝试使用新的不记名令牌,但收到以下响应:"code":"UnsupportedMediaType","message":"此人或会议不支持您/尝试使用的通信模式。" 您可能已经在我的代码中注意到了这一点,但是对应用程序资源的调用需要在接受标头中设置“application/json”。例如:httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")) 我已经尝试将 'accept' 和 'content-type' 标头都设置为 'application/json' 但我仍然遇到同样的错误.. 也尝试对内容进行编码。你可以在 C# 中这样做 var httpResponseMessage = httpClient.PostAsync(ucwaApplicationsRootUri, new StringContent(createUcwaPostData, Encoding.UTF8, "application/json")).Result;以上是关于创建应用程序时 UCWA OAuth 令牌无效的主要内容,如果未能解决你的问题,请参考以下文章
UCWA 收到 502 响应(网关错误,策略阻止请求被代理)