Issue Summary
A few days back, a user complained that SSRS report is not working for him and he is getting below error message:
An error has occurred during report processing.(rsprocessingAborted) Query execution failed for dataset 'DataSet1'.(rsErrorExecutingCommand) Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Initial Investigation
When we initially started looking into the issue, we thought it could be a permission issue. However, we soon realized that user was having appropriate permission on the data set, which means that he is having permission on the database from where the data was getting fetched.
This user also had sufficient permission in SSRS as it was set as Content Manager.
Questionnaire with user
As our initial investigation did not work, we asked few questions to the user among which the most important was “How he was accessing the reports?“
He told us that he was using his laptop to access the report and was not logging to the server. We were able to access the reports, but, we were accessing them from the server itself.
Solution
We checked the SPNs listed for the SSRS server and we observed that Reporting Services are running with service account but SPNs were not registered for Reporting Service. This issue is sometimes also known as double hop issue.
We also found that authentication was set to RSWindowsNTLM in RSReportServer.config file but it should have been set to RSWindowsNegotiate.
Therefore, solution was a two step solution:
- Register the missing SPN on the server as mentioned below:
- SETSPN -S http/servername Domain\SSRS
- SETSPN -S http/servername.domain.com Domain\SSRS
- Open the RsReportServer.config file and locate the <AuthenticationTypes> section and Add <RSWindowsNegotiate /> as the first entry in this section to enable Kerberos. An important precaution to take is “backup original config file before making any changes”.
After the second step, the SSRS services has to be restarted to bring the changes into affect.
You can find below Microsoft links for detailed information:
Once, both these steps were performed, we asked user to clear his browser cache. Post this, the issue got resolved.