我有一个OData feed我想用Excel / PowerPivot消费.使用OAuth 2保护Feed(
Windows Azure Active Directory是auth服务器). PowerPivot表导入向导上的高级选项卡有一些UI,允许您指定OAuth并允许您输入授权令牌(我假设这是一个访问令牌,但我可能是错的):
但是,当我测试连接时,我收到一个错误,告诉我如果我没有使用Windows身份验证,我必须输入用户名和密码.这违背了OAuth 2的目标,但作为一个实验,我确实输入了用户名和密码.这次,当我测试连接时,我从服务器收到了一个Unauthorized(401)错误.
使用fiddler来查看测试连接发出的请求,我可以看到请求中没有包含Authorization标头,所以很明显它永远不会起作用.我希望/期望授权令牌将作为承载标记包含在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版本(scheme = OAuth),但仍然没有.
最佳答案 我在微软注册了这个:
事实证明,这是PowerPivot中的一个错误.微软的决定是他们将在PowerQuery而不是PowerPivot中解决问题.目前,PowerQuery与PowerPivot具有相同的限制.