能否配置Excel通过HTTPS使用OAuth连接到Analysis Services?
实现可行方案
1. 驱动版本要求
首先确保客户端安装的MSOLAP驱动(SQL Server Analysis Services OLE DB Provider)版本不低于16.0,该版本开始已经原生支持OAuth 2.0认证流程,低版本驱动没有对应逻辑无法触发。
2. 连接字符串参数配置
你不需要靠协议前缀判断,直接在Excel的连接字符串里添加指定OAuth的参数即可,核心要加的参数如下:
Authentication=ActiveDirectoryOAuth:指定认证模式为OAuthOAuth2=Yes:部分旧版兼容参数Persist Security Info=False:避免明文存储凭据
完整的连接字符串示例:
Provider=MSOLAP.8;Integrated Security=ClaimsToken;Authentication=ActiveDirectoryOAuth;Persist Security Info=False;Initial Catalog=你的SSAS库名;Data Source=https://你的域名/msmdpump.dll;Identity Provider=https://你的身份提供商地址;
3. 服务端适配要求
你提到的SSASProxy封装方案可以复用,只需要额外满足两个条件:
- 当客户端请求头没有携带合法的OAuth Bearer令牌时,返回
401 Unauthorized响应,且响应头要包含WWW-Authenticate: Bearer authorization_uri="你的OAuth授权页地址", resource_id="你的SSAS服务资源ID",触发客户端的OAuth弹窗逻辑 - 验证通过后将OAuth令牌对应的用户身份映射为SSAS可识别的Windows账号或者Azure AD账号,再转发请求给msmdpump.dll
4. 批量部署优化
如果要给所有用户统一配置不需要手动改连接字符串,可以发布预配置好的.odc(Office Data Connection)文件,用户直接打开就能触发正确的认证流程,不需要手动输入连接地址。
注意事项
- 如果你用的是自托管的身份提供商而不是Azure AD,需要确保OAuth授权页的域名已经加入用户的Office可信站点列表,避免弹窗被拦截
- SSAS服务端如果要支持非Windows账号的身份映射,需要开启Azure AD认证或者自定义角色映射逻辑
内容的提问来源于stack exchange,提问作者Brenton
相关产品推荐
相关产品推荐

