【发布时间】:2016-05-24 12:37:35
【问题描述】:
我们正在开发一个用于在 OneDrive for Business (ODFB) 之间传输文件的应用程序。 UI 是一个使用 Azure Active Directory 进行身份验证的 Web 应用程序,实际处理由 WebJob 异步完成:
客户端(一个 AAD 应用程序):
[JavaScript 应用程序]
服务器端(另一个 AAD 应用程序):
[Web API] [队列] [WebJob]
Web API 接收来自客户端应用的文件传输请求。请求被放入队列,由 WebJob 异步处理。
为此,WebJob 必须能够代表用户访问 ODFB,即;在向/从 ODFB 上传/下载文件时使用 Bearer-token。我们目前正在使用 OneDrive for Business API (https://{tenant}-my.sharepoint.com/_api/v2.0)。
之前,我们在传输请求旁边保存了一个刷新令牌(在客户端为服务器 AAD 应用程序颁发)——这样 WebJob 就能够通过调用来兑换刷新令牌以获取 ODFB 访问令牌。检查this链接 您可能已经注意到,客户端坐标是客户端应用程序,而不是服务器应用程序!这显然是错误的,但这是我们让它发挥作用的唯一方法。
我们当然不喜欢使用 Refresh Token ——但我们想不出任何其他方法让它发挥作用。自从我们升级到 ADAL 3.10 后,由于缺少刷新令牌,一切都停止了工作:-)
所以最大的问题是:我们如何重构解决方案以启用 WebJob 的异步处理?
任何指针将不胜感激。提前谢谢!
【问题讨论】:
标签: azure oauth-2.0 azure-active-directory adal