无法向 Skype For Business Online UCWA 进行身份验证
Posted
技术标签:
【中文标题】无法向 Skype For Business Online UCWA 进行身份验证【英文标题】:Can't authenticate to Skype For Business Online UCWA 【发布时间】:2017-04-05 09:06:44 【问题描述】:我在对 S4BO 进行身份验证时遇到问题。我已经注册了我的应用程序(在 azure 门户中),它与https://ucwa.skype.com/websdk 的 webSDK 演示一起正常工作 我遵循的过程如下:
我使用以下代码执行 OAuth 链接重定向:
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&resource=https://webdir.online.lync.com&redirect_uri=http://myurl.dev/skype
获取已经返回的授权码,并使用它生成访问令牌:
POST https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=db01d1f5-f2a3-4d82-b4bc-6b3b4071d7df&resource=https://webdir.online.lync.com&redirect_uri=http://acme.intranet.dev/skype
grant_type=authorization_code
code=$thecodehere
client_id=$clientidhere
client_secret=$clientsecrethere
redirect_uri=$sameuriasbefore
在此之后,我有了访问令牌。现在我需要我的用户网址。所以我会自动发现
GET https://lyncdiscover.mydomain.onmicrosoft.com
我收到类似的结果:
"_links":
"self":
"href": "https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root?originalDomain=mydomain.onmicrosoft.com"
,
"user":
"href": "https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=mydomain.onmicrosoft.com"
,
"xframe":
"href": "https://webdir1e.online.lync.com/Autodiscover/XFrame/XFrame.html"
我尝试在用户 url 登录:
GET https://webdir1e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=mydomain.onmicrosoft.com
HEADERS:
Authorization: Bearer + theAccessTokenFromAbove
Referer: https://webdir1e.online.lync.com/Autodiscover/XFrame/XFrame.html
在此之后我得到 403 Unathorized。我哪里错了?
【问题讨论】:
它比你上面的更复杂。您拥有用户对 O365 的访问令牌。然后,您需要使用这些凭据登录 Skype for Business Online,最后获得 UCWA 可以用来通过自动发现获得授权的 oauth 令牌。 你能告诉我或指向一个资源来展示如何做到这一点吗?我一辈子都无法从他们拥有的文档中弄清楚。 具体来说,我不确定如何在我的 Web 应用程序服务器应该能够代表用户安排会议的情况下执行此操作,即使用户未登录到站点(所以当用户不在我的网站上时我应该可以访问)。 【参考方案1】:获取已返回的授权码并使用它生成访问令牌
在此步骤中,您需要指定 resource=https://webdir1e.online.lync.com
(注意 1e)才能访问此特定中心。
实际上,从此时开始,您必须在每个新服务器上进行身份验证,因此在所有 webdirXX 上,然后在 webpoolXXXXX 上。
我写了一篇巨大的交互式文章,详细描述了请求流程(在我花了一周的时间对 outlook.com 进行逆向工程之后,因为 MSDN 文档 - 至少在撰写本文时 - 不完整且不正确),也许它可以使用:
https://markeev.com/posts/skype4b/如果您将应用重定向 URL 配置为文章 URL(当然是暂时的),您甚至可以直接从那里测试查询。
此外,可以在 Github 上找到“一体式”自动发现和身份验证代码(带有现场演示):
https://github.com/andrei-markeev/skype4b【讨论】:
以上是关于无法向 Skype For Business Online UCWA 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Skype for business iOS SDK:无法启动音频服务
skype for business 无法共享桌面无法传输图片
Skype For Business Server 2016 无法共享PPT和白板
Skype For Business Server 2016 无法共享PPT和白板