从Excel VSTO WorkBook中调用Azure AD保护的WebApi
我正尝试从Excel VSTO WorkBook中调用受Azure AD保护的WebApi。 这是我们用于我们的SPA应用程序相同的webApi,但现在也想直接从Excel中使用这个相同的API。
我已经search了一段时间,找不到任何指导如何工作。
有谁知道这是否可能,如果是的话应该如何实现?
我昨天碰到这个,并得到它的工作,感谢这个线程 。
听起来这种情况一度不受支持,但现在肯定有效。 以下是需要做的事情:
从Excel访问的服务,它应该发回一个HTTP 401响应,让客户端(Excel)知道需要身份validation(这应该已经发生了)。 然后,Excel将发送另一个请求到头部Authorization: Bearer
。 重要的是要注意,在Bearer
之后没有任何事情发生,因为一旦validationstream程完成,Excel将开始发送具有类似标题的请求,但是在Bearer
这个词之后将会有更多的信息,并且这些请求应该允许通过请求pipe道。
为了使validationstream程正常工作,对上述请求的服务响应必须包含以下标题值:
WWW-Authenticate: Bearer authorization_uri="Your auth URI here"
报价应该包含在回复中。 由于您使用的是Azure AD,因此您的URI将如下所示:
https://login.microsoftonline.com/{tenantId}/oauth2/authorize
用您的租户IDreplace{tenantId}
。
我发现这个工作的一个警告是,该服务的域(例如http://my.domain.com
)的URL必须与App注册中的App Uri Id相匹配。 我希望有一个解决办法,因为我相信我已经读过,这不是一个好的做法(虽然我不能find源)。 如果还有其他方法来处理这个问题,我会回来更新我的答案。
- 通过WebApi调用从页面下载excel文件
- 用AngularJS和EPPlus生成CSV的问题
- 在Web应用程序中集成的Excel工作簿上进行协作
- Azure Active Directory – 为什么浏览器没有注册而不是第一方应用程序?
- 使用EPPlus excel文件下载WebApi – 打开 – 不可读的内容错误 – 修复
- Excel PowerQuery / C#WebAPI OData,检索旧的服务参考
- ASP.NET OData v3 vs Excel 2013:忽略分页?
- 使用ASP.Net MVC Web Api将JSON数据导出到Excel工作表
- WebAPI和angularJS JS文件下载 – 文件损坏