正确的。当调用用户资源的结果不包含应用程序时,会包含一个重定向值。这是一个例子:
来电:
https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user
可能返回以下内容:
{"_links":{"self":{"href":"https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/user"},"xframe":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/xframe"},"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}
其中包括此重定向
"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}
若要继续,您需要进行 Azure AD 身份验证调用,仅将 protocol://servername 的值作为资源传递。这意味着减少以下内容:
https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root
就是这样:
https://webdir2a.online.lync.com/
既然您拥有 webdir2a.online.lync.com 的有效令牌,那么您需要将“/oauth/user”附加到重定向 URL。您会注意到最初的调用包含在 URL 中,而重定向 URL 没有。
调用更新后的重定向 URL
https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user
你应该得到你所追求的:
{"_links":{"self":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user"},"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"},"xframe":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/XFrame/XFrame.html"}}}
哪个是应用程序资源
"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"}
对于感兴趣的人,我创建了一个基于 .NET 的控制台应用程序,该应用程序演示了如何通过 UCWA API 登录到 Skype for Business Online - 并在此过程中处理自动发现过程、重定向、应用程序创建等事物。