ADFS 2.0 Setup

Die Installation von ADFS für Office 365 ist relativ einfach und geradlinig. Voraussetzung ist, dass Sie sich schon auf einen "Namen" für diesen Dienst festgelegt haben, unter dem die Clients später ihre Tokens anfordern können. Der Name muss für die Clients unabhängig von ihrer Position im Netzwerk (Intern, VPN, Internet) auflösbar und per HTTPS erreichbar sein.

Important Announcement: AD FS 2.0 and MS13-066
http://blogs.technet.com/b/askds/archive/2013/08/15/important-Announcement-ad-fs-2-0-and-ms13-066.aspx
Probleme mit Hotfix KB 2843638 oder  KB 2843639

Vorarbeiten

Die ADFS 2.0 erfordern die Installation auf einem Windows Server 2008 oder 2008R2 Server, welcher natürlich Mitglied einer Domäne sein muss. Die Installation kann durchaus auch auf einem Domänencontroller erfolgen. Hier sind die individuellen Anforderungen an die Sicherheit und die Trennung von Funktionen und administrativen Rollen zu berücksichtigen.

Folgende Systemvoraussetzungen sind für ADFS 2.0 (Stand Anfang 2012) erforderlich und werden durch das ADFS-Setup gegebenenfalls gleich mit installiert.

  • PowerShell
  • Net 3.5 SP1
  • IIS
  • Windows Identity Foundation

Die Hardware-Voraussetzungen für den Server sind sehr überschaubar. Hier am Beispiel des ADFS-Servers bei Net at Work, welcher mehrere Wochen "online" war aber natürlich auch nur eine sehr überschaubare Last hat.

Wenn Sie also eine virtuelle Umgebung haben, dann können Sie sehr elegant die Ressourcen sinnvoll anderweitig nutzen. Es gibt sogar eine Excel-Tabelle zum Berechnen.

ADFS Calculator
http://download.microsoft.com/download/3/1/3/31312F45-4AB3-4B54-8E23-6326BAF4F5BC/adfs-capacity-planning-sizing-spreadsheet-DLC.xlsx

Basierend auf einem 4 Core können 10.000 User auf 5 Dienste mit 60% Anmeldungen innerhalb der "Busy Hour" mit 0,08 Servern bedient werden. Rechnen Sie einfach selbst.

DNS

Die Clients erhalten von dem angesprochenen Dienst eine URL, untern denen Sie ein Ticket beziehen müssen. Diese URL ist bei der entsprechenden Anwendung, hier also Office 365, zu definieren. Sie müssen sicherstellen, dass dieser Hostname von den Clients auch aufgelöst und zum richtigen ADFS-Zugangspunkt geleitet wird.

Es ist immer ratsam hier keine echten Servernamen sondern einen Alias zu vergeben, z.B.. "adfs.firma.tld". Dies muss dann aber bei der Konfiguration von Kerberos beim Service Principal Name (siehe SPN) berücksichtigt werden.

Klassisch gibt es dabei zwei Konfigurationen und Lokationen:

  Intern Extern

Gemeinsamer Namensraum mit SplitDNS

Dabei ist der DNS-Namensraum intern und im Internet gleich

In der internen DNS-Zone wird der ADFS-Server mit den gewählten Namen veröffentlicht.

In der Internet-Zone wird die offizielle Adresse des externen Zugangs hinterlegt.

Getrennter Namensraum

Der interne DNS-Stamm unterscheidet sich von der externen DNS-Domäne, z.B. firma.local und firma.tld

Damit adfs.firma.tld auch intern aufgelöst und richtig geroutet wird, setzen die meisten Administratoren eine "Stubzone" ein, die zumindest diesen einen Namen intern auflöst und nicht erst nach "draußen" und wieder rein.

In der Internet-Zone wird die offizielle Adresse des externen Zugangs hinterlegt.

Die erforderlichen DNS-Einträge sind vom jeweiligen DNS-Administrator vorzunehmen.

Es sollte auf jeden Fall dem Client möglich sind, intern direkt den ADFS Server mit "integrierter" Anmeldung zu erreichen, während extern eine ausreichend sichere "Veröffentlichung" genutzt wird.

Installation

