我有一个想要使用 Excel/PowerPivot 使用的 OData 源。提要使用 OAuth 2 进行保护(Windows Azure Active Directory 是身份验证服务器)。PowerPivot 表导入向导上的高级选项卡有一些 UI,允许您指定 OAuth 并允许您输入授权令牌(我假设这是一个访问令牌,但我可能错了):
但是,当我进行测试连接时,我收到一个错误,告诉我如果我不使用 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),但仍然没有。