Accessing SSRS URL hosted on Azure VM over the Internet
There might be a requirement where you would like the SQL Server Reporting Services URL hosted on your on premise environment to be accessed over the Internet (outside of your domain). This can be achieved by hosting Reporting Services on an Internet-facing Web server to distribute general information to the public at large or private corporate data to authorised and authenticated users.
More details: https://technet.microsoft.com/en-us/library/ms159272(v=sql.105).aspx .
Another requirement could be where SQL Server Reporting Services is hosted on a Azure VM and you would like to access it over the internet. This can be done by using the public IP of the Azure VM to access it.
In this blog, I would be more concentrating on the configuration from the Azure standpoint. I am considering that reader must have used the Reporting Services in the On-premises Environment and has basic knowledge about SSRS configuration.
1. Create a NEW Azure VM with SQL Server 2016 Installation.
You can use existing Azure VM that has SSRS installed or you can build a new Azure VM with SQL Server Installation along with SSRS.
- To create a new Azure VM you can go to http://portal.azure.com.
- Search with SQL Server 2016 like below and create a new VM.
- Once the VM is created, you are all set to use the SSRS from the Azure VM.
- RDP inside the VM and launch the “Reporting Services Configuration Manager.
- Configure reporting services in the native mode. Now you can access the web portal URL inside the server. However, the same URL can’t be accessed from the remote machine for obvious reason that the local URL is not exposed to outside.
- Once the VM is setup. The VM would have one private IP which can be seen if we do ipconfig inside from the VM. Also, there would be a public IP which would be used to connect to the VM from the Internet and the same can be visible from the Azure Portal.
2. Allow Communication on the Server Port.
- In general Reporting Services by default use the port 80 for the http communication. We can give a different port as well in the reporting Services Configuration manager. For the time being let’s consider that the reporting Services is using the port 80.
To allow the communication from the outside world, we can create an Inbound firewall rule in the server to allow the http communication on the Port 80.
To do that we can go to Windows Firewall setting like below:
Click on Next-> Choose “Allow the Connection” property -> Next -> Give a name to the rule-> Finish.
At this point if we do the telnet from the Internet, we would be able to telnet using the public IP.
3. Creating DNS for the Azure VM from the Azure portal.
To access the SSRS site from the Internet, we need to create the DNS for the Azure VM. We can do this from the Azure portal.
- So once we are done with this, we would be able to RDP the VM using the DNS name. For my case, it is: ssrsinternet.southeastasia.cloudapp.azure.com.
- Edit the VM’s Network Security Group to allow traffic for port: 80. The name would be <Your VM Name>.nsg.
- Once this is done, redeploy the VM.
- After that you would be able to access the SSRS web portal URL from the Internet using the URL http://<dns-sname>/reports . Use the user name and password you used to create the VM.
Author: Samarendra Panda - Support Engineer, SQL Server BI Developer team, Microsoft
Reviewer: Khushboo Gupta - Technical Advisor, SQL Server BI Developer team, Microsoft