Download Microsoft Active Directory Federation Services 2.0
http://technet.microsoft.com/en-us/evalcenter/ee476597

Das herunter geladene Installationspaket ist ca. 40 Megabyte fordert sie nach dem Start gleich auf, die gewünschte Komponente auszuwählen. Sie starten in der Regel mit einem Federation Server. Der ADFS Proxy ist die Komponente, die zwischen Internet und internen Server z.B. auf einem Server in der DMZ installiert werden kann, wenn keine anderen Wege der Veröffentlichung genutzt werden.

Der nächste Schritt ist die Bereitstellung der erforderlichen Voraussetzungen. Da die Komponenten alle bei Windows 2008 und höher sowieso schon auf der Festplatte vorliegen und nur aktiviert werden, benötigen Sie in der Regel keine weiteren Datenträger

Je nach Geschwindigkeit ihres Servers  ist die Installation nach wenigen Minuten durch. Am Ende des Setup kann direkt die Konfiguration gestartet werden:

Das können Sie machen, aber damit ADFS richtig funktioniert, sollten Sie noch auf aktuelle Updates prüfen.

Update "Update Rollup 2" (oder neuer)

Schon 2011 hat Microsoft für ADFS ein erforderliches Update veröffentlicht, um die ein oder anderen Inkompatibilitäten von ADFS mit Office 365 zu lösen. Dieses Update bekommen Sie sogar über "Windows Update". Ihr Server muss dazu natürlich auch die Microsoft Updates (und nicht nur die Windows Updates) beziehen bzw. ihr WSUS-Server muss diese Pakete auch bereitstellen.

  • 2681584 Description of Update Rollup 2 für Active Directory Federation Services (AD FS) 2.0

Die Installation des Update "Windows6.1-KB2607496-v3-x64.exe" geht sehr schnell von statten.

Damit haben Sie bezüglich der Installation alle Hürden genommen

Client Zugriff und DNS-Name

Es ist keine gute Idee, den ADFS-Service mit dem "echten Servernamen" zu veröffentlichen. Also sollten Sie einen virtuellen Namen nutzen, z.B. sts.firmenname.tld. Dieser Name muss von den Client auf jeden Fall "intern" aber eventuell auch extern auflösbar sein. Von Intern kann der Client natürlich direkt auf den ADFS-Server oder einen Loadbalancer gehen, der den Zugriff auf die Server verteilt.

Beim Namen müssen Sie natürlich den Alias-Namen auch im DNS veröffentlichen. Das kann nun ein A-Record oder ein CNAME sein. für Clients aus dem Internet ist dies nicht sonderlich kritisch, da diese sich sowieso kein Kerberos-Ticket eines DC holen können und daher NTLM oder BASIC verwenden. für interne Clients, die auf Dienste in der Cloud zugreifen wollen, ist aber eine "integrierte Anmeldung" wünschenswert, so dass intern sehr wohl neben NTLM auch Kerberos eine Rolle spielt. Und hier gibt es Stress mit "CNAME", da der Client sich dann ein Zertifikat für den "echten Servernamen" holt. Wenn Sie aber eine ADFS-Farm betreiben, dann wäre dies falsch da die ADFS-Dienste mit einem eigenen Dienstkonto läuft.

Zertifikat

Ehe Sie nun aber direkt an die Konfiguration gehen, rate ich erst das Thema Zertifikate anzugehen. Sie können die Konfiguration nicht abschließen, wenn kein Zertifikat vorliegt.

Wichtig
Sie müssen zuerst ein Zertifikat auf den PC für den FQDN des ADFS-Service beantragen, installieren undan den IIS Binden.

Auf der Seite IIS7 SSL einrichten habe ich die erforderlichen Schritte beschrieben, um ein Zertifikat für den Webserver anzufordern. Dieses Zertifikat ist für die spätere Verbindung der Clients zum Server per HTTPS erforderlich und muss natürlich den Hostnamen der ADFS-URL enthalten. Zur Kontrolle sollten Sie das Zertifikat noch mal anschauen, Das gilt insbesondere wenn wie bei mir mehrere Zertifikate mit dem gleichen "Anzeigenamen" vorhanden sind

