A nice document explaining Kerberos, the double hop issue and what to do about it. It is also using an example with Reporting Server, Analysis Server and Sharepoint.
written by Mark Dasco and Boyan Penev
A nice document explaining Kerberos, the double hop issue and what to do about it. It is also using an example with Reporting Server, Analysis Server and Sharepoint.
written by Mark Dasco and Boyan Penev
Integrating reports in dashboards is hot. If you’re organization isn’t analyzing all the data it is gathering to answer questions about your business, you’re going to fall behind. If you have SharePoint , you can integrate Reporting Server and Analysis Server with it (I am not going to tell how to work with SSRS, there is someone who is much better at that).
This is my Server environment:
AD_SRV : Active Directory Server
SP_SRV : Sharepoint Server
SQL_SRV : SQL Server (Sharepoint Configuration Database)
REP_SRV : Reporting Server (SSRS)
As you can see we will run into the double hop problem. In short: the credentials which are passed into IIS (Sharepoint) cannot be passed to another machine (SSRS) for authentication. You can solve this by using the Kerberos Protocol. This is what I am gonna try to explain
What do you need:
First of all install the Sharepoint Object Model on the SSRS Server, if you don’t you will receive an error like:
The configuration paramter SharePointIntegrated is set to true but Share Point Object Model cannot be loaded.
Use the Service Account srvAccount
Also install .Net version 3.5 and the Windows Installer update (the setup will do that)
Then make sure that the srvAccount can create SPN’s dynamically, see step 3 in this article from Microsoft.
I installed SSRS to run under the service account srvAccount.
Then to configure the reporting server (start the Reporting Services Configuration Manager):
Then install the Reporting Services Add-in on SP_SRV.
Next step is to configure the add-in:
So.. now the Service Principal Names. Restart your SQL Server Service on SQL_SRV, so that it will register it’s SPN’s dynamically.
The following SPN’s we’re registered manually by me:
As you’ve done the SPN’s, you’re able to trust the srvAccount for delegation. In Active Directory, enable your service account to be trusted for delegation. Do the same for all your servers.
Now enable you’re SharePoint web application for Kerberos:
Last step: on your reporting server open rsreportserver.config (located in C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer”
Find the tag:
<AuthenticationTypes>
<RSWindowsNTLM/>
</AuthenticationTypes?
Change RSWindowsNTLM to RSWindowsNegotiate.
So, I hope I forgot nothing, happy reporting
Note: You can secure your kerberos environment some more, I showed you how to trust a user for delegation. I went for the option “Trust this user for delegation to any service (Kerberos only)”, you can also choose to go for “Trust this user for delegation to specified services only”. With this option you will dedicate some services allowed for the user (like http, cifs, etc….).
Some Websites which could be useful:
Tool for helping to troubleshoot Kerberos
Reza Alirezaei’s blog
Steve Caravaial’s blog
Winsmarts.com