Skip to main content

Cloud

Tame that Kerberos doggie with this MDX biscuit

According to Greek mythology, Kerberos is the three-headed hound that guards the gates of Hades. It is also the industry standard security protocol that allows a user’s security context must be passed from their workstation to multiple back-end server machines, otherwise known as the dreaded, but essential, “Double-Hop” scenario. The “Double-Hop” enables the combination of many of the Microsoft Applications that work in concert, for example SharePoint, PerformancePoint, and SQL Server Analysis Services. Those of us that have had the opportunity to work through a problematic Kerberos deployment would agree that this protocol is aptly named.

NTLM is capable of passing a user’s security token one machine deep. For example, I can use NTLM to pass my identity from my client machine to an IIS process running on a server. In this case, the IIS can recognize my security identifier and grant or deny access to secured objects – but only for those objects on that actual server. If IIS (or SharePoint) were to need to pass my credentials to another back-end server process, for example, Analysis Services, an NTLM authenticated token would not be valid because we’ve already used up our one “hop”. Enter Kerberos.

There are plenty of good postings about understanding and setting up Kerberos Authentication for BI Technologies like PerformancePoint. I won’t attempt to duplicate those postings here. Here are some links to some that are relevant:

This post is about a technique that I have been using for many of the recent BI deployments I have done. To validate that Kerberos is working, one of the questions that you need to answer is “Who does the backend database think I am?” This simple MDX query provides that functionality:

WITH
MEMBER [Measures].[WhoAmI] AS ‘USERNAME’
SELECT
{
[Measures].[WhoAmI]
} ON 0,
[Fiscal Calendar].[Year].[All] ON 1
FROM
[SupplyAnalytics]

The above is is an actual query that we are using as the source for a PerformancePoint Analytic Grid to test user authentication. The result looks like :

(the Domain has been blanked out to protect client confidentiality)

The above query can tell me a lot:

  • Is PerformancePoint PerUser authentication working?
  • Is Kerberos working?
  • If I have secured cube data, for example with Dimension Security, for which user should the data be secured?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

PointBridge Blogs

More from this Author

Follow Us
TwitterLinkedinFacebookYoutubeInstagram