SAN und sogar Wildcard-Zertifikate scheinen keine Probleme zu machen. Das mag aber auch daran liegen, dass ADFS relativ "jung" ist und daher die Clients entsprechend aktuell mit diesen besonderen Formen umgehen können.

Konfiguration

Nach der Installation von ADFS und der Anforderung und Einspielung des Zertifikats kann die eigentliche Konfiguration erfolgen.

Hinweis
Diese Einrichtung ist erforderlich, damit im IIS die entsprechenden virtuellen Verzeichnisse und der Applicationpool angelegt wird.

Das Setup alleine legt nämlich noch keine Verzeichnisse im IIS an, welche für die Funktion aber erforderlich sind: Das Verwaltungsfenster zeigt sich nüchtern:

Über den Link "AD FS 2.0 Federation Server Configuration Wizard" die die Einrichtung gestartet. Hier gilt es erst zu bestimmen, ob sie einen neue Farm bzw. einen einzelnen Server einrichten wollen, oder ob diese Installation einen weiteren Server zu einer bestehenden Farm hinzufügt.

ADFS ist also schon von Hause aus auf "Hochverfügbarkeit" vorbereitet. Wenn Sie es ganz einfach machen möchten, dann wählen Sie im nächsten Fenster einfach den "Stand-alone federation server" aus. Wer sich den Weg später für eine Farm aus mehreren Servern offen halten will, sollte besser heute schon eine Farm anlegen, auch wenn diese Farm dann doch nur einen Server enthält. Allerdings müssen Sie dann natürlich beim Zertifikat, DNS-Einträgen und ServicePrincipalNames noch nacharbeiten.

Der nächste Schritt ist dann auch schon die Auswahl des Zertifikats. Hätten Sie das Zertifikat noch nicht angefordert und installiert, dann wäre hier die Konfiguration schon vorzeitig zu Ende.

Alles was ein richtiger Dienst sein will, speichert seine Daten in einer SQL-Datenbank. ADFS macht es genau so und nutzt dabei die "Windows Internal Database", was letztlich auch nur eine Variation der SQL-Datenbank ist. Hierfür wird ein Dienstkonto benötigt. Dies ist besonders in einer Farm relevant, wo die Server miteinander kommunizieren sollen. Das Konto müssen sie vorher selbst anlegen.

Danach zeigt der Assistent noch einmal die Zusammenfassung an, die Sie an der Stelle auch gerne mal in ihre interne Dokumentation übernehmen können:

Im nächsten Schritt werden die gemachten Angaben umgesetzt. Zu dem Bild gibt es nicht mehr viel zu sagen:

Damit ist die interne Bereitstellung eines einzelnen ADFS-Servers schon abgeschlossen.

Veröffentlichung

Wenn externe Clients ohne VPN sich Tokens holen müssen, dann fehlt ihnen noch die entsprechende Veröffentlichung. Aus dem Internet hingegen sollten Sie den ADFS-Server nicht direkt erreichbar machen. Microsoft empfiehlt hierzu die Installation des ADFS Proxy zwischen Internet und ADFS-Server, welcher die Anfragen annimmt und nach innen weiter gibt. Der ADFS-Proxy ist ein HTTP-Reverse Proxy, der ähnlich wie eine TMG Webveröffentlichung die Anfragen annimmt und erst nach einer Formatprüfung weiter gibt. Ich sehe kein echtes Problem darin, wenn Sie die Veröffentlichung auch über einen TMG oder anderen Reverse Proxy bereit stellen. Die verschiedenen Optionen habe ich auf Office 365 ADFS ja schon vorgestellt.

Für erste ADFS-Versuche müssen Sie aber die Dienste noch nicht einmal extern veröffentlichen, denn auch die Server von Office 365 greifen NICHT auf ihre ADFS-Server zu. Während der Einrichtung in Office 365 wird nur ihr ADFS-Zertifikat (natürlich ohne privaten Schlüssel zu Office 365 hochgeladen, damit die Dienste das ausgestellte Ticket überprüfen können.

ADFSHelp - Resolve authentication issues faster
https://adfshelp.microsoft.com/
https://adfshelp.microsoft.com/JwtDecoder/GetToken 
Sehr nützliche Seite von Microsoft, um Probleme mit ADFS und Tokens zu analysieren

Weitere Links