<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">MCS UK Data Platform and Business Intelligence Team</title><subtitle type="html">The blog of the Microsoft Consulting Services (UK) Data Platform and Business Intelligence Team.</subtitle><id>http://blogs.msdn.com/b/mcsukbi/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/b/mcsukbi/atom.aspx" /><generator uri="http://telligent.com" version="5.6.50428.7875">Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><updated>2011-11-26T22:21:00Z</updated><entry><title>SQL Server Page Life Expectancy</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2013/04/12/sql-server-page-life-expectancy.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2013/04/12/sql-server-page-life-expectancy.aspx</id><published>2013-04-12T06:11:01Z</published><updated>2013-04-12T06:11:01Z</updated><content type="html">&lt;p&gt;Author: David Williams (Microsoft)    &lt;br /&gt;Contributor &amp;amp; Reviewer: Matthew Robertshaw (Microsoft)&lt;/p&gt; Ever wondered how volatile your Buffer Pool is? Keeping you awake at night?   &lt;p&gt;Page Life Expectancy (PLE) is the best indication of how volatile your Buffer Pool is (BP). It's a PerfMon counter, found in the SQL Server:Buffer Manager PerfMon object.&amp;#160; Monitor it every 3-5 seconds or so. There is also the Buffer Node:Page Life Expectancy counter which should be considered for NUMA systems, using the same logic per node as one would on a non-NUMA system.&lt;/p&gt;  &lt;p&gt;Volatility is measured by taking the average &amp;quot;life&amp;quot; of a page within the Buffer Pool (in seconds). If a page is overwritten or aged out, it starts a whole new life. &lt;/p&gt;  &lt;p&gt;So if lots of pages are being overwritten with new data very often, the average PLE will be low, and our BP volatility will be high.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Conversely if most pages in our BP remain there for a long time without being overwritten, the average PLE will be high, and the BP volatility will be low.&lt;/p&gt;  &lt;p&gt;So why do we care about BP volatility and PLE? What can knowing the BP volatility do for us? What is a &amp;quot;good&amp;quot; and &amp;quot;bad&amp;quot; PLE figure?&lt;/p&gt;  &lt;p&gt;PLE can be a measure of how much physical IO your SQL Server is doing. Hopefully I've got your attention, because physical IO is a major performance concern, both for reading and writing.&lt;/p&gt;  &lt;p&gt;Let's say you're loading a large amount of data into SQL Server. You want this to get into SQL Server as quickly as possible, so you're using SSIS with lots of parallel threads, hash partitions on the table, no indexes, and all the other tricks described here: &lt;a href="http://msdn.microsoft.com/en-us/library/dd537533(v=sql.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dd537533(v=sql.100).aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Because nothing goes onto the page without first going into the BP, your BP will be flooded with this new data. Your BP pages are being overwritten by as much physical IO as possible on the read, therefore your PLE dips sharply. If you're doing a big data load you want your PLE to be as low as possible, because this means the data load is going quickly.&lt;/p&gt;  &lt;p&gt;Now let's say you're running a big report using Reporting Services. We don't want to do much physical IO (if any) because having to read data pages from disk will slow us down. In this case we want our BP volatility to be as low as possible, and our PLE to be as high as possible (or as high as necessary for the query to hit SLA, see future post on query SLA's).&lt;/p&gt;  &lt;p&gt;So depending on the activity on the server, PLE can give us an indication of how efficient our physical IO/BP ratio is. &lt;/p&gt;  &lt;p&gt;We therefore have to be aware of the dominant activity type on the server before we make a call on whether PLE is &amp;quot;good&amp;quot; or &amp;quot;bad&amp;quot;.&lt;/p&gt;  &lt;p&gt;The old recommendation was that PLE should have a minimum of about 300 seconds. This was from the days when SQL's BP was around 4GB or so. This therefore meant that for a read-mostly activity such as a report a PLE of 300 meant that the SAN was reading 4GB over 5 minutes, which calculates to about 3.4MB/s.    &lt;br /&gt; These days we have BP's around the 64GB and above. So our 300 second threshold now means that the SAN would be reading about 218.5MB/s, which is a fair amount and likely to cause comment!&lt;/p&gt;  &lt;p&gt;So what's a &amp;quot;good&amp;quot; PLE for a read-mostly operation like a report? Here's a handy formula I use to get a decent estimate:&lt;/p&gt;  &lt;p&gt;PLE threshold = ((MAXBP(MB)/1024)/4)*300&lt;/p&gt;  &lt;p&gt;Where MAXBP(MB) is the maximum amount of Buffer Pool memory (in MegaBytes) over the report run you're interested in. You can use PerfMon to trace the maximum value of SQL Server:Buffer Manager:Database Pages over your reporting run.&lt;/p&gt;  &lt;p&gt;Take that number of pages and convert to MB: (pages*8)/1024 then substitute that for ‘MAXBP(MB)’ in the above formula to get your minimum PLE.&lt;/p&gt;  &lt;p&gt;The above formula considers each 4GB of BP (per NUMA node or otherwise) to have it’s own 300 second PLE. Therefore the more BP you have allocated, the higher the PLE threshold.&lt;/p&gt;  &lt;p&gt;If you want a &amp;quot;quick and dirty&amp;quot; way of calculating the PLE threshold then you can use the sp_configure &amp;quot;max server memory (MB)&amp;quot; value in the formula above, but this isn't really accurate because it doesn't account for stolen memory (memory taken from the BP, usually for plan caching, compilation, optimisation etc), and is even less accurate for SQL Server 2012 because we have lots of new stuff considered in the &amp;quot;max server memory (MB)&amp;quot; setting for 2012.&lt;/p&gt;  &lt;p&gt;If you're reading this because you're just after a threshold for PLE and you either know how to investigate low PLE, or you don't care, you can stop reading now.&lt;/p&gt;  &lt;p&gt;However if you're interested in what to do when PLE crashes, read on!&lt;/p&gt;  &lt;p&gt;PLE is an amazing counter - you can use it to quickly direct you straight towards the problem areas if you know a few little tricks.&lt;/p&gt;  &lt;p&gt;If PLE is low there must be a reason for this - knowing the reason is the key to investigating a performance problem through PLE.&lt;/p&gt;  &lt;p&gt;If you're doing a big load, you want PLE to be low, so that's fine. If we're doing read-mostly activities and it's under the threshold, here's the top 3 reasons:&lt;/p&gt;  &lt;p&gt;1) The queries being run have changed to look at data that they weren't before, hence we now read in this new data into the BP. Or you're reporting just after a data load of different data, or just a large data load. &lt;/p&gt;  &lt;p&gt;2) The queries being run are inefficient, and are reading unnecessary data into the BP which is therefore being constantly turned over&lt;/p&gt;  &lt;p&gt;3) There are large numbers of efficient queries (or a few very large efficient queries) which are saturating the BP&lt;/p&gt;  &lt;p&gt;Here's what you do for each of these situations&lt;/p&gt;  &lt;p&gt;1) This is normal, but it should be short-lived. You'd expect to see the PLE drop off a cliff, then build back up over the threshold and stay there until the next shift in data requirement. If it drops and stays there, you're probably in situation 2 or 3&lt;/p&gt;  &lt;p&gt;2) You can find this out by looking at the top queries for physical IO usage and checking out the query plans. If you see lots of scans, there may be some tuning to be done! Since 80% of performance problems come down to poor T-SQL (which may therefore create inefficient Query Plans), consider this before you think you're in situation 3!&lt;/p&gt;  &lt;p&gt;3) You've done your best, the queries are as efficient as they can get, but your PLE is still low. You can either spread out the queries (maybe running Agent Jobs one after the other instead of at the same time), or increase the amount of Buffer Pool memory. NEVER leave less than 1GB free for the OS, 2GB for servers with &amp;gt;64GB RAM, 4GB for servers with &amp;gt;128GB RAM. It's not that it's &amp;quot;free&amp;quot; and never used, the OS will use it and release it in much less than a second - less time than PerfMon or most tools' data gather interval, so it's being used but you don't get to see it. So if your PerfMon counter &amp;quot;Memory:Available Memory in MB&amp;quot; is under these thresholds and you're in situation 3, you need more physical memory so you can increase BP AND keep enough memory for the OS.&lt;/p&gt;  &lt;p&gt;So there's PLE in a nutshell, look out for the next blog post on how to convince your Storage team that the Storage isn't working properly - I'll show you how to provide unequivocal proof, or how to tell if you're barking up the wrong tree!&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10410515" width="1" height="1"&gt;</content><author><name>superlatch</name><uri>http://blogs.msdn.com/benjones/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Using PowerShell to deploy Windows Azure Virtual Machines and Windows Azure SQL Databases</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2013/03/21/using-powershell-to-deploy-windows-azure-virtual-machines-and-windows-azure-sql-databases.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2013/03/21/using-powershell-to-deploy-windows-azure-virtual-machines-and-windows-azure-sql-databases.aspx</id><published>2013-03-21T20:46:41Z</published><updated>2013-03-21T20:46:41Z</updated><content type="html">&lt;p&gt;Author: Benjamin Wright-Jones (Microsoft)    &lt;br /&gt;Contributors: Karthika Raman (Microsoft)     &lt;br /&gt;Technical Reviewers: Guy Bowerman (Microsoft), Sanjay Nagamangalam (Microsoft)&lt;/p&gt;  &lt;p&gt;I have recently been exploring the use IaaS (Infrastructure as a Service) to provide cloud-based virtual machines (VM’s) as opposed to laptop-based VM’s and also PaaS (Platform as a Service) for SQL databases.&amp;#160; I like the idea of carrying around a lighter more portable laptop and using cloud services to help me day to day, in contrast to carrying a heavy weight workstation for Hyper-v usage.&lt;/p&gt;  &lt;p&gt;I know we can deploy VM’s through the Azure Portal but I prefer an automated approach.&amp;#160; Fortunately the new PowerShell cmdlets support Azure VM provisioning and also Azure SQL database provisioning (plus some other nice interfaces).&amp;#160; This enables me to quickly spin up a SQL Server VM in Azure or SQL database in Azure.&amp;#160;&amp;#160; I am actually quite amazed what is possible with PowerShell and it is my new best friend.&amp;#160; PowerShell ISE in Windows 8 is superb, I highly recommend this as a development environment due to the intellisense and cmdlets search pane integration.&amp;#160; &lt;/p&gt;  &lt;p&gt;Below is the PowerShell script I wrote to provision a VM.&amp;#160; Unfortunately some manual steps are still required if you wish to manage the SQL Server instance remotely through Management Studio e.g. opening firewall ports, enabling TCP etc.&amp;#160;&amp;#160; This is all documented here &lt;a title="http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/" href="http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/"&gt;http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/&lt;/a&gt;.&amp;#160; Fortunately it is a lot easier to connect to an Azure SQL database and we can automate the registration of the provisioned instance in Management Studio. &lt;/p&gt;  &lt;h2&gt;Azure VM Provisioning (SQL Server 2012 Evaluation Edition)&lt;/h2&gt;  &lt;h5&gt;Step 1. Download and register the Azure publishing certificate (one time only event).&amp;#160; &lt;/h5&gt;  &lt;p&gt;In order to use PowerShell with the Azure VM and SQL Database services you will need to download and import the publishing file. Fortunately, this is a simple process.&amp;#160; I also store my certificate on Skydrive so I can access it everywhere I go in case I need it again. &lt;/p&gt;  &lt;pre class="csharpcode"&gt;Get-AzurePublishSettingsFile
Import-AzurePublishSettingsFile C:\...&lt;/pre&gt;


