1

我正在使用https://ucwa.skype.com/websdk上的交互式 Web sdk 。我已使用 Azure AD 登录成功登录。使用 F12 工具,我可以看到,我有一个有效的 oauth 令牌。

现在我使用这个令牌并尝试通过这样的 GET 请求获取一个人对象:_https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications/113782897528/me

这是结果:

{
 "uri": "sip:xxx@yyy.de",
 "name": "john doe",
 "_links": {
   "self": {
     "href": "/ucwa/oauth/v1/applications/111364079681/me"
   }
 },
 "rel": "me"

}

我期望的是更多关于我的信息,如下所示:

{
  "uri": "sip:xxx@yyy.de",
  "name": "john doe",
  "emailAddresses": [
    "xxx"
  ],
  "company": "my company name",
  "workPhoneNumber": "tel:+123456789",
  "endpointUri": "sip:xxx;opaque=user:epid:4JNzkgeuabct-CSuIgYV8gAA;gruu",
  "_links": {
    "self": {
      "href": "/ucwa/oauth/v1/applications/113782897528/me"
    },
    "note": {
      "href": "/ucwa/oauth/v1/applications/113782897528/me/note"
    },
    "presence": {
      "href": "/ucwa/oauth/v1/applications/113782897528/me/presence"
    },
    "location": {
      "href": "/ucwa/oauth/v1/applications/113782897528/me/location"
    },
    "reportMyActivity": {
      "href": "/ucwa/oauth/v1/applications/113782897528/me/reportMyActivity"
    },
    "photo": {
      "href": "/ucwa/oauth/v1/applications/113782897528/photos/xxxx"
    }
  },
  "rel": "me"
}

我发现结果取决于应用程序 ID。如果我打开 Office365 门户网站 (_https://outlook.office.com/owa) 并使用 F12 工具搜索有效的应用程序 ID,那么我会得到预期的结果。即使使用我从交互式 web sdk 示例中获得的 OAuth 令牌。所以这不可能是安全或权限问题?我授予对 Azure 管理门户中所有权限的访问权限。

同样很奇怪的是,对于这两个非常相似的请求,我得到了具有相同 oauth 令牌的不同状态代码

_https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications/ 113782897528 /me/presence

-> 200 确定

_https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications/ 112861033140 /me/presence

-> 403 禁止

{
  "code": "Forbidden",
  "message": "The requested operation isn't allowed."
}

那么为什么两个应用程序之间存在差异以及获得相同结果所需的条件?天蓝色配置中是否缺少任何内容?

感谢帮助

4

3 回答 3

1

UCWA 和更大范围的 Skype for Business Online 处于预览阶段,这可能有助于解释为什么您在两个应用程序之间看到不同的结果集。以您的用户身份登录 O365 门户时,您很可能会从 Exchange 获得补充信息,或者门户能够使用未公开公开的内部 API(和权限)从 UCWA 接收更多信息。

如果我没记错的话,您上面的请求示例如下:

  • /ucwa/oauth/v1/applications/113782897528/me/presence - O365 门户
  • /ucwa/oauth/v1/applications/112861033140/me/presence - 非门户网站

您所看到的是,在使用在线客户端时,UCWA 当前未启用 Presence(更好的术语可能是 API 未公开公开)。

于 2016-07-26T14:32:40.457 回答
1

通过“读/写 Skype 用户信息(预览)”委派权限,可以在预览模式下访问状态。你可能无法访问它,但如果你这样做,下面是它在 Azure AD 中的样子:

SfB 在线权限

我创建了一个基于 UCWA 的本地应用程序,该应用程序连接到 SfB Online 并允许您设置您的状态:

https://github.com/tamhinsf/ucwa-sfbo-console

只需按照自述文件注册您自己的应用程序并将您的设置插入我的代码。我将每个 API 调用的结果输出到控制台,以便您查看发生了什么。

我还制作了您一直在使用的交互式 Web SDK 示例的分支,它将 Azure AD 设置整合到一个文件中。您可能需要一个本地副本来更仔细地检查和修改调用:

https://github.com/tamhinsf/skype-web-sdk-samples

于 2016-07-27T21:06:05.090 回答
0

在应用程序之间共享令牌似乎是一种安全违规。令牌是为特定资源提供的,服务器可能会验证您提供的令牌是否与创建应用程序的范围相匹配。您试图通过共享令牌来执行什么场景?

于 2016-07-27T00:27:41.833 回答