5ain7 ga11 . CH || i7-l3ak5. CH || g07r007.CH

TMG 2010

Exchange 2010 – ADFS – WAP 2012 R2 (TMG ReverseProxy Replacement)

by on Feb.17, 2015, under ADFS, Exchange 2010, Exchange 2013, Exchange Server, Knowledgebase, Server-Plattformen, TMG 2010, Windows Webapplication Proxy

Microsoft hat am 12. September 2012 entschieden, den Thread Management Gateway einzustellen. Jetzt müssen Alternativen im Bereich des Reverse Proxies her. Einige Anbieter buhlen um die Vorherrschaft in diesem Segment. Firewall Hersteller via Sophos, Barracuda und Citrix mit dem Netscaler mischen in diesem Segment ebenfalls mit. Möchte man jedoch der Microsoft-Linie treu  bleiben, so bleibt einem nur die Möglichkeit, das Web Application Proxy Feature des Server 2012 R2 einzusetzen.

 

Hier darum ein Step-by-Step Guide auf der Cloud-Werkstatt…

 

Rahmenbedingungen / Ausgangslage

  • 1 x Windows 2008 Domänencontroller (bestehend) => itc.local
  • 1x Windows 2012 R2 Domänencontroller inkl ADFS Rolle (neu)
  • 1x Exchange 2010 SP3 Rollup 8 (bestehend)
  • 1x Windows Server 2012 R2 als Reverse Proxy (neu)
  • Split Scope DNS Konfiguration mit SSL Wildcard (in-the-cloud.ch)
  • AutoDiscover funktionsfähig
  • sämtliche Server up to date (erspart viele Kindenkrankheiten)

Summary

 

Hostnames und IPs

  • TESTVS01-MHU – 2008 R2 DC
  • TESTVS02-MHU – 2008 R2 & Exchange 2010 SP3+
  • TESTVS03-MHU – 2012 R2 DC & ADFS
  • TESTVS04-MHU – 2012 R2 WAP (normalerweise in OPT Zone, war im Testlab aber nicht möglich)

DNS

 

 

DNS ScplitScope Records

DNS

  • autodiscover.in-the-cloud.ch =>für AutoDiscover
  • mail.in-the-cloud.ch =>  nur für SMTP Traffic (spielt hier keine Rolle)
  • owa.in-the-cloud.ch => OWA, EAS, ECP
  • sts.in-the-cloud.ch => Security Token Service, URL für ADFS

 

Installation

ADFS Server in Betrieb nehmen

1. via Powershell <Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10)> hinzufügen

RootKey

 

2. ADFS Verbundsdienste installieren

ADFS1

3. Konfiguration nach Bereitstellung aktivieren

ADFS2

4. mit AD DS Verbinden (ein Domänenadmin)

ADFS3

5. Diensteigenschaften angeben

ADFS4

 

  • SSL Wildcard importieren
  • Verbunddienstname: sts.in-the-cloud.ch
  • Anzeigename: frei wählbar

6. Dienstkonto angeben

ADFS5

  • Ich nehme hier den gleichen Serviceuser
  • ein gruppenverwaltetet Dienstkonto ist IMHO nur mit DFL 2012 R2 möglich

7. Datenbank

ADFS6

  • Fürs Testlab genügt die Windows DB
  • Installation abschliessen

8. ADFS MMC starten und Konfiguration anpassen

ADFSk1

  • Verbunddiensteigenschaften bearbeiten…

ADFSk2

  • Settings überprüfen
    • Verbunddienstname: sts.in-the-cloud.ch
    • Bezeichner des Verbunddienstes: http://sts.in-the-cloud.ch/adfs/services/trust

 

“Ansprüche nicht unterstützender Vertauensstellungen….” hinzufügen

ADFSk5

 

Anzeigename

ADFSk4

  • Name frei wählbar (ist für Exchange 2010 und Ex 2013 gleich)

Bezeichner eingeben