&lt;p&gt;If you don’t import the publishing file then you may see an error similar to below when attempting to access the Azure services.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;font color="#000000"&gt;An error occurred &lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;while&lt;/font&gt;&lt;/span&gt; making the HTTP request to &lt;/font&gt;&lt;font color="#000000"&gt;&lt;a href="https://management.core"&gt;https:&lt;/a&gt;&lt;/font&gt;&lt;a href="https://management.core"&gt;&lt;a&gt;&lt;/a&gt;&lt;font color="#000000"&gt;&lt;a href="https://management.core"&gt;&lt;a&gt;&lt;/a&gt;&lt;span class="rem"&gt;&lt;a href="https://management.core"&gt;&lt;a&gt;&lt;font color="#000000"&gt;//&lt;/font&gt;&lt;font color="#000000"&gt;management&lt;/font&gt;&lt;/a&gt;&lt;font color="#000000"&gt;&lt;a&gt;&lt;a href="https://management.core"&gt;.core&lt;/a&gt;.&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;windows.net&lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;/ae81ecb1-a8af-4fb7-87c5-4418babb4ff2/services/sqlservers/servers&lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;/&amp;lt;server&amp;gt;?op=ResetPassword. &lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;This could be due to the fact that the server &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;certificate is not configured properly with &lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;HTTP.SYS in the HTTPS case. This &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;could also be caused by a mismatch of the security binding &lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;between the client &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span class="rem"&gt;&lt;font color="#000000"&gt;and the server.&lt;/font&gt;&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;h5&gt;Step 2. View available subscriptions and set the correct Subscription&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;Get-AzureSubscription | Select SubscriptionName
Select-AzureSubscription –SubscriptionName&lt;/pre&gt;

&lt;p&gt;Incidentally, you may also need to associate a specific Azure Storage Vault (ASV) Account with your subscription, for some reason the default value was null so I had to allocate a specific account.&amp;#160; The Azure Storage account is required to host the VM disks which are provisioned during the creation of an Azure VM image.&amp;#160;&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;Get-AzureStorageAccount | Select Label
Set-AzureSubscription -SubscriptionName &lt;span class="str"&gt;&amp;quot;Windows Azure MSDN - Visual Studio Ultimate&amp;quot;&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;-CurrentStorageAccount &lt;span class="str"&gt;&amp;quot;&amp;lt;storageaccount&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Step 3. View the available Azure VM images and locations&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;Get-AzureVMImage | Select ImageName
Get-AzureLocation | Select DisplayName&lt;/pre&gt;

&lt;h5&gt;Step 4. Create an Azure VM&lt;/h5&gt;

&lt;p&gt;I like my VM’s big! ExtraLarge!&amp;#160; You can use the New-AzureQuickVM syntax, New-AzureVM or New-AzureVMConfig syntax,&amp;#160; The New-AzureQuickVM automatically creates and provisions the VM which does not require any additional steps.&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;New-AzureQuickVM -Windows -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;azureservice&amp;gt;&amp;quot;&lt;/span&gt; -Name &lt;span class="str"&gt;&amp;quot;&amp;lt;vmname&amp;gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;-ImageName &lt;span class="str"&gt;&amp;quot;b83b3509582419d99629ce476bcb5c8__Microsoft-SQL-Server-2012-&lt;br /&gt;&lt;/span&gt;&lt;span class="str"&gt;Evaluation-CY13Feb-SQL11-SP1-CU2-11.0.3339.0&amp;quot;&lt;/span&gt; –Password &amp;lt;password&amp;gt; -Location &lt;span class="str"&gt;&amp;quot;North Europe&amp;quot; &lt;br /&gt;–InstanceSize “ExtraLarge”&lt;/span&gt;&amp;#160;&lt;/pre&gt;

&lt;p&gt;You should see something like this below.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/4705.image_5F00_2A268D47.png"&gt;&lt;img title="image" style="border-width: 0px; margin: 0px 5px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/5824.image_5F00_thumb_5F00_41055EC3.png" width="658" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you see a DNS error then you may be trying to provision a under a duplicate service name e.g. Error &amp;quot;DNS name already exists&amp;quot; is misleading as it refers to a duplicate service name so change this in the parameters. This servicename refers to the VM service by which you reference/connect e.g. &amp;lt;vmservice&amp;gt;.cloudapp.net&lt;/p&gt;

&lt;h5&gt;Step 6. Start the Azure VM&lt;/h5&gt;

&lt;p&gt;Start the Azure VM using the command below. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;Start-AzureVM -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;servicename&amp;gt;&amp;quot;&lt;/span&gt; -Name &lt;span class="str"&gt;&amp;quot;&amp;lt;vmname&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;


&lt;p&gt;You can view the properties of your Azure VM’s by using Get-AzureVM –ServiceName &amp;lt;ServiceName&amp;gt;.&amp;#160; I would also add that additional data disks can be simply added using the Add-AzureDataDisk syntax providing the ability to simply increase the capacity of the provisioned Azure VM instance. &lt;/p&gt;

&lt;h5&gt;Step 7. Download the&amp;#160; remote desktop connection file to your local desktop!&lt;/h5&gt;

&lt;p&gt;Another great feature is the ability to automatically download the remote desktop file for the provisioned Azure VM.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;Get-AzureRemoteDesktopFile -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;ServiceName&amp;gt;&amp;quot;&lt;/span&gt; -name &lt;span class="str"&gt;&amp;quot;&amp;lt;vmname&amp;gt;&amp;quot;&lt;/span&gt; -LocalPath &lt;span class="str"&gt;&amp;quot;$ENV:userprofile\Desktop\myVm01.rdp&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;

&lt;p&gt;It is also possible to automatically launch and connect to your VM instance using the standard Remote Desktop client, mstsc.exe, which just eliminates another step in the process to connect to your Azure VM.&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;mstsc $ENV:userprofile\Desktop\myAzureVm1.rdp&lt;/pre&gt;


&lt;p&gt;Of course you could parameterise all of this to make life even simpler.&amp;#160; &lt;/p&gt;

&lt;h5&gt;Step 8. Connect!&lt;/h5&gt;

