<?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>Tristan Watkins on IT Infrastructure &#187; Authentication</title>
	<atom:link href="http://tristanwatkins.com/index.php/category/authentication/feed/" rel="self" type="application/rss+xml" />
	<link>http://tristanwatkins.com</link>
	<description>Technical guidance for SharePoint, Cloud Services, Windows and more</description>
	<lastBuildDate>Fri, 21 Oct 2011 23:33:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Active Directory Account Creation Mode in SharePoint 2010</title>
		<link>http://tristanwatkins.com/index.php/active-directory-account-creation-mode-sharepoint-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=active-directory-account-creation-mode-sharepoint-2010</link>
		<comments>http://tristanwatkins.com/index.php/active-directory-account-creation-mode-sharepoint-2010/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 23:38:24 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[SharePoint Foundation]]></category>
		<category><![CDATA[WSSv2]]></category>
		<category><![CDATA[WSSv3]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=1919</guid>
		<description><![CDATA[Earlier this week, I had the misfortune of generating an error I&#8217;d never seen before when building a new SharePoint Server 2010 farm. The error first emerged when the SharePoint installation process landed me at the Farm Configuration Wizard page. I wouldn&#8217;t have been running it (not advisable ever, really), but it&#8217;s the first page [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier this week, I had the misfortune of generating an error I&#8217;d never seen before when building a new SharePoint Server 2010 farm. The error first emerged when the SharePoint installation process landed me at the Farm Configuration Wizard page. I wouldn&#8217;t have been running it (not advisable ever, really), but it&#8217;s the first page that loads after the Product Configuration Wizard completes, so my first Central Administration page was this error:</p>
<p style="margin-left: 36pt;"><em>The page cannot be displayed because your server&#8217;s current configuration does not support it. To perform this task, use the command line operations in Stsadm.exe. </em></p>
<p>How odd, given the emphasis on PowerShell in SharePoint 2010! After a bit of head scratching and examining application and ULS logs, I navigated to the Central Admin home page and everything appeared to be fine, but then when I got around to creating a new Site Collection a bit later, I got the same error, even though I was able to create web/service applications. I had the same error when logged on as farm admin, farm admin + local admin rights, farm admin + SQL SysAdmin and farm admin + domain admin rights, so I was pretty sure it wasn&#8217;t a permission issue (and I should note my temporary fiddlery here is only really suitable for non-production environments). This error also occurred on some other Site Collection-specific pages.</p>
<p><span id="more-1919"></span>After searching for a solution I found a number of suggestions that this was related to insufficient rights for <em>Active Directory Account Creation Mode</em>. So I played around with SQL permissions/accounts a bit more and was eventually able to loosen things to the point where I could create a new site using PowerShell (still no luck using Central Administration). I also (strangely), had to specify an outbound e-mail server first!?!?! ULS Viewer unveiled that mystery, as well as an error attempting to create an account for my logged on user (which obviously already exists) in Active Directory. This error didn&#8217;t prevent me from creating the site, but this behaviour confirmed that the site was definitely running in Active Directory Account Creation Mode.</p>
<h3>What is Active Directory Account Creation Mode?</h3>
<p>Unfortunately, current Microsoft documentation is non-existent as far as I can tell, so I&#8217;ll start with the <a href="http://technet.microsoft.com/en-us/library/cc288437%28office.12%29.aspx">TechNet description from WSS2</a>:</p>
<blockquote><p>A new feature of Microsoft Windows SharePoint Services is account creation mode for Active Directory directory service. This feature replaces the local account creation feature in SharePoint Team Services 1.0 from Microsoft. Use Active Directory account creation mode when it is necessary to create new user accounts rather than using existing domain accounts. For example, an Internet service provider (ISP) might need the ability to allow SharePoint site owners the capability to create user accounts or invite users to collaborate on a Web site where existing domain accounts for those users do not already exist.</p></blockquote>
<p>Basically it&#8217;s a hosting mode in which SharePoint creates <strong>new</strong> users in Active Directory and <strong>these are the only accounts that can be used in this mode</strong>. I can attribute my lack of experience with this mode to my lack of experience with the free versions of SharePoint. Nearly all of my work has been focused on SPS2003, MOSS 2007 and SPS2010. I can&#8217;t pin down for certain whether this mode ever existed in the full versions of the product, but <a href="http://dishasharepointworld.blogspot.com/2011/04/active-directory-account-creation-mode.html">according to this article it is now SharePoint Foundation-only</a> and greyed out for SharePoint Server 2010. This <a href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/b8987e56-200e-4cee-9b69-2ae8b492a93b">TechNet forum post</a> from published SharePoint author and MCC <a href="http://mycentraladmin.wordpress.com/">John Ferringer</a> seems to back up that assertion. This post describes the mode well and also appears to answer my next question (my italics, John&#8217;s bold):</p>
<blockquote><p>SharePoint Foundation 2010 (the &#8220;free&#8221; version of SharePoint that is the successor to Windows SharePoint Services, or WSS) does have something called &#8220;Active Directory Account Creation&#8221; mode available, which functions much like what you saw in WSS v2. Accounts are first created in SharePoint, and then added to an Organizational Unit in Active Directory. The problem is that <em>this mode is only available at the time you install SharePoint, (its an option off the Advanced Settings button) and you <strong>can&#8217;t </strong>change that configuration setting after the fact</em>. Additionally, you can&#8217;t use existing AD accounts in that SharePoint farm, you&#8217;ll only be able to use accounts that you create through the tool and you can&#8217;t give an account an email address that&#8217;s already used by another account in AD. So you need to be mindful of those limitations if you chose to use that mode.</p></blockquote>
<p>I wish I&#8217;d seen this post sooner. It would have saved me some time. For what it&#8217;s worth, my investigation backs up this description as follows:</p>
<ul>
<li>There is no facility to disable this mode through Central Administration.</li>
<li>The STSADM commands only support identifying whether <a href="http://support.microsoft.com/kb/823507">WSS is in Active Directory Account Creation Mode</a> using <em>stsadm.exe -o getproperty -pn createadaccounts</em>. There is no corresponding <em>setproperty</em> command.</li>
<li>The PSCONFIG commands only support creating the farm in this mode – there does not appear to be a means of reverting from it. I believe the configdb&#8217;s <em>addomain</em> and <em>adorgunit</em> parameters are responsible for enabling this mode (I could be wrong – the documentation is a bit scant), but I can&#8217;t find a facility for reverting it.</li>
<li>PowerShell is now the preferred means of creating the farm and would be the preferred means of enabling this mode using the <a href="http://technet.microsoft.com/en-us/library/ff607838.aspx">New-SPConfigurationDatabase</a> command. As far as I can tell the <em>DirectoryDomain</em> and <em>DirectoryOrganizationUnit</em> parameters are responsible for enabling this mode now, although again, the documentation is unclear to me.</li>
<li>I even tried to make the change through the API with the help of a friendly neighbourhood developer. Things have changed a bit from <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spglobaladmin.accountcreationmodeenabled.aspx">WSS2</a> to <a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebservice.createactivedirectoryaccounts.aspx">WSS3/SharePoint Foundation</a>. At any rate, we found the attribute and set it to &#8220;false&#8221;, but unfortunately this did not rescue my nascent farm.</li>
</ul>
<p>In short, it looks like there&#8217;s no way back.</p>
<h3>How Could This Have Happened?</h3>
<p>Given that this mode is only supposed to be present in SharePoint Foundation, I&#8217;m really at a loss to explain how I activated it on SharePoint Server 2010. I may have fat-fingered one of the New-SPConfigurationDatabase <em>DirectoryDomain</em> or <em>DirectoryOrganizationUnit</em> parameters I suppose, but I would be really surprised if I did that in a way that allowed me to successfully run the command. In the end, I reverted to my pre-installation snapshots and rebuilt my farm. I don&#8217;t feel that was such a waste now that I&#8217;ve found John Ferringer&#8217;s description and realise there never would have been a way back, but if you find this post through similar folly, hopefully you won&#8217;t waste any time trying to revert the farm like I did.</p>
<p>Interestingly, while researching this topic, I stumbled across <a href="http://social.technet.microsoft.com/Forums/en/sharepoint2010setup/thread/9ac04d39-56e6-43cf-8b91-55d143d2067a">a TechNet forum post from Andrew Milsark of FPWeb</a> stating that they&#8217;ve, &#8220;moved away from using AD Account creation mode all together&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/active-directory-account-creation-mode-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SharePoint Server 2007 cross-domain farm topologies</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-server-2007-cross-domain-farm-topologies/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-server-2007-cross-domain-farm-topologies</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-server-2007-cross-domain-farm-topologies/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 20:11:39 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Consultancy and Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[extranet]]></category>
		<category><![CDATA[people picker]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[STSADM]]></category>
		<category><![CDATA[topology]]></category>
		<category><![CDATA[trusts]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=842</guid>
		<description><![CDATA[I’ve recently been involved in MOSS 2007 farm topology discussions with a client that was interested in using the Split back-to-back topology. After a lengthy troubleshooting and escalation process we’ve identified some problems with this TechNet extranet farm topology guidance in conjunction with Microsoft Tier 2 support. In short, the TechNet document identifies some supported [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve recently been involved in MOSS 2007 farm topology discussions with a client that was interested in using the <a title="Design extranet farm topology (Office SharePoint Server)" href="http://technet.microsoft.com/en-us/library/cc263513.aspx#section7" target="_blank">Split back-to-back topology</a>. After a lengthy troubleshooting and escalation process we’ve identified some problems with this TechNet extranet farm topology guidance in conjunction with Microsoft Tier 2 support. In short, the TechNet document identifies some supported topologies that span domains, but this incident has raised questions about:</p>
<ul>
<li>The acceptable placement of server roles in those topologies.</li>
<li>Supported domain trust directions.</li>
<li>Alternate Access Mappings requirements.</li>
<li>Picking people from other domains.</li>
</ul>
<p>This is an account of the relevant issues and the steps that we took to reach our conclusions. <span id="more-842"></span></p>
<h2>The proposed topology</h2>
<p>In this scenario we had two web front ends and an index server inside the corporate network and two additional web front end servers in the DMZ. The DMZ servers were members of an external domain and an ISA firewall separated the networks. The DMZ web front end servers would respond to external requests while the two internal servers would respond to internal requests. The DMZ servers were configured with the same service and application pool configuration as the servers on the internal domain. The SharePoint web applications ran under internal domain accounts.</p>
<p>Before diving in, you might wonder why someone would want to use this topology. The primary benefits are that some physical farm resources are consolidated and that the external users cannot authenticate against the internal domain; there is a 1-way domain trust, where the external domain trusts the internal domain. Internal users would hit load balanced internal domain web front end servers when they are logged on to the internal network for improved performance (removing ISA as a bottleneck).</p>
<p>This topology was proposed based on the planning guidance linked above. While the topology diagrams only detail web front end servers in the DMZ, this paragraph suggests that additional web front end servers can reside in the internal domain:</p>
<blockquote><p>You can place one or more Web servers inside the corporate network to serve internal requests. This results in splitting the Web servers between the perimeter network and the corporate network. If you do this, ensure that traffic from the Internet is load-balanced to the Web servers in the perimeter network and that traffic from inside the corporate network is independently load-balanced to the Web servers inside the corporate network. You must also set up different alternate access mapping zones and firewall publishing rules for each network segment.</p></blockquote>
<p>This guidance is not very clear when it comes to the alternate access mapping zones requirement. In conversations with Microsoft technical support I was unable to get clarification on that guidance, although the problem that we encountered may hint at its meaning.</p>
<h2>Picking people across domains</h2>
<p>This deployment was escalated to me when we encountered some unexplained people picker behaviour. When we would browse to a web application on the web front end servers in the DMZ we were successfully able to search for users in both domains. When we would browse to a web application on the internal network’s web front end servers we were only able to pick people from the internal domain. Searching for known users in the external domain (where there were no internal matches) we would get a, “<em>No exact match was found</em>” or “<em>No results were found to match your search item. Please enter a new term or less specific term.</em>” In short, the internal domain servers couldn’t pick from the external domain on any web application.</p>
<p>Our troubleshooting with Microsoft started with a methodical review of the stsadm peoplepicker configuration, ports, permissions, etc. To abbreviate a very long second chapter of this story, the problem persisted throughout a number of different reconfigurations at the domain and forest level, with and without explicitly declared credentials for the external domain. We settled on a 1-way domain trust and configured the people picker with explicit credentials for the external domain.</p>
<p>As a brief aside, I should note that the Full Metal Architect blog is <a title="SharePoint People-Picker and Active Directory Part 2" href="http://www.marc-antho-etc.net/blog/post/2009/07/24/SharePoint-People-Picker-and-Active-Directory-Part-2.aspx" target="_blank">an excellent resource on this topic</a>. Per the guidance in those articles and <a title="people picker &amp; user accounts resolution in domainS FROM different forestS" href="http://blogs.msdn.com/sudeepg/archive/2009/10/06/people-picker-user-accounts-resolution-in-domains-from-different-forests.aspx" target="_blank">this Microsoft support blog</a>, I started to troubleshoot with <a title="PSGetSID" href="http://technet.microsoft.com/en-us/sysinternals/bb897417.aspx" target="_blank">PSGetSID</a>, at which point I got the first indication that this may not be a SharePoint issue per se. We noticed the same behaviour with PSGetSID as in SharePoint. We were unable to resolve the SIDs of external users from the internal domain servers. We also noticed that both SharePoint and PSGetSID started to work as soon as we briefly switched to a two-way domain trust (as a test).</p>
<p>However, I couldn’t reconcile these results with my network monitor captures, in which SharePoint was successfully retrieving precisely the same information in its LDAP query of the external domain from any server. On every server in the farm I could see that the people picker was successfully returning five of six partial attributes for the user that I hoped to pick. It could find cn, distinguishedName, displayName, userAccountControl and sAMAccountName. The objectSid was the one value that was blank, but we saw this same result on both internal domain servers and in the DMZ.</p>
<blockquote><p><span style="color: #000000; font-size: x-small;"><span style="mso-ansi-language: en-us;" lang="EN-US">PartialAttribute: objectSid=( )</span></span></p></blockquote>
<p>So we knew that:</p>
<ul>
<li>SharePoint was issuing successful LDAP queries of both domains from any server in the farm, but the results of the query from the untrusted domain never made it in to the people picker’s results on the internal domain’s servers.</li>
<li> People picking worked on all servers as soon as we changed to a two-way trust.</li>
</ul>
<p>At this point I was speaking with a technical lead on the 1st-line support team who suggested that this topology was unsupported. He supported this claim with two TechNet posts from <a title="Running SharePoint Server 2007 in a multi domain environment?" href="http://social.technet.microsoft.com/forums/en-US/sharepointadmin/thread/971f40a4-4162-4109-98ec-0f3bc7981ea7/" target="_blank">Joel Oleson</a> (in which he explicitly says all servers need to be in one domain) and <a title="Question on MOSS in DMZ - Need Help" href="http://social.technet.microsoft.com/forums/en-US/sharepointadmin/thread/6a16ea2f-70d5-4df5-ab2e-55453936054f" target="_blank">Neil Hodgkinson</a> (in which he also says “you cannot split a farm across multiple AD domains”). Typically I would take their guidance at face value but since this was directly contradicting the Microsoft guidance at the top of this article and since their posts were so old, I persisted for a more official response from Microsoft. The next morning I was told that those posts were wrong and that a farm can have servers in multiple domains.</p>
<p>Microsoft pushed the issue to a Tier 2 support technician, who quickly escalated to his escalation point. Finally getting somewhere… He quickly explained that we absolutely won’t be able to pick external users from the web applications on internal domain servers for the same reason that you can’t assign permissions to users from an untrusted domain. Although internal domain users can authenticate to the external domain resources they cannot grant users from the untrusted domain access to the internal domain’s resources. In the same way (since SharePoint uses SIDs to track all user activity), if a SharePoint web application is looking for a user in an untrusted domain, it won’t be able to get the SID in order to assign tasks or do anything else with a user, <strong>even though the initial LDAP query succeeds</strong> and <strong>even if the task has nothing to do with securing a resource</strong>. This was my fundamental stumbling block. Since we weren’t granting access to anything I couldn’t see why a trust would be required, but since SharePoint uses SIDs to track all user activity it makes sense.</p>
<h2>Topology implications</h2>
<p>So… our options were to put a two-way trust in place or to create an alternate access mapping zone that would point exclusively at the DMZ servers (although the support contact agreed that using a different zone for picking would result in pretty poor usability). In the end, we wound up simplifying the topology and used ISA publishing, since the two-way trust entailed similar security implications to the inversion of the 1-way trust for an ISA reverse proxy. I also asked if enabling Selective Authentication might help to lock down the trust of the external domain but the Microsoft support team were unable to get the people picker to work with Selective Authentication enabled. I believe that every user that might be picked would need to be enabled for Selective Authentication in this scenario, which would completely defeat the purpose of selectively authenticating.</p>
<p>Since then, in further discussions with Tier 2 support, we’ve been told that servers in different domains are not supported unless all web front end servers are in the external domain. They added that you can only have a web front end on the internal domain if it is an index server, e.g., not serving requests to users. I must emphasise that this was the response to a support case and not official Microsoft guidance, although I have commitments from Microsoft support that the TechNet documentation will be updated in the near future. We’ll need to wait to see how updates to that guidance pan out when they are released (this might take some time, as it involves multiple teams). For now, I would proceed with extreme caution if considering any topologies with servers in multiple domains.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-server-2007-cross-domain-farm-topologies/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows Time, the PDC Emulator and the VM</title>
		<link>http://tristanwatkins.com/index.php/windows-time-the-pdc-emulator-and-the-vm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-time-the-pdc-emulator-and-the-vm</link>
		<comments>http://tristanwatkins.com/index.php/windows-time-the-pdc-emulator-and-the-vm/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 14:21:49 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Authentication]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Kerberos]]></category>
		<category><![CDATA[PDC Emulator]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Virtual Machine]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=27</guid>
		<description><![CDATA[Or&#8230; why it&#8217;s important to disable Host Time Synchronisation on a domain controller. A few months ago I reminded myself of a major gotcha when planning a virtual infrastructure. Assume that you run more than one domain in more than one forest and that trusts are in place to authenticate users across those forests. This [...]]]></description>
			<content:encoded><![CDATA[<p>Or&#8230; why it&#8217;s important to <a title="Why reading best practice guidance is a good idea" href="http://technet.microsoft.com/en-us/library/cc708332.aspx" target="_blank">disable Host Time Synchronisation on a domain controller</a>.</p>
<p>A few months ago I reminded myself of a major gotcha when planning a virtual infrastructure. Assume that you run more than one domain in more than one forest and that trusts are in place to authenticate users across those forests. This could be a development/test/staging environment, or as will no doubt be more common in the coming years, it could be a virtualised infrastructure.<span id="more-27"></span></p>
<p>Assume that Kerberos needs to operate across these domains for any number of purposes, from application authentication to Active Directory migration. If you want Kerberos to work, you&#8217;re going to need to synchronise time across these domains, as the clock synchronisation is used to time stamp tickets in order to prevent replay attacks. Time synchronisation is of course built in to the Windows domain infrastructure, and should support this nicely. <a title="Technet Windows Time configuration article" href="http://support.microsoft.com/kb/816042/" target="_self">Configuring the Windows Time service on a PDC emulator</a> is a bit fiddly, but should be achievable for anyone who runs a multiple domain infrastructure. But what if it goes wrong?</p>
<p>I spent a few hours bashing my head against this utterly confounding problem until the obvious whacked me in the face. The problem:</p>
<ul>
<li>I would run w32tm /resync /rediscover and all would synchronise successfully, then about five seconds later the clock would revert to its former time, about 2 minutes and 45 seconds ahead of the recently received absolute value</li>
<li>There were no error logs, just successful resynchronisation messages and then nothing to indicate why the clock reverted</li>
<li>I set the registry keys to enable debug logging and this revealed nothing more than that the time of the events was shifting as you would expect</li>
</ul>
<p>Then it hit me. The PDC emulator was a virtual machine and the host virtual server was in another domain/forest. That host server was failing time synchronisation with its DC, so I manually reset the host clock and voila! The PDC emulator was synchronised within seconds. Obviously there&#8217;s another task to find out why the host was failing synchronisation with its time server, but that&#8217;s totally beside the point.</p>
<p>The lesson: Obey the best practice guidance and turn off Host Time Synchronisation for virtual domain controllers. In Virtual Server 2005 R2 the setting is in the Virtual Machine Addition Properties.</p>
<p>And a follow-up note: once Host Time Synchronisation is disabled you will need to find a new source of reliable clock for the the VMs, as they don&#8217;t have a CMOS clock to rely on. You could use something as simple and free as <a title="World Time Server" href="http://www.worldtimeserver.com/atomic-clock/" target="_blank">Atomic Clock Sync</a>. If you fail to do this the VMs will lose time when they are shut down.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/windows-time-the-pdc-emulator-and-the-vm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

