<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PowerPivotGeek &#187; Security</title>
	<atom:link href="http://powerpivotgeek.com/category/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://powerpivotgeek.com</link>
	<description>An adventure in managed self-service computing</description>
	<lastBuildDate>Wed, 14 Jul 2010 04:51:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Testing the Claims To Windows Token Service for different identities</title>
		<link>http://powerpivotgeek.com/2010/05/21/testing-the-claims-to-windows-token-service-for-different-identities/</link>
		<comments>http://powerpivotgeek.com/2010/05/21/testing-the-claims-to-windows-token-service-for-different-identities/#comments</comments>
		<pubDate>Fri, 21 May 2010 15:54:00 +0000</pubDate>
		<dc:creator>powerpivotwahoo</dc:creator>
				<category><![CDATA[Midtier]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2010/05/21/testing-the-claims-to-windows-token-service-for-different-identities/</guid>
		<description><![CDATA[<p>As noted in a previous blog post on debugging “The data connection uses windows authentication and user credentials could not be delegated” there are times (very rare times) when the issue is a problem with your Active Directory configuration. I want to reiterate that this is rare and it is usually something as simple as [...]]]></description>
			<content:encoded><![CDATA[<p>As noted in a previous blog post on debugging <a href="the-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated" target="_blank">“The data connection uses windows authentication and user credentials could not be delegated”</a> there are times (very rare times) when the issue is a problem with your Active Directory configuration. I want to reiterate that this is rare and it is usually something as simple as the c2wts service is not running. However, we have now seen two cases of “mis-configured” Active Directories which have led to this problem. It can manifest itself as either you always get this error or you get this error for all users except a couple. To test and see if it is a problem with your Active Directory settings, I am including some code for you to compile and run. At a very low level in Excel Calculation Services, they take the User Principal Name of the interactive user and attempt to convert it to a WindowsIdentity token using c2wts. The code below attempts to do the exact same thing and then just checks for errors and tries to give you some useful information about it (it is derived from <a href="http://msdn.microsoft.com/en-us/library/ee517258.aspx" target="_blank">this</a>). If you compile this application and test the interactive users by attempting to get their WindowsIdentity token and it succeeds for them, then the issue was one of the ones listed earlier in the post on data connection delegation issues. If acquiring the token fails, then you most likely have an AD issue. Dave, Denny and I will try to keep adding information about what the possible configuration errors could be, but here is some code so you can test this on your own and perhaps resolve the whole problem without having to call CSS.</p>
<p><span id="more-1112"></span>Make sure to run this executable as the service account under which Excel Calculation Service is running. If you are not sure what account that is, first go to Central Admin’s “Security” page:</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2010/05/CentralAdmin_Security.png"><img style="border-width: 0px;" src="http://powerpivotgeek.com/wp-content/uploads/2010/05/CentralAdmin_Security_thumb.png" border="0" alt="CentralAdmin_Security" width="644" height="264" /></a></p>
<p>Then under “General Security” chose “Configure Service Accounts”:</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2010/05/CentralAdmin_ManageServiceAccounts.png"><img style="border-width: 0px;" src="http://powerpivotgeek.com/wp-content/uploads/2010/05/CentralAdmin_ManageServiceAccounts_thumb.png" border="0" alt="CentralAdmin_ManageServiceAccounts" width="1028" height="307" /></a></p>
<p>In the drop down list on the right side you are looking for a “Service Application Pool” which contains your “Excel Services Application Web Service Application” (in the middle list). The account at the bottom would be the account you want to make sure you run the test application as to accurately simulate what ECS is doing when you are actually using SharePoint. Using the wrong account might give misleading results.</p>
<p>You must provide the User Principle Name (UPN) of the interactive user to the test application. All users have an implicit UPN which can be expressed as &lt;user&gt;@&lt;domain&gt; (I would be <a href="mailto:“leegr@redmond">“leegr@redmond</a>”). You may also have been given an explicit UPN which might look slightly different (although the implicit UPN would still work). If you are concerned that you are not using the right UPN, you can dig through the ULS log to find the UPN associated with the failure. This is the log entry that I got when I turned the c2wts service off:</p>
<blockquote><p>SPSecurityContext.WindowsIdentity: Could not retrieve a valid windows identity for NTName=&#8217;REDMOND\leegr&#8217;, UPN=&#8217;leegr@microsoft.com&#8217;. UPN is required when Kerberos constrained delegation is used.</p></blockquote>
<p>Note that the bit about &#8220;Kerberos” can be ignored because we do not require Kerberos constrained delegation to work (and neither does c2wts … it just returns a limited token in this case which is fine for us). Also, your log entry might look a bit different since I don’t know if they output different things to the log based on the exception type at this level.</p>
<p>To compile this code, you need to link to:</p>
<ul>
<li>Microsoft.IdentityModel</li>
<li>System</li>
<li>System.Core</li>
<li>System.IdentityModel</li>
<li>System.ServiceModel</li>
</ul>
<p> </p>
<p>using System;<br />
using System.Security.Principal;<br />
using System.ServiceModel;<br />
using System.ServiceModel.Security;<br />
using Microsoft.IdentityModel.WindowsTokenService;</p>
<p>namespace C2WTSTest<br />
{<br />
    class Program<br />
    {<br />
        static void OutputUsage()<br />
        {<br />
            Console.WriteLine(&#8220;Usage:&#8221;);<br />
            Console.WriteLine(&#8220;/tc2wtstest.exe &lt;upn&gt;&#8221;);<br />
            Console.WriteLine(&#8220;/tExample: c2wtstest.exe dwickert@redmond&#8221;);<br />
        }</p>
<p>        static void Main(string[] args)<br />
        {<br />
            if ((args.Length != 1) || (string.Compare(args[0], &#8220;/?&#8221;) == 0) || (string.Compare(args[0], &#8220;-?&#8221;) == 0) || (string.Compare(args[0], &#8220;?&#8221;) == 0))<br />
            {<br />
                OutputUsage();<br />
                return;<br />
            }</p>
<p>            string upn = args[0];</p>
<p>            WindowsIdentity windowsIdentity = null;<br />
            if (!String.IsNullOrEmpty(upn))<br />
            {<br />
                try<br />
                {<br />
                    Console.WriteLine(&#8220;Attempting to acquire windows identity for upn: &#8216;{0}&#8217;&#8221;, upn);<br />
                    windowsIdentity = S4UClient.UpnLogon(upn);<br />
                }<br />
                catch (SecurityAccessDeniedException)<br />
                {<br />
                    Console.WriteLine(&#8220;Could not map the upn claim to a valid windows identity. Security Access Denied&#8221;);<br />
                    return;<br />
                }<br />
                catch (EndpointNotFoundException)<br />
                {<br />
                    Console.WriteLine(&#8220;Could not map the upn claim to a valid windows identity because the c2wts service was unavailable&#8221;);<br />
                    return;<br />
                }<br />
                catch (FaultException e)<br />
                {<br />
                    Console.WriteLine(&#8220;Could not map the upn claim to a valid windows identity because the c2wts service returned a fault&#8221;);<br />
                    Console.WriteLine(e.ToString());<br />
                    return;<br />
                }<br />
                catch (Exception e)<br />
                {<br />
                    Console.WriteLine(&#8220;Could not map the upn claim to a valid windows identity because of an unexpected exception&#8221;);<br />
                    Console.WriteLine(e.ToString());<br />
                    return;<br />
                }<br />
            }<br />
            else<br />
            {<br />
                throw new Exception(&#8220;No UPN claim found&#8221;);<br />
            }</p>
<p>            using (WindowsImpersonationContext ctxt = windowsIdentity.Impersonate())<br />
            {<br />
                Console.WriteLine(&#8220;Successfully acquired token and impersonated user: &#8216;{0}&#8217;&#8221;, WindowsIdentity.GetCurrent().Name);<br />
            }</p>
<p>        }<br />
    }<br />
}</p>
<p>HTH<br />
Lee</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2010%2F05%2F21%2Ftesting-the-claims-to-windows-token-service-for-different-identities%2F&amp;linkname=Testing%20the%20Claims%20To%20Windows%20Token%20Service%20for%20different%20identities"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2010/05/21/testing-the-claims-to-windows-token-service-for-different-identities/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The data connection uses Windows Authentication and user credentials could not be delegated</title>
		<link>http://powerpivotgeek.com/2010/02/08/the-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated/</link>
		<comments>http://powerpivotgeek.com/2010/02/08/the-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 00:30:15 +0000</pubDate>
		<dc:creator>powerpivotwahoo</dc:creator>
				<category><![CDATA[Midtier]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2010/02/08/the-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated/</guid>
		<description><![CDATA[<p>This is one of the two main errors that users could see from Excel Services when using PowerPivot. This is encountered when refreshing PowerPivot data connections or performing an action which requires re-querying the PowerPivot database, such as clicking on a slicer or expanding a node in a pivot table. To debug, some level of [...]]]></description>
			<content:encoded><![CDATA[<p>This is one of the two main errors that users could see from Excel Services when using PowerPivot. This is encountered when refreshing PowerPivot data connections or performing an action which requires re-querying the PowerPivot database, such as clicking on a slicer or expanding a node in a pivot table. To debug, some level of understanding of what Excel Services is doing is required. For this, I recommend reading an earlier post on this blog by Dave … <a title="http://powerpivotgeek.com/2009/12/11/excel-services-delegation/" href="http://powerpivotgeek.com/2009/12/11/excel-services-delegation/">http://powerpivotgeek.com/2009/12/11/excel-services-delegation/</a>. In general, this is an add-on to Dave’s post which is a quick summary of how to debug this error.</p>
<p> <span id="more-672"></span><a href="http://powerpivotgeek.com/wp-content/uploads/2010/02/UserCredentialsCouldNotBeDelegated.png"><img style="border-right-width: 0px;border-top-width: 0px;border-bottom-width: 0px;border-left-width: 0px" border="0" alt="UserCredentialsCouldNotBeDelegated" src="http://powerpivotgeek.com/wp-content/uploads/2010/02/UserCredentialsCouldNotBeDelegated_thumb.png" width="244" height="167" /></a>
</p>
<p>Here is a quick list of most likely causes for this error and how to debug and fix them (in order based on my experience of likelihood to be the root cause):</p>
<ul>
<li><span style="text-decoration: underline">Is the Claims to Windows Token Service started on the server running Excel Calculation Service (ECS)?</span> For detailed information on the Claims to Windows Token Service (c2wts), you can read the <a href="http://msdn.microsoft.com/en-us/library/ee517278.aspx" target="_blank">msdn</a> article. This service is turned on when doing a “New Farm” installation of PowerPivot, but if you do an “Existing Farm” installation, or have Excel Calculation Service (ECS) running on a different machine, the Claims to Windows Token Service might not be started. Check to make sure that this service is running on every server on which ECS is running. You can validate this via the “Services on Server” option in SharePoint’s Central Administration web site but it is also important to make sure that this is running from Service Control Manager (SCM accessed via services.msc). <em>There is a known issue after reboot where the c2wts fails to start because of an unexpressed startup dependency on the crypto service. I will add a link to the KB when it is available but until then you can add the dependency manually from SCM or from an administrative command prompt with “sc.exe config c2wts depend= cryptsvc”.This will prevent the problem from reappearing after your next reboot.</em> As per <a title="http://powerpivotgeek.com/2010/01/18/why-you-shouldnt-stop-start-analysis-services-from-scm-when-running-in-sharepoint-integration-mode/" href="http://powerpivotgeek.com/2010/01/18/why-you-shouldnt-stop-start-analysis-services-from-scm-when-running-in-sharepoint-integration-mode/">http://powerpivotgeek.com/2010/01/18/why-you-shouldnt-stop-start-analysis-services-from-scm-when-running-in-sharepoint-integration-mode/</a>, you should not manage SharePoint services from SCM, however SCM is the truth when it comes to whether a service is running and so you should always double check by looking at the state in SCM. If SharePoint indicates that the service is started but it is not actually running per SCM, it is safe to start it from SCM (alternatively you could stop and start it from SharePoint Central Administration). As well as simply managing this service, SharePoint configures the security permissions for this service automatically as part of their setup so that all SharePoint Shared Services (which includes ECS) can use it. If you find that the service is stopped on the machine running ECS, start it. After starting this service, you should not need to do any type of&#160; IisReset to see the system start working. </li>
<li><span style="text-decoration: underline">Is your machine connected to the network?</span> Dave has written a good blog on this also (<a title="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/" href="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/">http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/</a>). If you are actually trying to run a PowerPivot demo with a machine which is not on the network, follow the steps in Dave’s blog to configure ECS to use a set of stored credentials for the PowerPivot datasource. If you are not doing this on purpose, then connect back to the network. </li>
<li>The final cause would be that for some reason other than network connectivity, the Claims to Windows Token Service is not able to convert the SAML claims token to a Windows User security token. Dave provides a lot of details on these potential issues. Some quick questions to ask yourself:
<ul>
<li><span style="text-decoration: underline">Is the client user account (the logged in user who is browsing the workbook in IE) a domain account?</span> If the account is a local machine account, then the Claims to Windows Token service will not be able to retrieve a Windows user security token. We do not support this scenario in V1 of PowerPivot. Interactive users must be domain users. For demo purposes in a bind you might try the workaround Dave provided for taking the server off of the network, but I have not personally tested it in this case. </li>
<li><span style="text-decoration: underline">Is the client user account in a different domain than the SharePoint servers?</span> This is completely supported, but there must be a trust relationship established between the two domains. You could verify if a missing trust issue is causing your problems by logging in as a user account in the same domain as the SharePoint servers and try interacting with the workbooks (note that you had to have given that user access to the workbook). If it works for users in the same domain but not for users in other domains, it might be an issue with cross domain trust. Contact your domain admin to figure out what the relationships are setup as. </li>
<li><span style="text-decoration: underline">What account is the Claims to Windows Token Service running as?</span> By default it is configured to run as Local System, and I am not aware of the reasons for changing this configuration (the msdn article also refers to the fact that it should be running as Local System). While there might be a good reason for trying to change it, it is possible that the person who altered it did not understand the implications of this change. You should probably track down the person who changed it and get an understanding of why. If you have permissions, switch it back to Local System and try the scenario again. If it works, you will need to determine why it was changed in the first place. </li>
<li>If you have gotten this far and none of the above have solved your issue, then there is the possibility that you have some custom AD configuration which is causing the issue. Dave points out one possibility:<br />
<blockquote>
<p>The account being used as the Excel Services service account must have AD rights to be able to query the object. One place where we know this restriction comes into play is if you have configured your domain controller to have a subgroup under “Users”, e.g. “Service Accounts”, which is a separate AD group that derives from “Users” –&gt; but I am sure that there are more. AD rights for service accounts is a common problem across all of SharePoint.</p>
</blockquote>
<p>What Dave describes is one possibility where an AD configuration could cause this issue. As we discover more potential AD configurations that could cause this issue, we will try to update this list. If you are comfortable building your own test application and have gotten this far without figuring it out (and feel very confident that it is not #1), you can try running the test application we have posted <a href="http://powerpivotgeek.com/2010/05/21/testing-the-claims-to-windows-token-service-for-different-identities/" target="_blank">here</a> to manually test your ability to acquire a Windows Identity. </p>
</li>
</ul>
</li>
</ul>
<p>Hopefully this list will help you quickly debug and fix this issue on your system. HTH</p>
<p>Lee</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2010%2F02%2F08%2Fthe-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated%2F&amp;linkname=The%20data%20connection%20uses%20Windows%20Authentication%20and%20user%20credentials%20could%20not%20be%20delegated"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2010/02/08/the-data-connection-uses-windows-authentication-and-user-credentials-could-not-be-delegated/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Excel Services delegation</title>
		<link>http://powerpivotgeek.com/2009/12/11/excel-services-delegation/</link>
		<comments>http://powerpivotgeek.com/2009/12/11/excel-services-delegation/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:56:00 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[Excel Services]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/?p=440</guid>
		<description><![CDATA[<p>I am inspired by a recent post from a colleague about the various issues that can come up with Excel Services delegation (see a Denny Lee’s blog here: http://dennyglee.com/2009/11/18/troubleshooting-powerpivot-excel-services-connectivity/) and I wanted to take it a bit further (and maybe a bit ‘geekie’-er)</p>
<p>First, why is this a problem? After all, as you can see in [...]]]></description>
			<content:encoded><![CDATA[<p>I am inspired by a recent post from a colleague about the various issues that can come up with Excel Services delegation (see a Denny Lee’s blog here: <a title="http://dennyglee.com/2009/11/18/troubleshooting-powerpivot-excel-services-connectivity/" href="http://dennyglee.com/2009/11/18/troubleshooting-powerpivot-excel-services-connectivity/">http://dennyglee.com/2009/11/18/troubleshooting-powerpivot-excel-services-connectivity/</a>) and I wanted to take it a bit further (and maybe a bit ‘geekie’-er)</p>
<p>First, why is this a problem? After all, as you can see in Denny’s post, you can see the workbook and you even have a thumbnail for it in the Gallery. What’s up here? The core of the problem is that unless you’ve set the connection to refresh when you first open the workbook, Excel Services uses its pivot cache to construct the pivot table and slicers. It is only if you manually refresh the connection, or click on a slicer, that you make an actual connection to the embedded data. Until then you are just looking at cached information. Until you click on a slicer, you don’t really know if Excel Services is working – so a <strong><span style="text-decoration: underline;">strong</span></strong> recommendation that I make to any person doing a validating their installation is to “ALWAYS CLICK ON A SLICER” if you want to make sure that your installation is working properly.</p>
<p>Ok, so now we’ve hit the problem. And you get the dredged “An error occurred during an attempt to establish a connection to the external data source.</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/12/image2.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://powerpivotgeek.com/wp-content/uploads/2009/12/image_thumb2.png" border="0" alt="image" width="244" height="168" /></a> </p>
<p> </p>
<p><span id="more-440"></span></p>
<p>The issue is (get your geek-armor ready) is that when accessing data PowerPivot looks like just another data source to both Excel desktop and Excel Services. Prior to accessing the data, if using Windows authentication, Excel Services needs to impersonate the user on the calling thread. But, in a claims-aware world, the only ‘identity’ that Excel Services has is the claims token. When the user connects (in whatever authentication method the SharePoint Web Application allows), the first thing that SharePoint does on the web front end is to translate the authentication method’s user identity to a claims token. And it is <span style="text-decoration: underline;">that</span> claims token that is passed around within the farm. Remember this dialog box within Excel desktop:</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/12/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://powerpivotgeek.com/wp-content/uploads/2009/12/image_thumb3.png" border="0" alt="image" width="244" height="231" /></a></p>
<p>The setting tells Excel Services what kind of lookup to perform when a new connection is started:</p>
<ul>
<li>‘None’ means to use the Unattended Execution Account specified for the Excel Services service application being used by this connection. The username and password are retrieved from Secure Store. Using these credentials, Excel Services does a Windows logon and then it calls the data provider (the msolap OLEDB provider in the case of PowerPivot).</li>
<li>‘SSS’ means that Excel Services should access its Secure Store service application. The username and password are retrieved from Secure Store using this Application ID. Using these credentials, Excel Services does a Windows logon and then it calls the data provider Using and Excel Services does a Windows logon and then calls the data provider.</li>
<li>‘Windows Authentication’ (which is both the default and our case today) means that Excel Services should use the interactive user’s Windows identity. The original Windows token for the user is looked up, Excel Services impersonates that user on the calling thread and then calls the data provider.</li>
</ul>
<p>In the case of Windows Authentication, to perform the lookup, Excel Services uses the “Geneva to Windows Token Service” (GTS) provided by SharePoint. GTS takes the claims token of the caller and translates it to the Windows identity of the caller (the underlying Windows API that is uses for this is S4U (see here: xx). Unfortunately S4U does have its restrictions, and those restrictions are the heart of the “Cannot Delegate” error message that we are seeing. GTS requires:</p>
<ol>
<li>A domain controller must be available to validate the logon. GTS cannot use cached credentials. It has to validate the login token on every connection. This obviously has performance implications, but fortunately it isn’t on very query; but just when the connection is established. This is easy to see (and it was the way that I generated the error message box above) –&gt; just unplug the network from your laptop. You see that you can use SharePoint and Excel Services for everything using cached credentials until you go to Excel Services and try to connect to any data source (PowerPivot included) using Windows authentication.</li>
<li>The server must be a member of the same domain as the caller; or there must be a two-way trust relationship between the domains. This means that a common Windows 2000 domain architecture cannot be used by GTS.</li>
<li>The caller cannot be a local machine account. GTS only understands how to talk to domain controllers.</li>
<li>The account being used as the Excel Services service account must have AD rights to be able to query the object. One place where we know this restriction comes into play is if you have configured your domain controller to have a subgroup under “Users”, e.g. “Service Accounts”, which is a separate AD group that derives from “Users” –&gt; but I am sure that there are more. AD rights for service accounts is a common problem across all of SharePoint.</li>
</ol>
<p>So – this is happening to you – you cannot delegate credentials. What are your options? First, you could fix the problem so the restriction no longer holds, e.g. you could establish a two-way trust between the domains rather than a one-way trust, but this is likely not a doable approach because you probably have business justifications for why the configuration was done this way. A second alternative is that you could switch to “None” as the authentication, this is how the “off-the-network” blog entry that I wrote, see <a title="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/" href="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/">http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/</a>. This is straightforward and easy to implement, but it lacks the strong security enforcement of Windows authentication and it is a more general account. So there will likely be business issues with that approach also.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F12%2F11%2Fexcel-services-delegation%2F&amp;linkname=Excel%20Services%20delegation"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/12/11/excel-services-delegation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Watch out, your domain might be showing . . .</title>
		<link>http://powerpivotgeek.com/2009/11/24/watch-out-your-domain-might-be-showing/</link>
		<comments>http://powerpivotgeek.com/2009/11/24/watch-out-your-domain-might-be-showing/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 18:27:17 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2009/11/24/watch-out-your-domain-might-be-showing/</guid>
		<description><![CDATA[<p>Several new SharePoint 2010 configuration issues will impacting some PowerPivot sites and I wanted to share them with you. These restrictions are with Excel Services and have to do with the way that Windows authentication is handled, i.e. you have set the Excel Services authentication set to &#8220;Windows&#8221;, not using Secure Store or &#8220;None&#8221;. This impacts PowerPivot [...]]]></description>
			<content:encoded><![CDATA[<p>Several new SharePoint 2010 configuration issues will impacting some PowerPivot sites and I wanted to share them with you. These restrictions are with Excel Services and have to do with the way that Windows authentication is handled, i.e. you have set the Excel Services authentication set to &#8220;Windows&#8221;, not using Secure Store or &#8220;None&#8221;. This impacts PowerPivot because Excel Services treats PowerPivot as a data source. The restrictions are not limited to just PowerPivot – they apply across the board for all Excel Services data sources.</p>
<p>First, Excel Services requires that a domain controller be available for data access when using Windows authentication for a connection (see my earlier posting, <a title="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/" href="http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/">http://powerpivotgeek.com/2009/11/06/taking-your-server-off-the-network/</a>). Interestingly it isn’t Excel Services specifically that has this requirement, rather it is the SharePoint infrastructure component called the <em>Geneva Token Service</em> (GTS) that Excel Services uses requires access to the domain controller for a S4U logon to impersonate the Windows user. S4U cannot use cached credentials.</p>
<p>The second restriction is also a consequence of GTS. GTS requires that all domains have two-way trust relationships in order to perform its logons. A common old-style domain configuration is to have a single dedicated “account” domain (where users live) – and then multiple “resource” domains (where your servers, printers and other resources live). Typically the resource domains trust the account domain; but the account domain does not trust the resource domains (a so-called &#8216;one-way trust&#8217;). Service accounts live in the resource domains and thus do not have account-level access. This is a good thing. Many of the Microsoft lab domains work this way. Unfortunately if you install SharePoint in such an environment, you will find that Excel Services returns an error: “The data connection uses Windows Authentication and Excel Services is unable to delegate user credentials.“ SharePoint requires a two-way trust between domains if your machine lives in one domain and your users live in another.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F11%2F24%2Fwatch-out-your-domain-might-be-showing%2F&amp;linkname=Watch%20out%2C%20your%20domain%20might%20be%20showing%20.%20.%20."><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/11/24/watch-out-your-domain-might-be-showing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Peek Inside: Why are domain accounts needed?</title>
		<link>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/</link>
		<comments>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 04:39:40 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[A Peek Inside]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[domain accounts]]></category>
		<category><![CDATA[NEW FARM]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/</guid>
		<description><![CDATA[<p> Have you ever had to do something that you knew (you just KNEW) that lots of folks were going to scream – and scream loud – about? This is one of those cases – I can just feel it!</p>
<p>Ok, here goes. There have been several recent newsgroups postings concerning why we require domain accounts [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/11/image14.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://powerpivotgeek.com/wp-content/uploads/2009/11/image_thumb15.png" width="46" height="46" /></a> Have you ever had to do something that you knew (you just KNEW) that lots of folks were going to scream – and scream <u>loud</u> – about? This is one of those cases – I can just feel it!</p>
<p>Ok, here goes. There have been several recent newsgroups postings concerning why we require domain accounts to install PowerPivot for SharePoint. Why must the farm account and the various service accounts be domain accounts. This causes lots of heartache for users that want to install demo or evaluation servers because we don’t support a standalone server. Well, we do support standalone, but it a different kind of standalone. Let’s get right into it.</p>
<p>First, let’s compare and contrast this requirement with SharePoint. SharePoint has two types of installations: standalone (which they do NOT support in production) and complete/farm. The standalone installation is for demo and evaluation purposes only. It has uses NETWORK SERVICE as the service account for many of its internal processes. It is right up front that it is NOT expandable into a production system; it has security issues acting across servers; etc. However, it gives you a nice “toy” to play with. Let’s be right up front about it – PowerPivot does not install nor does it support a SharePoint standalone server installation. And, oh while we are on the subject, SharePoint does not support local machine accounts within a farm configuration. In the SharePoint world, once you go to domains – you go all of the way with domains.</p>
<p>&#160;</p>
<p> <span id="more-206"></span>
<p>PowerPivot’s philosophy for the NEW FARM case is that it is a complete farm that just happens right now to be on a single machine. We take a production-view of the single server. We would expect that it would natural that at some time in the future that the SharePoint administrator would move the content and config databases off of this server and put them on their own dedicated SQL Server machine. After all, this is a best practice for SharePoint to have a dedicated (or consolidated) SQL resource off of the WFE and App Servers. And just as the RDBMS traffic is very likely to grow beyond a single combined “all-in-one” server; so would the app server requirements continue to grow and it is perfectly natural for a second, third or more app server to be added to the farm; likewise as the server becomes more main stream, there is a high-availability requirement that will become more important and multiple WFEs will be come important.</p>
<p>The bottom like is that proper capacity planning begins with your first installation. And thus we require domain accounts right from the very beginning.</p>
<p>Yes, this does impact those folks who are doing demos and evaluation. You have two options: (1) install a domain controller on your image and thus local accounts are domain account; or (2) install the server into a domain and possibly then disconnect from it (see an earlier posting from me on this topic). Approach #1 is what most users do. If you look at all of the “All-Up” VMs that Microsoft produces for other products, you will see that a self-contained domain within the VM is the way that most folks go. I personally use technique #2 because I do demos in a very constrained environment and having to modify the workbooks that I am demoing with is fine.</p>
<p>&lt; OK – Let the screaming begin <img src='http://powerpivotgeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  &gt;&#160;&#160; </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F11%2F18%2Fa-peek-inside-why-are-domain-accounts-needed%2F&amp;linkname=A%20Peek%20Inside%3A%20Why%20are%20domain%20accounts%20needed%3F"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
