Updating as someone asked me to post as answer.
I found a work around. This isn't Anonymous Authentication, but uses HTTP Basic Authentication to pass Windows Credentials to SSRS
This is the guide I used:
https://tickett.wordpress.com/2014/12/03/anonymous-authentication-sql-server-reporting-services/?unapproved=9854&moderation-hash=4bf90332f3468fc8b78f6b84e1e63d6d#comment-9854
I found I had to use this tool instead of the one they suggested (http://www.swingnote.com/tools/texttohex.php) and used "Hex Encoded for URL"
In case that website isn't accessible, here's a step by step process outlined in the original article.
Create this file below to put at the root of your SSRS web server or another IIS server at this location:C:\inetpub\wwwroot
. Give it a unique name so you can remember the URL and save it as a .html file (let's call it your_report.html
for this example.) Make sure to read the comments in the code
<html>
<head>
<script>
// use this website to convert a user account and password to view reports into hex (https://www.swingnote.com/tools/texttohex.php)
// Do not use your domain as the prefix, just an AD user name. Best practice would be to create an account that only has read privileges to this report only
// use hex encoded for URL for this
// First section is the username | Second section is the password
var _0x1751=["\x61\x66","\x76\x76"];
function getHTTPObject() {
if (typeof XMLHttpRequest != 'undefined') {
return new XMLHttpRequest();
}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
return new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
return false;
}
function runReport() {
var http = getHTTPObject();
// Here is the section for the report you want to use
var url= "http://<your_report_server>/ReportServer/Pages/ReportViewer.aspx?<report_name>&rs:Command=Render";
http.onreadystatechange = function() {
if (http.readyState == 4) {
if (http.status == 401) {
runReport();
}
if (http.status == 200) {
document.location = url;
}
}
};
http.open("get", url, true, _0x1751[0x0], _0x1751[0x1]);
http.send(null);
return false;
}
</script>
</head>
<body onload="runReport();">
</body>
</html>
After the file is saved to C:\inetpub\wwwroot
, test it by going to your report server (http://<report_server_name>/your_report.html
)