将OData Feed导入PowerPivot,其中Feed为OAuth 2保护

时间:2013-07-03 15:37:36

标签: excel azure oauth-2.0 odata powerpivot

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

PowerPivot table import wizard advanced tab

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

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

我也尝试过放入刷新令牌和新鲜令牌网址,但结果是一样的。有一个使用客户端密钥的选项,但我没有尝试过,因为这不安全(我认为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-1身份验证标头的OAuth 1版本(scheme = OAuth),但仍然没有。

1 个答案:

答案 0 :(得分: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具有相同的限制。