<?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; topology Archive</title>
	<atom:link href="http://tristanwatkins.com/index.php/tag/topology/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>SharePoint 2010 (not) in a Workgroup</title>
		<link>http://tristanwatkins.com/index.php/sharepoint-2010-not-in-a-workgroup/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sharepoint-2010-not-in-a-workgroup</link>
		<comments>http://tristanwatkins.com/index.php/sharepoint-2010-not-in-a-workgroup/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 23:08:23 +0000</pubDate>
		<dc:creator>Tristan Watkins</dc:creator>
				<category><![CDATA[Consultancy and Design]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Virtualisation]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[AD LDS]]></category>
		<category><![CDATA[ADAM]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Domain Controller]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[psconfigui]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[topology]]></category>
		<category><![CDATA[User Profile]]></category>
		<category><![CDATA[Workgroup]]></category>

		<guid isPermaLink="false">http://tristanwatkins.com/?p=885</guid>
		<description><![CDATA[With SharePoint 2010 RTM looming, I&#8217;ve stumbled across an architectural change that may surprise some people &#8211; namely, that SharePoint 2010 no longer supports multiple-server farms without a domain infrastructure. In SharePoint 2007 it was possible to create SharePoint farms in a Workgroup, so long as all of the user accounts for the services and [...]]]></description>
			<content:encoded><![CDATA[<p>With SharePoint 2010 RTM looming, I&#8217;ve stumbled across an architectural change that may surprise some people &#8211; namely, that SharePoint 2010 no longer supports multiple-server farms without a domain infrastructure. In SharePoint 2007 it was possible to create SharePoint farms in a Workgroup, so long as all of the user accounts for the services and application pool identities were named the same and had the same password. You could even manage users with an Active Directory Lightweight Directory Services (AD LDS) or Active Directory Application Mode (ADAM) LDAP directory (albeit with some fairly limiting restrictions). However, it was possible to use these farms for testing or when an Active Directory infrastructure was undesirable (as some people see it in a DMZ). Now, it is still possible to do a Simple installation on a single server without full domain services, but it is no longer supported on multiple servers, and the Simple installation comes with its own planning considerations, to which I&#8217;ll return in a bit. First, there&#8217;s another wrinkle regarding the single server Complete installation.</p>
<p><span id="more-885"></span>When I initially created our SharePoint 2010 beta development environments, I built them in a Workgroup, for many of the reasons that I chose to do so in 2007 (see the <em>Workgroup Development </em>section in <a title="Building a SharePoint 2007/2010 development environment Part II Design" href="http://tristanwatkins.com/?p=499">Part II of my series on SharePoint development environments</a>). Now, the SharePoint 2010 Configuration  Wizard (psconfigui) throws an error when choosing the Complete install option in a Workgroup. I was able to get past this error by following the suggestions on the Microsoft <a title="Single Server Complete Install of SharePoint 2010 using local accounts" href="http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=112">From the Field blog</a>, but a few weeks down the road we&#8217;ve pinned down two issues (as confirmed by Neil, the author of that post).</p>
<ol>
<li>Search will crawl successfully in this configuration, but the query role will never initiate. Queries from web applications that consume this Service Application will produce an error, which you will be able to trace to an application event log 6398 error and the key event in ULS, &#8220;The SDDL string contains an invalid sid or a sid that cannot be  translated.&#8221; As Victor Magidson from Microsoft puts it on <a title="SharePoint 2010 Search Error ID 6398" href="http://social.technet.microsoft.com/Forums/en-US/sharepoint2010setup/thread/58902475-396e-42ef-b19d-b06bd4df1ad0">this Technet thread</a>, this error occurs when a, &#8220;topology activation job is trying to create a propagation file share.&#8221; In short, the query role never finishes initialising so it will never serve queries. This only occurs on the single server Complete installation and deleting/re-creating the Service Application yields the same result.</li>
<li>The User Profile service application will also be useless*, but it always would have been since you couldn&#8217;t import users from the local user database in 2007 either. However, this has wider implications in SharePoint 2010 because of the social computing features, which developers probably won&#8217;t be able to live without.</li>
</ol>
<p>All this means that I need to consider rebuilding our development environments in a domain or we need to use the Simple installation. In the past I always avoided the Simple installation because it uses system accounts like Network Service for application pool identities, so it took some re-acquaintance to identify some of its limitations. It has no configuration options (thus the use of local system accounts), the User Profile Service Application does not start (presumably per Forefront Identity Manager 2010 installation issues as seen in other topologies) and it uses SQL Server Express (which developers aren&#8217;t very fond of), so we’re unlikely to pursue this option. Accordingly, we’re reviewing the ways that we can re-create the development environment in a domain.</p>
<p>Why don&#8217;t I just make the development machine a domain controller? This isn&#8217;t clear-cut and there are benefits to the simplicity of it, but ultimately I think it&#8217;s a bad idea because:</p>
<ul>
<li>Domain Controller security is bad for  development. It means developers will be coding as Domain Admins and they will be doing so on a machine with Domain Controller security policies. This is just a mess.</li>
<li>SQL doesn’t like to run on a DC.</li>
<li>Running a DC, SQL and SharePoint on the same machine  creates a massive load of service start-up contention and sometimes the environment will start from an unstable point  because dependent services will not be ready when a depending service tries to  start.
<ul>
<li>This also increases start-up time considerably, which is a big concern when using Hyper-V on a laptop, where we don’t have  Sleep/Hibernate.</li>
</ul>
</li>
<li>Adding Visual Studio to this mix causes known performance  issues. The machine simply can’t keep up with doing all of this.</li>
</ul>
<p>Why won&#8217;t we use a central development domain? Because then we can&#8217;t clone the VMs. We don&#8217;t just clone standard builds, we also use the same VM for each developer/consultant/architect on a single project. We may opt for this approach eventually, but I think the investment in automation is pretty considerable for it to be efficient with our team development requirements.</p>
<p>So I&#8217;m probably going to separate the DC on to a different server for now.  I&#8217;m  unlikely to add a third server for SQL, as even though it might be  faster, I think the complexity of managing networking and snapshots  across three servers is undesirable for developers, if we can get by with  two.</p>
<p>All of this underlines the reasons why I didn&#8217;t publish any SharePoint 2010 build guidance yet. Some things don&#8217;t become clear until you get your hands dirty. I&#8217;ll revisit this topic as soon as I feel comfortable that we&#8217;re pinning things down, but for now we&#8217;re still adapting our methods.</p>
<p>*I&#8217;ll note that I haven&#8217;t properly tested Claims Based Authentication  against a single server complete installation, so it&#8217;s conceivable that  you could import non-A/D users in to this configuration, but you&#8217;d still  need to live without Search.</p>
]]></content:encoded>
			<wfw:commentRss>http://tristanwatkins.com/index.php/sharepoint-2010-not-in-a-workgroup/feed/</wfw:commentRss>
		<slash:comments>13</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>
	</channel>
</rss>

