【问题标题】:UCWA - different results for different applicationsUCWA - 不同应用的不同结果
【发布时间】:2016-07-28 05:06:05
【问题描述】:

我正在使用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."
}

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

感谢您的帮助

【问题讨论】:

    标签: skype-for-business ucwa skypedeveloper


    【解决方案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 未公开公开)。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多