&lt;p&gt;Simply enter the username and password off you go, simple.&amp;#160;&amp;#160; You could create multiple PowerShell batch files for each Azure VM image type.&amp;#160; I am sticking with the SQL Server 2012 instance for now.&amp;#160; &lt;/p&gt;

&lt;h3&gt;Teardown&lt;/h3&gt;

&lt;p&gt;Cleaning up the environment is simple too, just a couple of PowerShell commands to stop and remove the provisioned VM.&lt;/p&gt;

&lt;h5&gt;Step 9. Stop the Azure VM&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;Stop-AzureVM  -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;ServiceName&amp;gt;&amp;quot;&lt;/span&gt; -Name &lt;span class="str"&gt;&amp;quot;&amp;lt;VmName&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Step 10. Remove/delete the Azure VM&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;Remove-AzureVM -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;ServiceName&amp;gt;&amp;quot;&lt;/span&gt; -Name &lt;span class="str"&gt;&amp;quot;&amp;lt;VmName&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;


&lt;h5&gt;Step 11. Remove/delete the Azure VM disks&lt;/h5&gt;

&lt;p&gt;The VHD’s associated with the image are not automatically removed so you will need to issue the Remove-AzureDisk command.&amp;#160; You can view the existing VHD’s and the associated image and container using the Get-AzureDisk command as shown below.&amp;#160; You will notice that I only have one disk (VHD) associated to an image.&amp;#160; The other VHD’s were from previous Azure VM deployments.&amp;#160; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/2870.image_5F00_5C0E0804.png"&gt;&lt;img title="image" style="border-width: 0px; margin: 0px 5px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/6354.image_5F00_thumb_5F00_56EB7EBB.png" width="697" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Removing (deleting) the VHD is simple.&amp;#160; The –DeleteVHD parameter is required if you wish to permanently delete the image from ASV so use with caution!&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Remove-AzureDisk –DiskName &amp;lt;diskname&amp;gt; –DeleteVHD&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/6403.image_5F00_710B9C45.png"&gt;&lt;img title="image" style="border-width: 0px; margin: 0px 5px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37-metablogapi/6428.image_5F00_thumb_5F00_0CECAB71.png" width="696" height="95" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;Step 12. Remove the allocated cloud service&lt;/h5&gt;

&lt;pre class="csharpcode"&gt;Remove-AzureService -ServiceName &lt;span class="str"&gt;&amp;quot;&amp;lt;servicename&amp;gt;&amp;quot;&lt;/span&gt; &lt;/pre&gt;


&lt;h5&gt;Step 13. Remember to save your PowerShell script and parameterise it for one-click deployment!&lt;/h5&gt;

&lt;h2&gt;Azure SQL Database Provisioning&lt;/h2&gt;

&lt;p&gt;On a related noted, it is also possible to provision a Windows Azure SQL Database using the new PowerShell cmdlets allowing me to rapidly deploy a cloud-based relational data store.&amp;#160; You must register the Azure publishing certificate unless this has been done previously (as above in step 1.).&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Import-AzurePublishSettingsFile C:\....
Set-AzureSqlDatabaseServer –ServerName &amp;lt;server&amp;gt; –AdminPassword &amp;lt;password&amp;gt;&lt;/pre&gt;


&lt;p&gt;Creating a new Azure SQL Database instance is also easy, an example is provided below.&amp;#160; I chose North Europe due to my geographical location.&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;New-AzureSqlDatabaseServer -location &lt;span class="str"&gt;&amp;quot;North Europe&amp;quot;&lt;/span&gt; -AdministratorLogin &lt;span class="str"&gt;&amp;quot;&amp;lt;login&amp;gt;&amp;quot;&lt;/span&gt; &lt;br /&gt;-AdministratorLoginPassword &amp;quot;&amp;lt;password&amp;gt;” &lt;/pre&gt;


&lt;p&gt;You’ll need to create a firewall rule so you can connect to the new Azure SQL Database instance:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;New-AzureSqlDatabaseServerFirewallRule -ServerName &lt;span class="str"&gt;&amp;lt;server&amp;gt;&lt;/span&gt; –RuleName &lt;font color="#006080"&gt;&amp;lt;rulename&amp;gt;&lt;/font&gt; &lt;br /&gt;-StartIPAddress &lt;span class="str"&gt;&amp;quot;0.0.0.0&amp;quot;&lt;/span&gt; -EndIPAddress &lt;span class="str"&gt;&amp;quot;222.222.222.222&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;As I was working through this, I discovered a VERY useful command which pops up a dialog with the help options for a specific command, an example is shown below.&amp;#160; Omitting the –ShowWindow syntax will output the help details to the console window. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;Get-Help Set-AzureSqlDatabase –ShowWindow&lt;/pre&gt;


&lt;p&gt;The next step was to create a SQL Server authenticated connection to the server hosting the Windows Azure SQL Database.&amp;#160; This is an important step as it establishes the context for the connection.&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;#specify sql auth credential
$servercredential = &lt;span class="kwrd"&gt;new&lt;/span&gt;-&lt;span class="kwrd"&gt;object&lt;/span&gt; System.Management.Automation.PSCredential(&lt;span class="str"&gt;&amp;quot;&amp;lt;username&amp;gt;&amp;quot;&lt;/span&gt;, &lt;br /&gt;(&lt;span class="str"&gt;&amp;quot;&amp;lt;password&amp;gt;&amp;quot;&lt;/span&gt; | ConvertTo-SecureString -asPlainText -Force))

#create a connection context
$ctx = New-AzureSqlDatabaseServerContext –ServerName &amp;lt;servername&amp;gt; -Credential $serverCredential&lt;/pre&gt;


&lt;p&gt;Incidentally, if you are wondering what is stored in the connection context then see below:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;ServerName        : &amp;lt;server&amp;gt;
SessionActivityId : 850d5e6f-7201-4bad-8fd5-331086064d4a
ClientSessionId   : e8d82a6d-0ed2-4aa3-9c38-3c3da924ab6a-2013-03-13 15:49:35Z
ClientRequestId   : d2436b67-ecca-453d-8d7c-12619e599784-2013-03-13 16:02:36Z
Databases         : {master} &lt;/pre&gt;


&lt;p&gt;Wondering what databases you can see?&amp;#160; Easy.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Get-AzureSqlDatabase -Context $ctx&lt;/pre&gt;

&lt;p&gt;Which returns all the databases deployed on the provisioned instance.&amp;#160; In the case below, only the master database was listed as no other databases are currently deployed.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Name          : master
CollationName : SQL_Latin1_General_CP1_CI_AS
Edition       : Web
MaxSizeGB     : 5
CreationDate  : 12/03/2013 22:35:57&lt;/pre&gt;


&lt;p&gt;Want a new database?&amp;#160; Easy again.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;New-AzureSqlDatabase -Context $ctx –DatabaseName &amp;lt;databasename&amp;gt;-Collation SQL_Latin1_General_CP1_CI_AS &lt;br /&gt;-Edition Web -MaxSizeGB 5&lt;/pre&gt;

&lt;p&gt;Interestingly, there are a host of DataServiceContext class options made available under the context of the connection such as ServerMetrics and DatabaseMetrics.&amp;#160; This provides some interesting insight into the metadata for your Azure SQL database server such as throttled connections and failures.&amp;#160;&amp;#160; Unfortunately, the context commands are not documented right now so this is just exploratory and the exposed properties may be removed in the future.&amp;#160; &lt;/p&gt;

&lt;pre class="csharpcode"&gt;$ctx.ServerMetrics.IncludeTotalCount()
$ctx.DatabaseMetrics.IncludeTotalCount()&lt;/pre&gt;


&lt;p&gt;Beyond the ability to provision a Windows Azure SQL Database using PowerShell cmdlets, I can also save time by automatically registering the Azure SQL instance in SQL Server Management Studio by invoking the SQL Server 2012 PowerShell command New-Item as below (thereby saving even more time!).&amp;#160; The AzureSqlDbServer1 reference is the friendly name which appears in the SQL Server Management console. &lt;/p&gt;

&lt;pre class="csharpcode"&gt;Import-Module sqlps
Cd &lt;span class="str"&gt;&amp;quot;sqlregistration\Database Engine Server Group&amp;quot;&lt;/span&gt;
New-Item AzureSqlDbServer1 -ItemType Registration -Value &lt;span class="str"&gt;&amp;quot;server=&amp;lt;server&amp;gt;.&lt;/span&gt;&lt;span class="str"&gt;database.windows.net; &lt;br /&gt;integrated &lt;/span&gt;&lt;span class="str"&gt;security=false; userid=&amp;lt;username&amp;gt;; &lt;/span&gt;&lt;span class="str"&gt;password=&amp;lt;password&amp;gt;; initial catalog=&amp;lt;databasename&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;h3&gt;Teardown&lt;/h3&gt;

