Hi Folks,
dies ist der zweite Teil der Blog-Artikel Serie zum Thema „Zwei SharePoint Sites unter einer gemeinsamen URL ansprechen“. In diesem Abschnitt werden nun die benötigten SharePoint- sowie Forefront TMG-Konfigurationsoptionen aufgezeigt, die benötigt werden, um einen Mischbetrieb eines SharePoint 2007 sowie 2010 unter einer gemeinsamen URL zu ermöglichen.
Die hier dargestellten Konfigurationsoptionen beziehen sich auf ein Szenario, in dem eine bestehende SharePoint 2007 Website um eine SharePoint 2010 Site-Collection (als Subsite) ergänzt werden soll. Die in diesem Blog-Artikel beschriebene Vorgehensweise kann jedoch auch als Grundlage (Herangehensweise, schaffen von virtuellen externen Pfaden) für einen beliebigen Mischbetrieb zweier SharePoint 2007 oder 2010 Websites verwendet werden.
Ach ja, für diejenigen Leser, die durch eine Suchmaschine direkt im zweiten Blog-Artikel gelandet sind und somit den ersten Teil verpasst haben: hier nochmal der Link zum ersten Teil, in dem die Hintergründe sowie Problemstellungen zur Thematik erklärt werden.
Teil 1: Hintergründe, Problemstellungen und Lösungsansätze zur Thematik
Teil 2: How-To: SharePoint 2007/2010 und TMG Konfigurationsoptionen
SharePoint AAM und DNS-Konfiguration
Um die beiden SharePoint Server über eine gemeinsame URL ansprechen zu können, müssen zunächst einmal die Anfragen zum bestehenden SharePoint Server auf den TMG umgelenkt werden. Hierzu müssen auf den SharePoint Servern entsprechende AAMs und in den DNS-Diensten die in der folgenden Abbildung dargestellten Einstellungen ausgewählt werden.
Abbildung: DNS, SharePoint AAM sowie SSL CNAME-Konfiguration
Durch die in der Abbildung dargestellte DNS und AAM-Konfiguration ist es möglich, beim Aufruf der URL https://portal.domain.de/* zum TMG Server geleitet zu werden. Dieser kann dann im Folgenden anhand der eingegebenen URL entscheiden, ob die Anfragen an den SharePoint 2010 (via FQDN portal2010.domain.de) oder SharePoint 2007 (via FQDN portal2007.domain.de) weitergeleitet werden. Ein entscheidender Punkt hierbei ist, dass der TMG entgegen der eindeutigen Namensauflösung beide SharePoint Server über den gemeinsamen AAM „portal.domain.de“ anspricht, in dem er innerhalb des http-Protokolls den originalen Hostheader des Clients weitergibt.
Für die SSL-Zugriffe zwischen den beteiligten Systemen und auch für die Client-Zugriffe verwende ich in dem Szenario jeweils ein und dasselbe SSL-Zertifikat. Als Ausgangspunkt sollte hierbei das Zertifikat verwendet werden, das bereits für die SharePoint 2007-basierte Website verwendet wird. In meinem Fall ist es ein Zertifikat mit dem Common Name CN=portal.domain.de. Die Verwendung von unterschiedlichen Namen innerhalb der Zertifikate ist ebenfalls möglich. Es sollte hierbei nur bedacht werden, dass der Client vom TMG Server ein passendes Zertifikat bekommt (übereinstimmend mit den DNS-Namen der Site) und dass der TMG von den jeweiligen SharePoint Servern ebenfalls ein passendes Zertifikat erhält (frei konfigurierbare Option innerhalb der jeweiligen TMG/ISA Regel).
Anmerkung: Die DNS-Umstellung und etwaigen AAM-Anpassungen können nach entsprechenden Tests der SharePoint 2007-Veröffentlichung durch den Forefront TMG im laufenden Betrieb erfolgen. Anzumerken ist auch, dass sich der Artikel im weiteren Verlauf ausschließlich auf den Zugriff über das BASIC Authentifizierung-Protokoll bezieht und hierbei ausschließlich auf die URL-Rewrite/Redirect-Thematik eingeht. Sollten Sie als Authentifizierungsprotokoll das NTLM- oder gar Kerberos-Protokoll für den Zugriff auf Ihren SharePoint Server verwenden wollen, sind zusätzliche Anpassungen innerhalb der Authentifizierungs-Methoden durchzuführen, die je nach SharePoint-Konfiguration wiederum abweichend sein können.
TMG-Konfiguration
Im TMG werden für das Szenario ein Web-Listener, eine Web-Veröffentlichungsregel für die bestehende SharePoint 2007 Website sowie zwei unterschiedliche Web-Veröffentlichungsregeln für die einzublendende SharePoint 2010 Website benötigt.
Abbildung: Benötigtes TMG-Regelwerk
Die drei Regeln werden beim Forefront TMG, genauso wie beim Vorgänger, von oben nach unten angewendet und haben in diesem Szenario die folgende Aufgaben:
Regel 1: Alles unterhalb von https://portal.domain.de/projects/site1/* zum SharePoint 2010 weiterleiten und hierbei /*.axd und /_layouts/*-Aufrufe im HTML Code mit der Link-Translation Server spezifisch codieren.
Regel 2: Alle serverspezifisch codierten /*.axd und /_layout/*-Aufrufe mit der Path-Redirection entsprechend decodieren und zum SharePoint 2010 weiterleiten. Hierbei werden ebenfalls weiterführende /*.axd und /_layouts/*-Aufrufe mit der Link-Translation codiert.
Regel 3: Alles unterhalb von https://portal.domain.de/*, was nicht bereits von Regel 1 und Regel 2 abgearbeitet wird, an den SharePoint Server 2007 weiterleiten.
Regel 1: SharePoint 2010 Veröffentlichung – /projects/site1/*-Verzeichnis
Die erste Web-Veröffentlichungsregel, die für das SharePoint-Szenario benötigt wird, veröffentlich die einzelne SharePoint 2010 Site Collection, die in die bestehende SharePoint 2007 Website eingeblendet werden soll. Im Folgenden werden die benötigten Konfigurationsoptionen aufgezeigt.
Anmerkung: Unbedingt drauf achten, dass die für die Publizierung der SharePoint 2010 Website benötigten Regeln nicht mit dem TMG-Assistenten für SharePoint Websites erstellt wurden. Der Assistent deaktiviert die für das Szenario benötigten Link-Translation-Funktionalitäten, so dass im Folgenden die Veröffentlichungen nicht ordnungsgemäß funktionieren würden. Anstelle dessen sollte der Assistent für herkömmliche SSL-Websites verwendet werden. Im Folgenden werden die einzelnen Konfigurationsoptionen dargestellt, die für das Szenario benötigt werden.
TMG-Konfiguration: Konfiguration des Web-Listeners
Im TMG wurde ein HTTPS-Listener angelegt, der den HTTPS-Endpunkt des Clients darstellt. In unserem Beispiel haben wir den HTTPS-Listener mit einem *.domain.de-Wildcard-Zertifikat versehen und die Anmeldemethode auf BASIC gesetzt. BASIC bietet eine einfache Methode, ein Single-Sign-On zwischen den Websites zu etablieren. In diesem Fall melden sich die Benutzer einmal am TMG an und dieser kann dann die übermittelten Anmeldedaten an die jeweiligen SharePoint Server weiterleiten.
Abbildung: TMG „Listener“-Konfiguration
TMG-Konfiguration: Konfiguration der URL und Path-Einstellungen
Der TMG wertet bei den einzelnen http-Anfragen den aufgerufenen HTTP-HOSTHEADER aus. Aus diesem Grund wurde in den Regelwerken jeweils der FQDN der Website auf portal.domain.de festgelegt.
Abbildung: TMG „Public Name“-Konfiguration
Die erste Regel veröffentlicht ausschließlich die gesamte Site-Collection /projects/site1/* und leitet den Pfad ohne Änderungen weiter. Es ist an dieser Stelle wichtig, dass an der URL-Struktur der Site Collection selbst keine Path-Redirects vorgenommen werden, da in diesem Fall elementare Funktionen der SharePoint Website nicht mehr funktionieren würden.
Abbildung: TMG „Paths“-Konfiguration
TMG-Konfiguration: Konfiguration des Zielservers
Auf dem „To“-Reiter wird unter „This portal rule applies to this published site:“ der FQDN portal.domain.de angegeben, um mit dem SSL-Zertifikat des SharePoint 2010 Servers übereinzustimmen. Und unter „Computer name or IP address” wird der FQDN portal2010.domain.de angegeben, um via DNS die Anfragen zum SharePoint 2010 Server zu leiten. Als weitere Option wurde das Häkchen unter „Forward the original host header instead of the acctual one” gesetzt.
Abbildung: TMG „To“-Konfiguration
TMG-Konfiguration: Konfiguration der Link Translation
Innerhalb der Site-Collection /projects/site1/* muss die Link-Translation aktiviert und konfiguriert werden, da diese ASPX-Dateien bzw. HTML Code enthält, in dem /*.axd und /_layouts/*-Ressourcen referenziert werden. Durch die Aktivierung und Konfiguration ist es möglich, die Pfad-Angaben zu diesen Ressourcen entsprechend zu codieren.
Abbildung: TMG „Link Translation“-Konfiguration
Die für das Publishing-Szenario benötigten Link-Translation-Regeln werden unten in der Grafik dargestellt. Wichtig ist hierbei, dass das Hochkomma (“) am Anfang der jeweiligen Werte unbedingt beachtet wird, da andernfalls die Link-Translation ebenfalls URLs codieren würde, die als Ziel eine Ressource innerhalb der Site-Collection hat. Bei Missachtung dieses Hochkommas würde zum Beispiel die legitime Pfadangabe /projects/site1/_layouts/* fälschlicherweise nach /projects/site1/www01root/_layouts/* ebenfalls übersetzt werden.
Abbildung: TMG „Locally Defined Mappings“-Konfiguration
Um die Link-Translation auf alle Elemente der SharePoint Website anwenden zu können, müssen im TMG noch Anpassungen an den Globalen Link-Translation-Einstellungen vorgenommen werden.
Abbildung: Angabe weiterer vom SharePoint Server verwendeten MIME-Types
In den Globalen-Link Translation-Einstellungen müssen die Inhaltstypen application/json und application/x-javascript angegeben werden, da für unser Szenario ebenfalls Links innerhalb dieser Inhalte ersetzt werden sollen.
TMG: SharePoint 2010-Veröffentlichung – /*.axd und /_layouts/*-Verzeichnisse
Die zweite Web-Veröffentlichungsregel, die für das SharePoint-Szenario benötigt wird, veröffentlich die codierten /*.axd- und /_layouts/*-Ressourcen des SharePoint 2010 Root Webs und stellt somit das Gegenstück zur Link-TranslationRegel der ersten Regel dar. Im Folgenden werden die benötigten Konfigurationsoptionen aufgezeigt.
Anmerkung: Auch bei dieser Regel sollte unbedingt drauf geachtet werden, dass die verwendeten Regeln nicht mit dem TMG-Assistenten für SharePoint Websites erstellt wurden. Als Hilfestellung können Sie die bereits erstellte erste Regel an dieser Stelle kopieren und als Grundlage für die Konfiguration der zweiten Regel verwenden.
TMG-Konfiguration: Web-Listener-Einstellungen
Für die zweite Regel wird der gleiche Web-Listener verwendet, der auch bei der ersten Regel zum Einsatz gekommen ist. Eine Rekonfiguration ist hierbei nicht notwendig, da alle drei Regeln eine identische Web-Listener-Konfiguration verwenden.
Abbildung: TMG „Listener“-Konfiguration
TMG-Konfiguration: Konfiguration der URL und Path-Einstellungen
Die zweite Regel reagiert ebenfalls ausschließlich auf den FQDN portal.domain.de.
Abbildung: TMG „Public Name“-Konfiguration
Auf dem Path-Reiter müssen die entsprechenden Gegenstücke zur Link-Translation konfiguriert werden. Die folgende Abbildung zeigt die benötigten internen sowie externen Pfade der Path-Regeln. Auch an dieser Stelle es ist wichtig, die genaue Schreibweise einzuhalten und hierbei insbesondere auf die Wildcard Characters (*) zu achten.
Abbildung: TMG „Paths“-Konfiguration
Wenn Sie versucht haben, die Schreibweise der oben dargestellten Abbildungen einzuhalten, erscheint eine Fehlermeldung, die in etwa besagt, dass eine Path-Regel, die sich im external Path auf ein einzelnes File (e.g. /ww01root/WebResource.axd) bezieht, nicht auf ein internes File (e.g. /WebResource.axd) gemappt werden kann und hierbei Wildcards (*) am Ende des Internal Path vergeben werden dürfen. Nun ja, es scheint hier eine gewisse Engstirnigkeit in der UI des TMG (als auch ISA Server 2004/6) vorzuliegen, was die Verwendung von Wildcards angeht.
´
Abbildung: Fehlermeldung durch zu restriktive UI Sanity Checks.
Fest steht jedenfalls, dass diese Wildcard unbedingt benötigt wird, um auch den Query-String, der am Ende der /WebResource.axd-Anfrage übergeben wird (e.g. / WebResource.axd?d=n0XTXF8j0sf...TXF8j0sf), zum SharePoint Server durchzureichen, und dass die TMG Web Proxy Engine (sowie auch ISA Server 2004/6) durchaus in der Lage ist, solche Regeln zu verarbeiten. Wo auch immer nun das Problem in der UI genau liegt; wir müssen zunächst einmal die Warnmeldung umgehen, indem wir als Erstes die Wildcards (*) innerhalb der Internal Path-Angabe entfernen. Im späteren Verlauf werden dann diese Wildcards über eine direkte Editierung der TMG-Regeldatenbanken hineingefügt.
TMG-Konfiguration: Konfiguration des Zielservers
Auf dem „To“-Reiter wird ebenfalls unter „This portal rule applies to this published site:“ der FQDN portal.domain.de angegeben, damit dieser mit dem SSL-Zertifikat des SharePoint 2010 Servers übereinstimmt. Und unter „Computer name or IP address” wird der FQDN portal2010.domain.de eingetragen, um via DNS die Anfragen zum SharePoint 2010 Server zu leiten. Als weitere Option wurde wiederum das Häkchen unter „Forward the original host header instead of the acctual one” gesetzt.
Abbildung: TMG „To“-Konfiguration
TMG-Konfiguration: Konfiguration der Link Translation
Auch innerhalb der /*.axd und /_layouts/*-Verzeichnisse muss die Link-Translation aktiviert und konfiguriert werden, da diese weiterführende JavaScript bzw. HTML Code enthält, in dem /*.axd- und /_layouts/*-Ressourcen referenziert werden.
Abbildung: TMG-„Link Translation“-Konfiguration
Für die zweite Regel werden die identischen Link-Translation-Regeln verwendet, die auch schon in der ersten Regel zu Anwendung kommen. Wiederum wichtig ist hierbei, dass das Hochkomma (“) am Anfang der jeweiligen Werte unbedingt beachtet wird, da andernfalls die Link-Translation ebenfalls URLs codieren würde, die als Ziel eine Ressource innerhalb der Site-Collection hat.
Abbildung: TMG „Locally Definied Mappings“-Konfiguration
TMG-Konfiguration: Manuelle Anpassungen der Regel über XML-Ex-/Importe
Nachdem die Regel ohne Warnmeldungen vervollständig wurde, geht es im Folgenden darum, die zwingend notwendigen Wildcards innerhalb der Path-Regeln anzulegen. Um dieses zu erreichen, werden zunächst einmal die Webveröffentlichungs-Regeln in XML-Form exportiert, anschließend mit einem Texteditor an den entsprechenden Stellen manipuliert und anschließend wieder importiert.
Abbildung: TMG-Regel-Ex-/Import
Nach dem Regel-Export kann die XML-Datei nach dem Schlagwort „.axd“ durchsucht werden, um die entsprechenden Regelabschnitte zeitnah auszufinden. Anschließend müssen die im unteren Screenshot blau markierten Werte mit einer Wildcard (*) ergänzt werden.
Abbildung: Manuelle Anpassungen der Regelwerke
Nach dem die Werte editiert wurden, kann die angepasste XML-Konfigurationsdatei anschließend wieder in die bestehende TMG-Regel importiert werden.
TMG: SharePoint 2007-Veröffentlichung – Root Web incl. aller Site Collections
Die Konfiguration der SharePoint 2007-Veröffentlichungsregeln ist an dieser Stelle nicht mehr weiter spannend, da im Grunde genommen diese Regel nichts mit der Link-Translation oder Path-Redirection der vorherigen Regeln zu tun hat. Die Aufgabe dieser Regel ist es lediglich, alle nicht definierten Anfragen zum bestehenden SharePoint 2007 Server zu leiten und von dort aus aufzurufen.
TMG-Konfiguration: Konfiguration des Web-Listeners
Auch für die dritte Regel wird der gleiche Web-Listener verwendet, der schon bei der ersten und zweiten Regel zum Einsatz gekommen ist. Eine Rekonfiguration ist hierbei wiederum nicht notwendig, da alle drei Regeln eine identische Web-Listene- Konfiguration verwenden.
Abbildung: TMG-„Listener“-Konfiguration
TMG-Konfiguration: Konfiguration der URL- und Path-Einstellungen
Die dritte Regel reagiert ebenfalls ausschließlich auf den FQDN portal.domain.de.
Abbildung: TMG-„Public Name“-Konfiguration
Auf dem Path-Reiter werden das gesamte Root-Web sowie alle Subsites mit der Angabe von /* veröffentlicht.
Abbildung: TMG-„Paths“-Konfiguration
TMG-Konfiguration: Konfiguration des Zielservers
Auf dem „To“-Reiter wird unter „This portal rule applies to this published site:“ der FQDN portal.domain.de angegeben, damit dieser mit dem SSL-Zertifikat des SharePoint 2007 Servers übereinstimmt. Unter „Computer name or IP address” wird der FQDN portal2007.domain.de verwendet, um via DNS die Anfragen zum SharePoint 2007 Server zu leiten. Als weitere Option wurde wiederum das Häkchen unter „Forward the original host header instead of the acctual one” gesetzt.
Abbildung: TMG-„To“-Konfiguration
TMG-Konfiguration: Konfiguration der Link Translation
Eine Link-Translation muss bei der SharePoint 2007-Regel nicht zum Einsatz kommen.
Abbildung: TMG-„Link Translation“-Konfiguration
Schlusswort
Soweit von mir zum Thema „Zwei SharePoint Sites unter einer gemeinsamen URL ansprechen“. Ich hoffe die in diesem Blog-Artikel enthaltenen Informationen haben Ihnen gefallen und Sie können dieses Wissen irgendwann einmal im eigenen Unternehmen einsetzen. Falls Sie Hilfe bei der Planung oder Implementation benötigen, können Sie sich wie gewohnt an mich oder andere ITaCS‘ler wenden.
Es grüßt der Kai