创建应用程序时 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 响应(网关错误,策略阻止请求被代理)

无法在 PHP 中刷新 OAuth2 令牌,授权无效

刷新的 OAuth2 令牌具有无效签名 (Azure AD OAuth2)

重新加载页面后重新使用 UCWA 应用程序

更改密码时如何使 OAuth 令牌无效?

删除通过 UCWA 为过期应用程序安排的 Lync 2013 会议