&lt;p&gt;Removing (or de-provisioning) the Azure SQL database, instance and Management Studio registration is simple.&amp;#160; The last command, Remove-Item, is a SQL Server PowerShell command to delete the Management Studio server registration and this must be invoked using sqlps as above.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;Remove-AzureSqlDatabase $ctx –DatabaseName &lt;span class="str"&gt;&amp;quot;&amp;lt;dbname&amp;gt;&amp;quot;&lt;/span&gt;
Remove-AzureSqlDatabaseServer -ServerName &lt;span class="str"&gt;&amp;quot;&amp;lt;AzureSqlDbServer&amp;gt;&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="str"&gt;&lt;/span&gt;Import-Module sqlps
Remove-Item AzureSqlDbServer1
&lt;/pre&gt;

&lt;h2&gt;Closing Remarks&lt;/h2&gt;

&lt;p&gt;The new PowerShell cmdlets for Azure are a fantastic way to easily provision either VM’s or a database in the cloud.&amp;#160; I will be parameterising my scripts (and including try.. catch blocks) to quickly create an Windows Azure Virtual Machine or Windows Azure SQL Database as needed (one-click deployment made easy!).&amp;#160; PowerShell ISE is also an excellent development environment which can be leveraged for not only Azure VM or SQL database provisioning but also for many more solution scenarios.&amp;#160; &lt;/p&gt;

&lt;h2&gt;What is missing?&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Provisioning Azure HDInsight clusters is not currently possible however this should be coming soon &lt;a href="http://hadoopsdk.codeplex.com"&gt;http://hadoopsdk.codeplex.com&lt;/a&gt; (refer to Programmatic Cluster Management).&amp;#160; &lt;/li&gt;

  &lt;li&gt;PowerShell cmdlets for Azure SQL Reporting are not currently available. &lt;/li&gt;

  &lt;li&gt;The ability to provision an Azure VM image with the full business intelligence stack deployed i.e. SharePoint 2013, PowerView and Power Pivot integration.&amp;#160; &lt;/li&gt;

  &lt;li&gt;PowerShell remoting to be automatically enabled in the Azure VM. &lt;/li&gt;

  &lt;li&gt;The ability to invoke SqlCmd and query Azure SQL databases through PowerShell (inc. support for Federations).&amp;#160; &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;References&lt;/h2&gt;

