Azure VM中SSRS集成Azure AD及搭配本地数据库的Azure身份验证问题咨询
Azure VM上SSRS对接本地数据库的Azure身份验证配置方案
核心结论
可以实现,只要满足对应版本和环境集成要求,按以下步骤配置即可。
前置要求
- 本地Active Directory已通过Azure AD Connect和Azure AD完成身份同步,实现本地身份和Azure AD身份的映射互通
- 部署SSRS的Azure VM已加入Azure AD,混合场景下可同时加入本地AD域
- 本地SQL Server版本需为SQL Server 2022 (16.x) 及以上,低版本SQL Server需要额外配置Azure AD Kerberos信任链路
具体配置步骤
步骤1:配置本地SQL Server的Azure AD身份验证能力
- 完成本地SQL Server实例和Azure AD的关联绑定,为实例设置Azure AD管理员账号
- 在本地SQL Server中为SSRS使用的Azure AD身份主体创建登录名并分配权限,参考SQL命令:
-- 实例级别创建Azure AD身份登录名 CREATE LOGIN [你的Azure AD账号/服务主体/托管标识名称] FROM EXTERNAL PROVIDER; -- 切换到报表使用的目标数据库 USE [报表业务数据库名]; CREATE USER [你的Azure AD账号/服务主体/托管标识名称] FOR LOGIN [你的Azure AD账号/服务主体/托管标识名称]; -- 按实际业务需求分配权限,示例为分配只读权限 ALTER ROLE db_datareader ADD MEMBER [你的Azure AD账号/服务主体/托管标识名称];
步骤2:配置SSRS服务的Azure AD身份载体
可以二选一使用以下身份模式:
- 托管标识:为部署SSRS的Azure VM启用系统分配托管标识,无需手动维护凭据,安全性更高
- Azure AD服务主体:手动在Azure AD中注册应用身份,生成客户端ID和客户端密钥,适合需要多场景复用身份的情况
完成身份创建后,将SSRS报表服务的运行账户绑定到上述Azure AD身份。
步骤3:配置SSRS报表的数据源连接
- 登录SSRS web门户,进入对应报表的数据源配置页面
- 连接类型选择
Microsoft SQL Server - 连接字符串按实际场景填写,示例:
- 使用托管标识:
Data Source=本地SQL Server的可访问地址/实例名;Initial Catalog=报表业务数据库名;Encrypt=True;Authentication=Active Directory Managed Identity - 使用服务主体:
Data Source=本地SQL Server的可访问地址/实例名;Initial Catalog=报表业务数据库名;Encrypt=True;Authentication=Active Directory Service Principal
- 使用托管标识:
- 凭据选项选择使用以下凭据:
- 托管标识模式不需要填写账号密码,系统会自动获取VM的托管标识访问令牌
- 服务主体模式填写Azure AD应用的客户端ID作为用户名,客户端密钥作为密码
- 点击测试连接,确认连通后保存配置即可
常见异常排查
- 先验证Azure VM到本地SQL Server的网络连通性,确保SQL使用的端口(默认1433)没有被本地防火墙、Azure NSG拦截
- 确认Azure AD和本地AD的身份同步状态正常,身份映射没有冲突
- 可以先在Azure VM上用SSMS工具,尝试用对应的Azure AD身份登录本地SQL Server,验证权限配置是否正确
内容的提问来源于stack exchange,提问作者Amandeep Kaur
相关产品推荐
相关产品推荐

