【问题标题】:ADAL.js and Yammer authenticationADAL.js 和 Yammer 身份验证
【发布时间】:2016-09-21 21:56:44
【问题描述】:

我的问题看起来与现在活动较少的问题非常相似: Yammer REST API: 401 Unauthorized when using Azure AD token and Yammer Delegated Permissions

使用 Adal.JS,我已成功检索到多个服务的令牌,包括 https://graph.windows.nethttps://graph.microsoft.net 等。

但是,无论我如何尝试,对我的端点的请求都没有指定为:

'https://wwww.yammer.com': 'https//wwww.yammer.com'

将始终导致 401 Unauthorized。有没有人遇到过类似的问题并设法解决了?根据上述问题的答案之一,我无法禁用 SSO。

【问题讨论】:

    标签: javascript azure yammer adal


    【解决方案1】:

    必须将 yammer 网络映射到 Office 365,以便 ADAL 集成令牌与 Yammer API 端点一起使用。如果用户可以使用其 Office 365 凭据成功登录到 Yammer,则可以判断您的网络映射已到位。

    我怀疑你是否属于这种情况,因为你仍在使用 Yammer SSO,因为 Yammer SSO 与适用于 Yammer 的 Office 365 登录互斥。

    Yammer 将于 2016 年 12 月 1 日弃用 SSO,因此开始计划尽快切换到 Office 365 身份可能是有意义的。

    【讨论】:

    • 您好,谢谢您的回复。我们已启用“在 Yammer 中强制执行 Office 365 身份”,包括“阻止没有 Yammer 许可证的 Office 365 用户”。用户可以使用他们的 O365 凭据登录,所以我认为我们使用的是正确的凭据。经过很多来回之后,似乎问题是在使用 ADAL 时缺少 CORS 标头(特别是 Access-Control-Allow-Origin),而如果我禁用 ADAL,它们就会出现。目前正在就此事与 MS Premier 支持人员联系...我会报告任何发现。
    • @JonasEriksson 现在遇到了这个问题。你有想过吗?
    • @JonasEriksson,详细说明,我正在使用 ADAL 令牌毫无问题地访问图形 api,但似乎无法使用该令牌来访问 yammer api。任何指导将不胜感激!
    • @MichaelArmstrong 听起来和我遇到的问题完全相同。不幸的是,我不再在那家公司工作,所以我不知道从那以后发生了什么。最终发生的事情是我创建了一个 NodeJS 代理,我使用 REST 查询图像。然后,NodeJS 代理从 Yammer 检索图像并将它们(使用正确的标头)中继到 JS 应用程序。 Node 应用程序本身很容易编写,不是很优雅的解决方案。不幸的是,MS Premier Support 没有更好的建议。该应用程序托管在 Azure 上,这很简单,但不是免费的。
    • 谢谢@JonasEriksson!
    【解决方案2】:

    正如评论中提到的,最终的问题不是 401 Unauthorized 而是缺少 Access-Control-Allow-Origin 标头,这意味着请求成功但在浏览器中被阻止。

    与 Microsoft 联系后,确定在通过 ADAL.js 进行身份验证时当前未添加这些标头。鼓励客户现在使用 Yammer JS SDK。

    还建议我们尝试构建一个代理请求服务器,该服务器将转发客户端请求并在响应中提供必要的标头,我们目前正在探索这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      相关资源
      最近更新 更多