&lt;p&gt;Managing Windows Azure SQL Databases with PowerShell &lt;a title="http://gallery.technet.microsoft.com/scriptcenter/Managing-Windows-Azure-SQL-632acc4b" href="http://gallery.technet.microsoft.com/scriptcenter/Managing-Windows-Azure-SQL-632acc4b"&gt;http://gallery.technet.microsoft.com/scriptcenter/Managing-Windows-Azure-SQL-632acc4b&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Windows Azure SQL Database Management with PowerShell&lt;a title="http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx" href="http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx"&gt;(http://blogs.msdn.com/b/windowsazure/archive/2013/02/07/windows-azure-sql-database-management-with-powershell.aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Getting Started with SQL Server on a Windows Azure Virtual Machine &lt;a title="http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/" href="http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/"&gt;http://www.windowsazure.com/en-us/manage/windows/common-tasks/sql-server-on-a-vm/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10404338" width="1" height="1"&gt;</content><author><name>superlatch</name><uri>http://blogs.msdn.com/benjones/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>Are your slicers disappearing in PowerPivot 2012?  Always click on a PivotChart, PivotTable, Slicer, etc BEFORE refreshing the PowerPivot Model</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2012/07/28/are-your-slicers-disappearing-in-powerpivot-2012-always-click-on-a-pivotchart-pivottable-slicer-etc-before-refreshing-the-powerpivot-model.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2012/07/28/are-your-slicers-disappearing-in-powerpivot-2012-always-click-on-a-pivotchart-pivottable-slicer-etc-before-refreshing-the-powerpivot-model.aspx</id><published>2012-07-28T10:54:00Z</published><updated>2012-07-28T10:54:00Z</updated><content type="html">&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;Over the past couple of months I have occasionally been losing my PowerPivot Slicers in Excel when using the PowerPivot 2012 add-in.&amp;nbsp; I have now managed to&amp;nbsp;put together a repro for the issue and will outline this below.&lt;/p&gt;
&lt;p&gt;The issue has been reported via Connect, so&amp;nbsp;should receive attention soon.&amp;nbsp; Until that point, this blog post provides my own (&lt;em&gt;unofficial)&lt;/em&gt; description of the problem and how to avoid it, in case other people&amp;nbsp;are hitting it.&lt;/p&gt;
&lt;h2&gt;Symptoms&lt;/h2&gt;
&lt;p&gt;The workbook will initially work as normal, i.e. slicers appearing and functioning&amp;nbsp;as normal:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6607.01_5F00_OK.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6607.01_5F00_OK.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At some point later (maybe hours, days or weeks), you will re-open the workbook and the slicers will appear very broken. Sometimes they disappear completely, at other times they change size.&amp;nbsp; They often get dropped from the "Slicers Vertical" and "Slicers Horizontal" sections in the PowerPivot Field List, e.g.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3718.02_5F00_Broken.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3718.02_5F00_Broken.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately the issue is present in both the RTM and CU2 releases of the add-in.&amp;nbsp; (I have only tested the RTM x86&amp;nbsp;and CU2 x86 add-ins so cannot definitely say if the issue is present in other releases).&lt;/p&gt;
&lt;h2&gt;Detailed Reproduction Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Double click a PowerPivot workbook in Windows Explorer to open it in Excel.&lt;/li&gt;
&lt;li&gt;DO NOT click on any of the charts / pivot tables.&lt;/li&gt;
&lt;li&gt;Click on the PowerPivot window button in the ribbon.&lt;/li&gt;
&lt;li&gt;Refresh all (in the PowerPivot window).&lt;/li&gt;
&lt;li&gt;Refresh the Pivot Chart (right mouse click on the chart, refresh).&lt;/li&gt;
&lt;li&gt;Save the workbook and close Excel.&lt;/li&gt;
&lt;li&gt;Reopen the workbook.&lt;/li&gt;
&lt;li&gt;Click the pivot chart (to load the PowerPivot data).&lt;/li&gt;
&lt;li&gt;Click off the chart.&lt;/li&gt;
&lt;li&gt;Click back on it, the slicers have now mysteriously become disconnected.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Workaround&lt;/h2&gt;
&lt;p&gt;The&amp;nbsp;clue to avoiding the issue is in step 2 above...i.e.&lt;/p&gt;
&lt;p&gt;Ensure the PowerPivot Model is loaded into Excel before opening the PowerPivot window to refresh.&amp;nbsp; Or put even more simply...&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-large; background-color: #ffff00;"&gt;&lt;strong&gt;ALWAYS CLICK ON A&amp;nbsp;PIVOTTABLE, PIVOTCHART OR&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-large; background-color: #ffff00;"&gt;&lt;strong&gt;SLICER&amp;nbsp;BEFORE OPENING THE POWERPIVOT WINDOW&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;And, with that, you should be able to continue to use your Slicers.&lt;/p&gt;
&lt;h2&gt;Updates&lt;/h2&gt;
&lt;p&gt;More details (and probably future updates to this issue) will be found on Connect:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/755850/bug-powerpivot-2012-slicers-are-lost-from-powerpivot-field-list#details"&gt;https://connect.microsoft.com/SQLServer/feedback/details/755850/bug-powerpivot-2012-slicers-are-lost-from-powerpivot-field-list#details&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Connect item also includes example files plus a short video to repro the issue.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10334428" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author><category term="PowerPivot Slicer lost deleted broken corrupt removed missing" scheme="http://blogs.msdn.com/b/mcsukbi/archive/tags/PowerPivot+Slicer+lost+deleted+broken+corrupt+removed+missing/" /></entry><entry><title>Installing PerformancePoint Dashboard Designer without ClickOnce</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2012/04/19/installing-performancepoint-dashboard-designer-without-clickonce.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2012/04/19/installing-performancepoint-dashboard-designer-without-clickonce.aspx</id><published>2012-04-19T19:48:34Z</published><updated>2012-04-19T19:48:34Z</updated><content type="html">&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;In some environments it is not possible to install Dashboard Designer using the normal process (i.e. allow it to install automatically when first opened from SharePoint).&amp;nbsp; Some Citrix environments for example have permissions that prevent ClickOnce apps from being able to install.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In these cases people sometimes look for alternative methods (e.g. using an installer / MSI).&amp;nbsp; Unfortunately, there is no MSI available for download for Dashboard Designer from Microsoft.&amp;nbsp; However, it is possible to put together an alternative method for installation.&amp;nbsp; The approach outlined below is one approach I have used in a couple of customer environments.&lt;/p&gt;
&lt;p&gt;The process is in two parts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Gather the files to install Dashboard Designer&lt;/li&gt;
&lt;li&gt;Install Dashboard Designer&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;em&gt;Note &amp;ndash; This is not an officially supported way of installing Dashboard Designer, but it has worked where I have used it in the past.&amp;nbsp; If thinking of using this, you should thoroughly test it in your environment as your environment may throw up issues I haven't encountered.&amp;nbsp; Also, when updates to Dashboard Designer are released (e.g. in SharePoint Service Packs) it will be necessary to repeat this alternative installation procedure to get the updated versions deployed.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Pre-reqs&lt;/h2&gt;
&lt;p&gt;This process does not install the pre-reqs for Dashboard Designer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.NET Framework 3.5 &lt;b&gt;&lt;i&gt;&lt;span style="text-decoration: underline;"&gt;Service Pack 1&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Microsoft&amp;reg; SQL Server&amp;reg; 2008 R2 Native Client &amp;ndash; &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26728"&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Microsoft&amp;reg; SQL Server&amp;reg; 2008 R2 ADOMD.NET &amp;ndash; &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26728"&gt;Download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should ensure these are also deployed to the target environment prior to installing Dashboard Designer.&lt;/p&gt;
&lt;p&gt;These pre-reqs apply irrespective of whether you are installing using the normal ClickOnce method or an alternative approach (the ClickOnce installation does not install these pre-reqs).&lt;/p&gt;
&lt;h2&gt;Gather the files to install Dashboard Designer&lt;/h2&gt;
&lt;p&gt;This approach requires a machine* that you can install Dashboard Designer on in the normal way (i.e. download the Click Once app from SharePoint).&amp;nbsp; On this machine, we&amp;rsquo;ll grab a copy of the Dashboard Designer files, ready to install on another machine (i.e. where the Click Once apps don&amp;rsquo;t work).&lt;/p&gt;
&lt;p&gt;(*This machine also needs Visual Studio or another .NET SDK on to be able to use mage.exe).&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;On a machine with Visual Studio installed, run &lt;br /&gt; mage.exe &amp;ndash;cc&lt;br /&gt; This clears the click once cache.&amp;nbsp; This means that after step 2, the only files in the Click Once cache are the Dashboard Designer files.&lt;/li&gt;
&lt;li&gt;Open Dashboard Designer from SharePoint (i.e. allow it to install using the normal Click Once install mechanism).&lt;br /&gt; This downloads Dashboard Designer and installs it.&amp;nbsp; The dashboard designer files are copied into the Click Once cache, where we can pick them up.&lt;/li&gt;
&lt;li&gt;Go to the Click Once cache - for my profile this is:&lt;br /&gt; C:\Users\xchrisbailiss\AppData\Local\Apps\2.0\...&lt;/li&gt;
&lt;li&gt;Copy all of the dll, exe and config files out of this directory and subdirectories (ignore all the manifests, etc).&amp;nbsp; &lt;br /&gt; The easiest way to locate the files (since they are scattered across various subdirectories) is to search and specify the wildcard character *&lt;br /&gt; A whole bunch of directories etc will be listed.&amp;nbsp; Copy the dll / exe / config files.&amp;nbsp; For those files in an En folder, copy these into an En subdirectory.&lt;br /&gt; Some files appear to be present in multiple directories on some installations.&amp;nbsp; These files have the same name, size and last modified date so are very likely just multiple copies of the same file.&lt;/li&gt;
&lt;li&gt;Check the file and folder structure against the file list below:&lt;ol&gt;
&lt;li&gt;Most of the files are in a single folder&lt;/li&gt;
&lt;li&gt;Inside this folder is a single subfolder named "En" which some of the files sit in.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;File list&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;DashboardDesigner.exe&lt;/li&gt;
&lt;li&gt;DashboardDesigner.exe.config&lt;/li&gt;
&lt;li&gt;DashboardDesigner.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Common.Calculation.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Common.Calculation.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Client.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Client.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Common.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Common.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Designer.Framework.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.Designer.Framework.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.DesignerPlugins.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.DesignerPlugins.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.WizardFramework.dll&lt;/li&gt;
&lt;li&gt;Microsoft.PerformancePoint.Scorecards.WizardFramework.resources.dll&lt;/li&gt;
&lt;li&gt;Microsoft.SharePoint.Client.dll&lt;/li&gt;
&lt;li&gt;Microsoft.SharePoint.Client.Runtime.dll&lt;/li&gt;
&lt;li&gt;En\DashboardDesigner.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Common.Calculation.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.Client.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.Common.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.Designer.Framework.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.DesignerPlugins.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.resources.dll&lt;/li&gt;
&lt;li&gt;En\Microsoft.PerformancePoint.Scorecards.WizardFramework.resources.dll&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Install Dashboard Designer&lt;/h2&gt;
&lt;p&gt;We are now in a position to test the install.&amp;nbsp; Note - the files simply need to be copied to the target machine.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the files in this structure to the target machine.&amp;nbsp; They can be placed anywhere (example install folder structure given below).&amp;nbsp; No further activities are required &amp;ndash; the install is as simple as copying the files.&lt;/li&gt;
&lt;li&gt;Run Dashboard Designer.&lt;/li&gt;
&lt;li&gt;Enter the SharePoint URL when prompted, e.g. http://MySharePointServer/&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;On one machine I tested this on, the Designer crashed after the SharePoint URL was first entered.&amp;nbsp; Upon reopening however, the designer was fine (and the URL had been saved correctly).&amp;nbsp; This crash appeared to only happen on the very first time Dashboard Designer was opened &amp;ndash; subsequently it always opened without any problem.&lt;/p&gt;
&lt;h2&gt;Install Example&lt;/h2&gt;
&lt;p&gt;Dashboard Designer can be installed to any folder.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the purposes of this example, assuming that we are installing to&lt;br /&gt; c:\Dashboard Designer&lt;/p&gt;
&lt;p&gt;So, simply copy the above files to the following paths (no MSI is needed, no DLL registration is needed):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C:\DashboardDesigner\DashboardDesigner.exe&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\DashboardDesigner.exe.config&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\DashboardDesigner.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Common.Calculation.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Common.Calculation.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Client.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Client.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Common.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Common.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Designer.Framework.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.Designer.Framework.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.DesignerPlugins.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.DesignerPlugins.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.WizardFramework.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.PerformancePoint.Scorecards.WizardFramework.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.SharePoint.Client.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\Microsoft.SharePoint.Client.Runtime.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\DashboardDesigner.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Common.Calculation.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.Client.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.Common.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.Designer.Framework.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.DesignerPlugins.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.DesignerWorkspace.resources.dll&lt;/li&gt;
&lt;li&gt;C:\DashboardDesigner\En\Microsoft.PerformancePoint.Scorecards.WizardFramework.resources.dll&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;A Note About the User.Config File&lt;/h2&gt;
&lt;p&gt;This process does not create the user.config file.&amp;nbsp; This will normally be created automatically the first time Dashboard Designer is run.&amp;nbsp; Again, on some environments this may not be possible and creating it as part of the installation process may be desirable.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When Dashboard Designer is installed using this alternative approach, Dashboard Designer will create this file at the following location (where in my case [username] is xchrisbailiss):&lt;/p&gt;
&lt;p&gt;C:\Users\[username]\AppData\Local\Microsoft_Corporation\DashboardDesigner.exe_StrongName_wl4f4koizhxra1ieka4fa0ofam43g0lh\14.0.0.0&lt;/p&gt;
&lt;p&gt;If creating this file manually, you also probably want to set the following settings within this file:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;ldquo;MruSiteCollection&amp;rdquo; to the SharePoint URL, e.g. http://MySharePointServer/&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Default Workspace Location&amp;rdquo; to the users default documents folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10295526" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 7 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-7.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-7.aspx</id><published>2011-11-26T23:46:00Z</published><updated>2011-11-26T23:46:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post summarises the previous six posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Summary&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;The following table summarises how each of the BI Service Applications can authenticate to a SQL Server data source (Relational Database or Analysis Services &amp;ndash; see above for test cases):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Key:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes&amp;nbsp;-&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; Service application supports the specified authentication mechanism.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;No&amp;nbsp;&lt;/span&gt;-&lt;span style="font-family: Calibri;" face="Calibri"&gt; Service application doesn&amp;rsquo;t support (i.e. doesn&amp;rsquo;t work) when web application uses the specified authentication mechanism.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Per User&amp;nbsp;-&lt;/span&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; Service application is able to delegate the user identity to the data source.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Shared&amp;nbsp;&lt;/span&gt;-&lt;span style="font-family: Calibri;" face="Calibri"&gt; Service application is able to use a single, shared, trusted account to connect to the data source.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;N/A&amp;nbsp;&lt;/span&gt;-&lt;span style="font-family: Calibri;" face="Calibri"&gt; Authentication back to data source not applicable to service application&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table border="1" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" rowspan="2" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Service Application&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="462" colspan="3"&gt;
&lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Web Application Authentication Mode&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="154"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Classic &amp;ndash;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&amp;lsquo;Windows&amp;rsquo;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="154"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Claims &amp;ndash;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Windows-Claims&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="154"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Claims &amp;ndash;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;FBA-Claims&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Excel Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ffff00" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Shared Only&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PerformancePoint Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ffff00" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Shared Only&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ffff00" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Shared Only&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ffff00" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Shared Only&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PowerPivot for SharePoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: N/A&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ff0000" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ff0000" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;No&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td bgcolor="#8db3e2" valign="top" width="166"&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Visio Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#92d050" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Per User + Shared&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td bgcolor="#ffff00" valign="top" width="154"&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Yes: Shared Only&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Notes:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PerformancePoint Dashboard Designer does not work with Claims-mode web applications.&amp;nbsp; The web application must be extended to provide an alternative URL in classic-mode.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services BIDS Report Designer and Report Builder are not able to retrieve / save content into Claims-mode web applications.&amp;nbsp; The web application must be extended to provide an alternative URL in classic-mode.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Additional References&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Configure Kerberos Authentication for SharePoint 2010 &amp;ndash; &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/p/?LinkId=196600"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;Whitepaper&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Implementing Claims-Based Authentication with SharePoint Server 2010 - &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/p/?LinkId=229109"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;Whitepaper&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241740" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 6 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-6.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-6.aspx</id><published>2011-11-26T23:42:00Z</published><updated>2011-11-26T23:42:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post describes how to test that user identity is being delegated through the BI service applications in a web application utilising FBA-Claims.&amp;nbsp; It also covers some differences in the functionality that is supported by FBA-Claims.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;BI Service Application Tests in the Claims Web App &amp;ndash; FBA-Claims&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;For a third time I&amp;rsquo;ll walk through each of the BI Service Applications tested previously &amp;ndash; again accessing them in the claims web app, only this time authenticating as a forms based user (FBA-Claim).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To state the obvious, FBA-Claims have no associated Windows identity.&amp;nbsp; This section will describe the consequences of this and how it can be worked around.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Excel Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Accessing the test workbook created earlier in the Claims site allows the same test to be repeated:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1727.17-_2D00_-ExcelServicesForms.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1727.17-_2D00_-ExcelServicesForms.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;C2WTS is now unable to obtain a windows security token and the connection to SQL Server fails.&amp;nbsp; There is therefore now no way to delegate the user identity to the back-end.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;It is still possible to connect to the back-end using a credential stored in the Secure Store Service.&amp;nbsp; This is configured on the connection properties in the Excel application:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4213.18-_2D00_-ExcelConfig.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4213.18-_2D00_-ExcelConfig.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Enter either a specific Secure Store Service ID (SSS ID) or select None to pick up a default credential configured in the Secure Store Service and Excel Services.&amp;nbsp; The workbook can then connect to the SQL Server database using the stored, shared credential:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2045.19-_2D00_-Excel-Services-SSS.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2045.19-_2D00_-Excel-Services-SSS.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PerformancePoint Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Accessing the test dashboard created earlier now results in:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7485.20-_2D00_-PPS-Broken.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7485.20-_2D00_-PPS-Broken.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;As the error message helpfully explains, it has not been possible (for the C2WTS service) to obtain a windows identity from the non-windows claim.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To work around this again requires using a shared credential stored in the Secure Store Service.&amp;nbsp; However, it is still possible to pass the identity into Analysis Services (albeit via a mechanism that is harder to work with in Analysis Services) using the PPS Data Connection Authentication option &amp;ldquo;Unattended Service Account and add authenticated user name in connection string&amp;rdquo;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The dashboard then appears as:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3806.21-_2D00_-PPS-Fixed.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3806.21-_2D00_-PPS-Fixed.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The user name (in claims format) then appears in the Custom Data measure.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services was already configured in the previous section to work with a shared account.&amp;nbsp; This continues to work with FBA-Claims:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6204.22-_2D00_-SSRS-FBA.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6204.22-_2D00_-SSRS-FBA.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PowerPivot for SharePoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;As described previously, PowerPivot for SharePoint works only with Classic-mode authentication.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Visio Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Accessing the test web drawing created earlier now results in an error:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6305.24-_2D00_-Visio-FBA-Claims-Broken.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6305.24-_2D00_-Visio-FBA-Claims-Broken.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Again, this is due to there being no windows identity to authenticate to SQL Server with.&amp;nbsp; Specifying a trusted shared account in the Secure Store Service allows the drawing to work, albeit again without the original user identity being delegated to the back-end:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2210.25-_2D00_-Visio-FBA-Claims-Working.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2210.25-_2D00_-Visio-FBA-Claims-Working.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;It is worth noting that the Secure Store Service can only be used for web drawings that use an ODC file to specify the connection.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Is Claims Augmentation the Answer?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;So, the FBA-Claims tests show that none of the key BI services are able to transition an FBA-Claim to a windows security token.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;This may seem surprising; since the C2WTS service can obtain a windows security token, provided it is presented with a UPN claim (see &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee517278.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;).&amp;nbsp;&amp;nbsp; This offers the theoretical possibility that adding a UPN claim into the set of claims might allow C2WTS to magically make the BI services work.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Well, it is possible to add additional claims using a Claims Augmenter (see &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee535894.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;), including adding the UPN claim:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7077.26-_2D00_-Claims-Augmentation.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7077.26-_2D00_-Claims-Augmentation.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Unfortunately, the BI service applications will only invoke the C2WTS for Windows-Claims.&amp;nbsp; Each claim is tagged with the provider that issued it.&amp;nbsp; This tag is immutable, so you cannot create a UPN claim from a claims augmenter that will be usable by SharePoint.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;So, no, claims augmentation is not the answer :-(&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;[Aside: The custom membership provider, custom role provider and claims augmenter were contained in a single assembly for development purposes.&amp;nbsp; This assembly was deployed into the farm using a wsp solution, which dropped it into the WFE.&amp;nbsp; It was necessary to also deploy it manually into the GAC on the the application servers &amp;ndash; without this the service apps were failing on these servers].&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Continued...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Continue reading in &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-7.aspx"&gt;Part 7&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241738" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 5 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-5.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-5.aspx</id><published>2011-11-26T23:31:00Z</published><updated>2011-11-26T23:31:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post describes how to test that user identity is being delegated through the BI service applications in a web application utilising Windows-Claims.&amp;nbsp; It also covers some differences in the functionality that is supported by Windows-Claims (vs Classic-authentication).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;BI Service Application Tests in the Claims Web App &amp;ndash; Windows-Claims&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;I&amp;rsquo;ll now walk through each of the BI Service Applications tested previously &amp;ndash; this time accessing them in the claims web app as a Windows User (i.e. using a Windows-Claim).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Excel Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Uploading the test workbook created earlier into the Claims site allows the same test to be repeated:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3060.10-_2D00_-Excel-Services.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3060.10-_2D00_-Excel-Services.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This shows that we are able to delegate the user identity back to the SQL Server instances.&amp;nbsp; Behind the scenes, the C2WTS has successfully performed a protocol transition from a Windows-Claim to a Windows Kerberos Ticket (two in fact, one for the Relational Engine and another for Analysis Services).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PerformancePoint Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The first challenge in working with PerformancePoint on a Claims-enabled site is opening Dashboard Designer.&amp;nbsp; Dashboard Designer (a Click-Once application) is not Claims-aware.&amp;nbsp; Attempting to open it on a Claims-enabled site (even using a Windows-Claims as here) results in:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4628.10-_2D00_-DashboardDesignerError.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4628.10-_2D00_-DashboardDesignerError.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;This can be worked around by extending the web application (see &lt;/span&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc261698.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;Technet&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;), to enable access via Classic-mode authentication.&amp;nbsp; In my lab environment, I extended the claims web app, to &lt;/span&gt;&lt;a href="http://claimsext/"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;http://claimsext&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;, from where Dashboard Designer can be successfully opened:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3107.11-_2D00_-DashboardDesignerOK.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3107.11-_2D00_-DashboardDesignerOK.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;The same test dashboard as shown previously can then be built and published.&amp;nbsp; This can be viewed via either the &lt;/span&gt;&lt;a href="http://claimsext/"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;http://claimsext&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt; URL (not shown) or &lt;/span&gt;&lt;a href="http://claims/"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;http://claims&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt; URL (shown below):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4621.12-_2D00_-Dashboard.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4621.12-_2D00_-Dashboard.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Again, the highlighted cells show that the current connection from PPS has been authenticated using Kerberos and that the user identity has been delegated through to Analysis Services correctly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;When opening Report Builder from a Claims-mode site, it is not possible to retrieve / save reports, data sources, etc from / into the SharePoint site.&amp;nbsp; Instead, the following prompt is thrown up:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/0636.13-_2D00_-SSRS-Connect-Fail.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2727.13a-_2D00_-SSRS-Prompt.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2727.13a-_2D00_-SSRS-Prompt.png" width="317" height="174" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;It is impossible to enter a credential into this dialog &amp;ndash; it simply won&amp;rsquo;t go away.&lt;br /&gt;&lt;br /&gt;A similar prompt is thrown up when attempting to deploy into a Claims-mode site from Visual Studio.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;As with PPS Designer, extending the web application to provider a Classic mode URL will enable both tools to access content in the site.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Uploading a copy of the report created earlier allows us to test running a report in Reporting Services.&amp;nbsp; However, attempting to pass the user identity to the back-end now results in an error, e.g. attempting to test the Data Source:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7242.13-_2D00_-SSRS-Connect-Fail.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7242.13-_2D00_-SSRS-Connect-Fail.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Windows authentication / per-user identity delegation is not supported in SQL Server Reporting Services 2008 R2 when the web application is in Claims Mode.&amp;nbsp; Instead, a shared account must be used (see &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff487970.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;).&amp;nbsp; That account will either be the default trusted execution account for the server (in which case the fall back will be transparent) or the account can be configured explicitly on the data source:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2045.14-_2D00_-SSRS-ConnectOK.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2045.14-_2D00_-SSRS-ConnectOK.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Of course, the disadvantage of using a shared trusted account is that the user identity is no longer passed through to the back-end:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/0243.15-_2D00_-SSRSTrustedAccount.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/0243.15-_2D00_-SSRSTrustedAccount.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This restriction is due to the fact SQL Server Reporting Services 2008 R2 is not claims-aware.&amp;nbsp; It runs as a separate web-server outside of SharePoint.&amp;nbsp; In SQL Server 2012 Reporting Services becomes a SharePoint service application and is better suited to supporting this type of scenario.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PowerPivot for SharePoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Attempting to open a PowerPivot workbook from the Claims-enabled site initially appears successful &amp;ndash; just after opening the workbook it appears as:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8156.16-_2D00_-PowerPivot-1.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8156.16-_2D00_-PowerPivot-1.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;However, at this point, no PowerPivot functionality has been invoked, only Excel Services has been used, which is showing data that was cached in the worksheet.&amp;nbsp; The PowerPivot service application only comes into play when Data &amp;gt;&amp;gt; Refresh&amp;hellip; is selected from the toolbar, or the slicer selection is changed.&amp;nbsp; Trying either of those actions results in:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8836.16-_2D00_-PowerPivot-2.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8836.16-_2D00_-PowerPivot-2.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;At the current time, PowerPivot does not support Claims-enabled sites of any kind.&amp;nbsp; Only web applications running Classic-mode authentication are supported.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Visio Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Uploading the test web drawing created earlier into the Claims site allows the same test to be repeated:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6014.23-_2D00_-Visio-Claims.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6014.23-_2D00_-Visio-Claims.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Again, this shows we have successfully delegated the user identity back to SQL Server.&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Continued...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Continue reading in &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-6.aspx"&gt;Part 6&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241736" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 4 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-4.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-4.aspx</id><published>2011-11-26T23:07:00Z</published><updated>2011-11-26T23:07:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post describes my claims-mode web application &amp;ndash; &amp;ldquo;claims&amp;rdquo;.&amp;nbsp; The functionality of the BI services accessed via this web application are described in the following posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Claims Web Application&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;After getting the portal web application running, I configured a second web application &amp;ndash; &amp;ldquo;claims&amp;rdquo;.&amp;nbsp; The claims web app uses the Claims-mode authentication provider.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The claims web app utilises the same set of service applications as the portal web app.&amp;nbsp; This means it will pick up the existing working set of service applications and their Kerberos-related configuration.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Note - even though this web application uses claims, Kerberos is still relevant.&amp;nbsp; This is because the back-end SQL Server instances are not claims-aware &amp;ndash; they are geared to work with windows authentication. For outbound authentication to the back-end, SharePoint uses the Claims to Windows Token Service (C2WTS), part of the Windows Identity Foundation, to obtain a windows identity (Kerberos ticket) from the set of claims.&amp;nbsp; To do this, the C2WTS performs a Kerberos Constrained Delegation Protocol Transition &amp;ndash; hence Kerberos is still relevant.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The claims web app supports both Windows-Claims and Forms Based Authentication (FBA-Claims).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;You may expect that a user authenticated with a Windows-Claim will be able to access the same functionality from the SharePoint BI service applications as a user authenticated into the Portal web app using Classic-mode windows authentication.&amp;nbsp; This is in fact not always true and varies by service-application as I&amp;rsquo;ll describe in the next couple of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;FBA-Claims do not have a windows identity associated with them, so will obviously not be able to delegate a windows identity.&amp;nbsp; Could C2WTS help here?&amp;nbsp; Not really, as I&amp;rsquo;ll also describe in a later post.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Upon navigating to the claims URL, the default screen is presented where the user is asked to select the authentication method:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1067.06-_2D00_-Claims-Login.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1067.06-_2D00_-Claims-Login.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;If Windows Authentication is selected, the user is automatically logged in based on a Windows-Claim based on their active directory account.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;If Forms Authentication is selected, the user is redirected to a second login screen:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6303.07-_2D00_-FBA-Login.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/6303.07-_2D00_-FBA-Login.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;These FBA tests used a simple custom membership provider and a simple custom role provider.&amp;nbsp; References:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;System.Web.Security.MembershipProvider Class - &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.security.membershipprovider.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;System.Web.Security.RoleProvider Class - &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.security.roleprovider.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Claims Walkthrough: Creating Forms-Based Authentication for Claims-Based SharePoint 2010 Web Applications Using Custom Membership and Role Providers &amp;ndash; &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg317440.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;A simple Claim Viewer web part was also created, which lists the users claims.&amp;nbsp; A sample of a similar viewer can be found at &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg317440.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;MSDN&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;When logged in with a Windows Claim, the following set of claims is displayed:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3678.08a-_2D00_-Windows-Claims.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3678.08a-_2D00_-Windows-Claims.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;The UPN claim (&lt;/span&gt;&lt;a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;) is worth noting.&amp;nbsp; The UPN claim is used by the Claims to Windows Token Service (C2WTS) to obtain a windows security token that can be delegated to systems that aren&amp;rsquo;t claims aware such as the SQL Server Relational Database Engine and Analysis Services.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;When logged in with an FBA Claim, the following set of claims is displayed:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4010.09a-_2D00_-Form-Claims.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/4010.09a-_2D00_-Form-Claims.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Continued...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Continue reading in &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-5.aspx"&gt;Part 5&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241734" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 3 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-3.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-3.aspx</id><published>2011-11-26T22:44:00Z</published><updated>2011-11-26T22:44:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post describes how to test that user identity is being delegated through the BI service applications in a web application utilising classic-mode authentication.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;BI Service Application Tests in the Portal Web App &amp;ndash; Classic-Authentication&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Let&amp;rsquo;s quickly walk through some authentication tests for each service application.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Note, for brevity, the tests illustrated here don&amp;rsquo;t cover all possible delegation paths (extend the tests in your own time, for example, to test delegation via PerformancePoint Services to SQL Relational Engine, via Reporting Services to SQL Analysis Services, etc).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Excel Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To test identity delegation via Excel Services to the Relational Engine, first create a SQL Server view based on the SQL statement in the previous post.&amp;nbsp; Then create a new Excel Workbook, connect to SQL server and create a new PivotTable based on this view.&amp;nbsp; Expected results are shown in the screenshot below.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Testing identity delegation via Excel Services to Analysis Services is a little more involved.&amp;nbsp; First, create a simple cube in Analysis Services (or modify an existing one, even AdventureWorks - the makeup of the cube doesn&amp;rsquo;t matter at all).&amp;nbsp; Create some calculated measures based on the MDX query in the previous post.&amp;nbsp; The equivalent MDX for defining measures in a cube is (paste this after the CALCULATE statement):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;CREATE MEMBER CurrentCube.Measures.User as UserName();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;CREATE MEMBER CurrentCube.Measures.[CustomData] as CustomData()&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Deploy the cube.&amp;nbsp; Now, re-open the Excel Workbook, connect to Analysis Services and base a second Pivot Table in the Excel Workbook on the cube (only use the two measures created above &amp;ndash; ignore whatever else is in the cube). &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Upload the workbook into a document library in SharePoint.&amp;nbsp; View it via Excel Services (after opening, you may need to select Data &amp;gt;&amp;gt; Refresh&amp;hellip; to update the contents):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/5556.03-_2D00_-Excel-Services.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/5556.03-_2D00_-Excel-Services.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The highlighted cells (on the left show) that the current connection from Excel Services has been authenticated using Kerberos.&amp;nbsp; They also show that the user identity has been delegated through to the SQL Server Relational Engine correctly.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The highlighted cell on the right shows that the user identity has been delegated to Analysis Services correctly.&amp;nbsp; Given there are multiple hops and multiple protocol transitions involved, it&amp;rsquo;s a reasonable conclusion that Kerberos is working.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Performance Point Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To test identity delegation via Performance Point Services to Analysis Services requires creating a simple test dashboard in Dashboard Designer.&amp;nbsp; Use a connection configured with the &amp;lsquo;Per User Identity&amp;rsquo; authentication setting.&amp;nbsp; Then create an analytical view either based on the cube created/modified above or simply use the MDX query defined in the previous post.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Deploy this to SharePoint and view:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3531.04-_2D00_-PPS.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3531.04-_2D00_-PPS.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The highlighted cells show that the user identity has been delegated through to Analysis Services correctly.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Reporting Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;By creating a report based on the SQL View described above, delegation via SSRS can be proven:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7217.05-_2D00_-SSRS.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2642.05-_2D00_-SSRS.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/2642.05-_2D00_-SSRS.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PowerPivot for SharePoint&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;PowerPivot for SharePoint doesn&amp;rsquo;t directly connect to the back end data source when a user is viewing a workbook containing PowerPivot data.&amp;nbsp; Therefore, no identity delegation tests are applicable.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Visio Services&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;To test delegation via Vision Services to the Relational Engine requires creating a web drawing and linking some shapes to external data (in this case, SQL Server).&amp;nbsp; First, create a simpler version of the above SQL view that returns information just about your connection:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;select s.Session_Id, s.Login_Name, s.Host_name, c.Auth_Scheme,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;case when c.Auth_Scheme = 'KERBEROS' then 1 else 0 end IsKerberos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;from sys.dm_exec_connections c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;inner join sys.dm_exec_sessions s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;on s.session_id = c.session_id&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;where c.session_id = @@SPID&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;When run from Management Studio, this returns a single record:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1184.30-_2D00_-Visio-Record.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/1184.30-_2D00_-Visio-Record.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Next, create a new Visio Diagram.&amp;nbsp; Link the shapes to this external data view:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3603.31-_2D00_-Visio-App.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3603.31-_2D00_-Visio-App.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Save this as a Web Drawing (*.vdw) into SharePoint, open it in Visio Services and click Refresh:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7534.32-_2D00_-Visio-Browser.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7534.32-_2D00_-Visio-Browser.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This shows that the user identity is successfully being delegated back to SQL Server.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Continued...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Continue reading in &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-4.aspx"&gt;Part 4&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241733" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry><entry><title>BI Service Applications in SharePoint 2010 – Authentication (Classic vs. Claims) and Identity Delegation (Kerberos) – Part 2 </title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-2.aspx" /><id>http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-2.aspx</id><published>2011-11-26T22:21:00Z</published><updated>2011-11-26T22:21:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;strong&gt;Author:&lt;/strong&gt; Chris Bailiss&lt;br /&gt;&lt;strong&gt;Technical Reviewers (Kerberos/Claims):&lt;/strong&gt; James Noyce, Paul Williams&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Introduction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post is part of a series of posts describing the authentication methods supported by the SharePoint 2010 Business Intelligence service applications.&amp;nbsp; Please see &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-1.aspx"&gt;Part 1&lt;/a&gt; for an overview of this series of posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This post describes my classic-mode web application &amp;ndash; &amp;ldquo;portal&amp;rdquo; &amp;ndash; and outlines some basic user identity tests for SQL Server.&amp;nbsp; These tests will be applied to the BI service applications running in the two web applications (&amp;ldquo;portal&amp;rdquo; and &amp;ldquo;claims&amp;rdquo;) in the coming posts.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Portal Web Application&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;I configured the &amp;ldquo;portal&amp;rdquo; web app first, running with classic-mode authentication.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Although my VM environment is only for test purposes, to be more life-like, each service application is running under a different service account, granted a minimum set of permissions.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Kerberos Constrained Delegation has been configured through the service applications to the SQL Server instances (to both the Relational Database Engine instance and the Analysis Services instance).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The web application is configured to use the Negotiate (Kerberos) protocol.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;User Identity Testing for SQL Server&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Let&amp;rsquo;s spend a few moments talking about how to test that the user identity is reaching the back end systems&amp;hellip;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;[ASIDE:&amp;nbsp; Since the SQL Server Relational Database Engine and Analysis Services Engine aren&amp;rsquo;t Claims aware, the tests described below are also relevant to testing that identity delegation is working for the Claims web app as described in later posts].&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;As stated earlier, I&amp;rsquo;m not going to spend any time on how to configure the Kerberos protocol with SharePoint.&amp;nbsp; That information is available in detail at:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Plan for Kerberos authentication - &lt;/span&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee806870.aspx"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;Technet&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Calibri; font-size: small;" size="3" face="Calibri"&gt;Configure Kerberos Authentication for SharePoint 2010 &amp;ndash; &lt;/span&gt;&lt;a href="http://go.microsoft.com/fwlink/p/?LinkId=196600"&gt;&lt;span style="color: #0000ff; font-family: Calibri; font-size: small;" size="3" face="Calibri" color="#0000ff"&gt;Whitepaper&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;However, it is worth noting a couple of quick ways to test that identity delegation is working, which we&amp;rsquo;ll be using later on.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;A very handy piece of SQL for testing whether Kerberos is working is:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;select s.Session_Id, s.Login_Name, s.Host_name, c.Auth_Scheme,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;case&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when c.session_id = @@SPID then '&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; **YOU** &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;'&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else null end Current_Connection&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new,courier;"&gt;from sys.dm_exec_connections c inner join sys.dm_exec_sessions s on s.session_id = c.session_id&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This makes use of a couple of DMVs to list the current connections into SQL Server - plus a handy additional field that identifies your connection (hey, I like to be &lt;span style="text-decoration: line-through;"&gt;lazy&lt;/span&gt; efficient).&amp;nbsp; Running this from different servers/clients and client applications enables a quick test of Kerberos / Kerberos Delegation paths.&amp;nbsp; Listing all the connections also gives a quick feel for the types of authentication mechanisms being used at a given point in time.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;[NB: this SQL statement requires that the view server state permission be granted to the caller].&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;For example, in my environment, running the above statement from SQL Server Management Studio on the client machine shows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8132.01a-_2D00_-SSMS.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/8132.01a-_2D00_-SSMS.png" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;This shows that I (cblab\usertest) am authenticated against the server using the Kerberos protocol.&amp;nbsp; Note &amp;ndash; any connections from clients running on the SQL Server itself will use NTLM, by design.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;We&amp;rsquo;ll use the same SQL statement again later.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;Testing that delegation to Analysis Services is working is more difficult since it doesn&amp;rsquo;t expose the same level of connection detail.&amp;nbsp; However, the following MDX query can help:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;with&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; member Measures.User as UserName()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; member Measures.[CustomData] as CustomData()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;select {Measures.User, Measures.[CustomData]} on columns&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;from [Adventure Works]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;The User measure in this query will return the user identity associated with the query inside Analysis Services, thus showing whether the user identity has been successfully delegated.&amp;nbsp; The CustomData measure shows the value that has been passed into Analysis Services on the connection string (this is client application dependent &amp;ndash; we&amp;rsquo;ll use it later).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;" size="3"&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;For example, in my environment, running the above MDX query from SQL Server Management Studio on the client machine shows:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/3286.02-_2D00_-SSMS.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7450.02-_2D00_-SSMS.png"&gt;&lt;img border="0" alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-38-37/7450.02-_2D00_-SSMS.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This shows that my identity (cblab\usertest) has reached Analysis Services.&amp;nbsp; Note - this doesn&amp;rsquo;t prove anything to do with Kerberos in this example (we could have authenticated using NTLM).&amp;nbsp; However, when this MDX query is used via other client applications in a double-hop scenario / via a SharePoint service application, it&amp;rsquo;s a reasonable test that Kerberos Delegation is working.&amp;nbsp; (If you want to be absolutely certain, turn on Kerberos logging or use NetMon).&lt;/p&gt;
&lt;h2&gt;&lt;span style="font-size: medium;" size="4"&gt;&lt;span style="color: #4f81bd;" color="#4f81bd"&gt;&lt;span style="font-family: Cambria;" face="Cambria"&gt;Continued...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style="font-family: Calibri;" face="Calibri"&gt;&lt;span style="font-size: small;" size="3"&gt;Continue reading in &lt;a href="http://blogs.msdn.com/b/mcsukbi/archive/2011/11/26/bi-service-applications-in-sharepoint-2010-authentication-classic-vs-claims-and-identity-delegation-kerberos-part-3.aspx"&gt;Part 3&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241731" width="1" height="1"&gt;</content><author><name>Chris - SQLBI</name><uri>http://blogs.msdn.com/chris_5F00_sqlbi_4000_hotmail.co.uk/ProfileUrlRedirect.ashx</uri></author></entry></feed>