5

我有一个想要使用 Excel/PowerPivot 使用的 OData 源。提要使用 OAuth 2 进行保护(Windows Azure Active Directory 是身份验证服务器)。PowerPivot 表导入向导上的高级选项卡有一些 UI,允许您指定 OAuth 并允许您输入授权令牌(我假设这是一个访问令牌,但我可能错了):

PowerPivot 表导入向导高级选项卡

但是,当我进行测试连接时,我收到一个错误,告诉我如果我不使用 Windows 身份验证,我必须输入用户名和密码。这违背了 OAuth 2 的目标,但作为一个实验,我确实输入了用户名和密码。这一次,当我测试连接时,我从服务器收到了未经授权的 (401) 错误。

使用 fiddler 查看测试连接发出的请求,我可以看到请求中没有包含 Authorization 标头,因此显然它永远不会起作用。我希望/期望授权令牌将作为承载令牌包含在授权标头中。这是我的服务所需要的。

我还尝试输入刷新令牌和刷新令牌 URL,但结果是一样的。有一个使用客户端密码的选项,但我没有尝试过,因为这不安全(我认为 OAuth 2 仅支持机密客户端,而 Excel 不支持)。

所以,我的问题是:是否有人能够使用此 OAuth 选项将数据导入 Excel 或 PowerPivot?如果是这样,你怎么做?

更新:我意识到我的服务没有使用此处指定的正确 WWW-Authenticate 标头值响应:

http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#authn-header

所以我更改了服务代码。现在我看到了正确的 WWW-Authenticate 响应标头(scheme=Bearer,realm=my realm),但这没有区别。我没有看到 Excel 发出的请求有任何变化。

更新:我也尝试使用 WW-Authenticate 标头的 OAuth 1 版本(方案 = OAuth),但仍然没有。

4

1 回答 1

2

我在微软注册了这个:

http://connect.microsoft.com/SQLServer/feedback/details/802179/unable-to-import-data-from-odata-feed-protected-by-oauth-2

事实证明,这是 PowerPivot 中的一个错误。微软的决定是他们将在 PowerQuery 而不是 PowerPivot 中解决问题。目前,PowerQuery 具有与 PowerPivot 相同的限制。

于 2013-11-21T11:54:01.793 回答