ADFSk6

  • https://owa.in-the-cloud.ch/adfs/services/trust

 

Mehrstufige Authentifizierung

ADFSk7

  • Jetzt keine Einstellungen für die Mehrstufige Authentifizierung konfigurieren…

Assistent zum Hinzufügen einer Ausstellungs-Authorisierungs-Anspruchsregel

ADFSk8

 

  • Benutzer den Zugriff auf Grundlage…gewähren…
  • Allen Benutzer Zugriff gewähren

ADFSk9

 

  • Konfiguration abschliessen

 

ADFS Installation testen

https://sts.in-the-cloud.ch/adfs/ls/IdpInitiatedSignon.aspx$

eingeben. Hier sollte die ADFS Anmeldemaske erscheinen. Die Creds eingeben…

ADFSk10

  • Es sollte die Meldung kommen: “Sie sind angemeldet”

 

WAP Server in Betrieb nehmen

  • Als erstes sollte das SSL Wildcard im lokalen Computer Konto importiert werden

 

Remotezugriffdienste mit Web Anwendungsproxy installieren

WAP1

WAP2

Nach der Grundinstallation den Assistent für den Webanwendungsproxy starten

WAP3

 

Verbundserver

WAP4

  • Name des Verbunddienstes => sts.in-the-cloud.ch
  • Creds angeben, dann auf weiter
  • zuvor importiertes SSL Zertifikat wählen

Die Grundinstallation ist jetzt abgeschlossen. Anschliessend die WAP Konsole starten.

WAP5

  • Der WAP sollte jetzt voll funktionsfähig sein.

 

Remotzugriffsverwaltung starten und Exchange Dienst veröffentlichen

ECP und OWA (mit ADFS)

WAPr1

WAPr2

 

  • Vorauthentisierung => ADFS wählen

 

vertrauende Seite

WAPr3

  • selbst erstellte Exchange 2010/2013 ADFS Page wählen

Veröffentlichungseinstellungen

WAPr4

 

  • Name => frei wählbar => Exchange 2013 OWA
  • Zertifikat: importiertes Wildcard wählen
  • Externe URL & URL Backend Server => https://owa.in-the-cloud.ch/owa/ (Wichtig / am Schluss nicht vergessen)
  • Dienstprinzipialname des Backendservers = > http/owa.in-the-cloud.ch (Schreibweise beachten!!)
    • den SPN müssen wir noch registrieren…folgt

==> /ECP genau gleich veröffentlichen!!

  • https://owa.in-the-cloud.ch/ecp/
  • http/owa.in-the-cloud.ch

 

AutoDiscover, EAS, OAB und RPC via Passtrough

 

WAPr5

Die Passtrough Regeln werden nach folgendem Schema aktiviert:

WAPr6

 

 

Achtung : Exchange 2013 und Exchange 2010 unterscheiden sich hier :

 

Ex 2010 => https://owa.in-the-cloud.ch/Microsoft-Server-ActiveSync/

Ex2013 => https://owa.in-the-cloud.ch/Exchange-Server-ActiveSync/

 

Folgende Regeln sollten vorhanden sein:

WAPr7

 

Auszug aus: <get-Webapplicationproxyapplication | fl > output.txt>

Get-WebApplicationProxyapplication

 

Hier noch der Feinschliff im AD, damit der SPN auch funktioniert….

SPN Record im AD hinzufügen

Die erweiterten Attribute des Exchange AD Objektes öffnen und unter

“ServicePrincipalName”

HTTP/owa.in-the-cloud.ch” hinzufügen

 

SPN1

Dann aufs WAP Server Computerkonto wechseln

Delegierung auf WAP Server Objekt

SPN2

  • Anschliessend auf dem WAP Server AD Objekt die Delegierung auf den erstellten SPN aktivieren

Letzter Schritt….Exchange Server anpassen

auf Exchange 2010

auf dem CAS Server Authentifizierung für OWA und ECP anpassen auf “integrierte Windows Authentifzierung”

Exchange

