SSRS ReportServer与Portal访问返回401错误求助
SSRS 401身份验证错误及Windows 11运行身份问题排查
问题现象
- 访问ReportServer和Portal URL时均返回401 HTTP错误,弹出Windows身份验证窗口,输入账号密码后仍返回401,此前功能正常
- Windows 11中域账号通过SSO连接工作域,无法访问SSRS;且无法执行
Run As Different User操作,执行该操作直接报错
已尝试的解决方案
- 为IUSRS组、管理员账号及应用池用户授予文件夹权限
- 检查IIS中无授权规则阻止访问
- 确认用户已存在于ReportServer数据库中
- 将匿名身份验证凭据从IUSR改为应用程序池标识
- 重新安装SSRS
环境信息
- SSRS服务账号设置为
Network Service,未指定Execution Account - SSRS日志未记录任何错误
- RsReportServer.config中的URL预留配置:
<URLReservations> <Application> <Name>ReportServerWebService</Name> <VirtualDirectory>ReportServer</VirtualDirectory> <URLs> <URL> <UrlString>http://+:80</UrlString> <AccountSid>S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301</AccountSid> <AccountName>NT SERVICE\SQLServerReportingServices</AccountName> </URL> <URL> <UrlString>https://Performa-PC:443</UrlString> <AccountSid>S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301</AccountSid> <AccountName>NT SERVICE\SQLServerReportingServices</AccountName> </URL> </URLs> </Application> <Application> <Name>ReportServerWebApp</Name> <VirtualDirectory>Reports</VirtualDirectory> <URLs> <URL> <UrlString>http://+:80</UrlString> <AccountSid>S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301</AccountSid> <AccountName>NT SERVICE\SQLServerReportingServices</AccountName> </URL> <URL> <UrlString>https://Performa-PC:443</UrlString> <AccountSid>S-1-5-80-4050220999-2730734961-1537482082-519850261-379003301</AccountSid> <AccountName>NT SERVICE\SQLServerReportingServices</AccountName> </URL> </URLs> </Application> </URLReservations>
可能的原因分析
1. Kerberos身份验证配置缺失
SSRS使用Network Service账号运行时,必须为服务注册正确的SPN(服务主体名称)才能支持Kerberos身份验证。Windows 11的SSO依赖Kerberos,若SPN未注册或不正确,会导致身份验证回退到NTLM,而NTLM可能因本地/域信任问题无法通过,即使输入账号密码也会返回401。
- 需检查是否注册了以下格式的SPN:
HTTP/<服务器完整域名> NT SERVICE\SQLServerReportingServicesHTTP/<服务器NetBIOS名称> NT SERVICE\SQLServerReportingServices
2. URL预留权限不匹配
从配置可见,URL预留的授权账号是NT SERVICE\SQLServerReportingServices,但SSRS实际运行在Network Service账号下,两者权限不匹配可能导致访问被拒绝。
- 用
netsh http show urlacl命令查看当前URL预留的权限列表,确认Network Service账号对http://+:80和https://Performa-PC:443拥有访问权限。
3. Windows 11的Run As Different User限制
Windows 11对该操作有更严格的安全限制,尤其是在账号处于SSO状态时:
- 检查本地组策略:
计算机配置>Windows设置>安全设置>本地策略>安全选项>用户账户控制:管理员批准模式中管理员的提升权限提示行为,确保未设置为"拒绝提升" - 检查UAC设置是否过高,过高的UAC级别可能阻止身份切换操作。
4. ReportServer数据库角色权限变更
虽然确认用户存在于ReportServer数据库,但可能用户的系统角色或内容角色权限被意外移除:
- 登录ReportServer数据库,检查用户是否拥有
系统管理员、内容管理员等必要角色权限,确保权限配置完整。
5. HTTPS证书问题
配置了HTTPS访问的情况下,若SSL证书的主体名称与服务器FQDN不匹配,或证书未被本地计算机信任,会中断身份验证流程:
- 检查SSL证书的有效性,确认证书主体名称与服务器域名一致,且已添加到本地计算机的"受信任的根证书颁发机构"存储中。
内容的提问来源于stack exchange,提问作者user3167162
相关产品推荐
相关产品推荐