Exchange2

IIS reset und GO!!!

https://owa.in-the-cloud.ch/owa sollte jetzt die neue Anmeldemaske vorweisen..

test1

nach dem Login erscheint dann das bekannt Fenster..

test2

 

DONE!!

 

 

Troubleshooting EAS mit Android Clients

Ich hatte noch das Problem, dass Android Clients nicht synchen konnten. Das Problem liegt an der SNI (Server Name Indication” des IIS 8. Android Clients haben Probleme damit.

Folgendes schafft Abhilfe ( in Netz gefunden)

http://blog.kloud.com.au/tag/web-application-proxy/

</SNIP>

webtroubs

<SNIP/>

Finding the solution took a lot of searching. This TechNet blog Server Name Indication (SNI) with IIS 8 (Windows Server 2012) pointed me in the right direction when talking about how IIS 8 has a way to add a legacy SSL binding to support non-SNI compliant clients. Web Application Proxy however is not based on IIS. That blog mentioned using netsh to view the HTTP SSL bindings:

<netsh http show sslcert>

  • Appid und Hash von owa.in-the-cloud.ch notieren..

 

SNI

The MSDN article How to: Configure a Port with an SSL Certificate showed how to add a new binding. The trick is to add an IP:port binding in addition to the Hostname:port which acts as a legacy non-SNI binding. As all of the WAP applications have the same certificate and Application ID, I reused those and created the new binding:

 

Lösung

<netsh http add sslcert ipport=0.0.0.0:443 certhash= 428b73e7d5e863b438fb547b133f3bda7a9daa1b appid={f955c070-e044-456c-ac00-e9e4275b3f04}>

 

SNI2

 

 

 

 

 

 

Leave a Comment more...

TMG 2010: Probleme mit Escape Characters im Link

by on Jun.16, 2011, under Knowledgebase, TMG 2010

Der TMG 2010 zickt (gewollt), wenn bei einem Link Escape Characters hintererlegt sind. Die Fehlermeldung sieht folgendermassen aus:

Error TMG normalization

Bei z.B. über TMG veröffentlichten Sharepoint-Diensten kann ein Link folgendermassen aussehen:

https://portal.xxxxxx.com/websites/media/Lists/Medienkatalog/DispForm.aspx?ID=43&Source=https%3A%2F%2Fportal%2Exxxxxx%2Ech%2Fwebsites%2Fmedia%2Fdefault%2Easpx%3FPaged%3DTRUE%26p%5FTitle%3DPTC%252dNTC%252dPN%26p%5FID%3D103%26View%3D%257bDEB499B8%252d2196%252d4FB7%252d871F%252dF0D6010308EE%257d%26PageFirstRow%3D201&IsDlg=1

Wenn man den Link auseinander nimmt, sieht man, dass es einen Grundlink und einen Suffix gibt:

https://portal.xxxxxx.com/websites/media/Lists/Medienkatalog/DispForm.aspx?ID=43

&Source=https%3A%2F%2Fportal%2Exxxxxx%2Ech%2Fwebsites%2Fmedia%2Fdefault%2Easpx%3FPaged%3DTRUE%26p%5FTitle%3DPTC%252dNTC%252dPN%26p%5FID%3D103%26View%3D%257bDEB499B8%252d2196%252d4FB7%252d871F%252dF0D6010308EE%257d%26PageFirstRow%3D201&IsDlg=1

Der Grundlink wird mit diversen Escape Characters verunreinigt. Es gibt eine Funktion auf der HTTP/HTTPs Richtlinie bei der Firewallrule für die entsprechende Veröffentlichung. Und zwar überprüfte der TMG die „Normalisierung“. D.h.: Anforderungen mit URLs werden blockieren, die nach der Normalisierung Escapezeichen enthalten.

Haken bei “Normalisierung überprüfen” rausnehmen, Übernehmen et voila.

Normalisierung beim TMG 
Leave a Comment more...

Blogroll

A few highly recommended websites...