ADFS2012R2 Setup

Die Installation von ADFS ist mit Windows 2012R2 deutlich einfacher geworden, als mit ADFS 2.0 Setup. Während mit ADFS2 noch einige Vorarbeiten erforderlich sind, ist es mit Windows 2012R2 eine Rolle, die einfach addiert werden kann. Das kann sogar auf dem Domain Controller erfolgen, da die vielleicht als kritisch angesehene Komponente IIS nicht mehr erforderlich ist. Natürlich müssen Sie immer noch wissen, was Sie tun und was sie benötigen. Die folgende Checkliste kann ihnen dabei helfen.

  • Checklisten
    Eine Übersicht aller Checklisten der MSXFAQ

Vorüberlegungen

Ehe Sie das Setup starten, müssen Sie einige Dinge festlegen:

Entscheidung Status

Name

Der ADFS-Service muss von den Clients später unter einem DNS-Namen per HTTPS angesprochen werden. Hier gibt es keine "Standards" auch wenn Microsoft gerne in Dokumentationen ein "sts.domain>" verwendet. Andere Firmen nehmen adfs.<domain> oder sts.federation.<domain> oder adfs-online.<domain>. Wenn Sie auf Office 365 verschiedene Domänen von Firmen ausprobieren, sehen Sie unterschiedlichste Namen. Denken Sie dabei aber an:

  • Öffentlicher Name
    Bitte nutzen Sie einen Namen, der einen öffentlichen FQDN hat. nur so können Clients auch aus dem Internet ein ADFS-Ticket bei bedarf erhalten
  • Zertifikat
    Der öffentliche Name ist auch erforderlich, wenn Sie ein Zertifikat einer öffentlichen PKI verwenden. Keine CA stellt ein Zertifikat auf einem "privaten Namen" aus
  • Split-DNS
    Der Name des ADFS-Servers ist immer der gleiche, egal ob der Client intern oder extern steht. In der Regel bedeutet das den Einsatz von Split-DNS für ihre DNS-Zone oder PinpointDNS

 

Verfügbarkeit

Damit ein Zugriff auf Dienste einer mit ADFS gekoppelten Stelle möglich ist, muss ADFS funktionieren. Ohne Ticket gibt es keinen Zugriff und wenn der ADFS-Service nicht verfügbar ist, kann niemand sich mehr an den abhängigen Diensten anmelden. ADFS sollte also "hochverfügbar" sein. Das geht mit zwei oder mehr ADFS-Server in einer Farm sehr einfach. Die Clientzugriffe sollte natürlich mit einem LoadBalancer verteilt werden.

 

Plattform und Sizing

ADFSR2 ist eine Windows Rolle und dazu ist ein Windows Server erforderlich. Sie haben also die Wahl zwischen virtuellen und physikalischen Servern. Auch die Dimensionierung ist natürlich ein wichtige Thema, wobei hier relativiert werden muss. Ein Ticket gilt in der Regel 60 Minuten und eine Anmeldung kann mit 10kbyte auskommen. Selbst 1000 User, die jeden Tag sich im Mittel vielleicht 10mal anmelden, ergeben 10.000 HTTP-Requests mit 100 Megabyte Datenvolumen. Das sollte einen normalen ADFS-Server nicht wirklich belasten.

 

Standort

Der Server muss natürlich von allen Clients erreichbar sein und mit den Domain Controllern sprechen können. Dennoch ist es z.B.: möglich, den ADFS-Service zusammen mit der Domaincontroller-Funktion in einem anderen RZ oder in Azure zu betreiben. Das ist interessant, wen Firmen viele Cloud-Dienste nutzen und so unabhängiger von einem Ausfall der "On-Prem-Anbindung sein wollen.

 

Internet

Zuletzt stellt sich noch die Frage, wie der ADFS-Service aus dem Internet erreichbar gemacht wird, wenn Clients ohne VPN von Dort ein Ticket erhalten wollen. Microsoft empfiehlt hier die Rolle des ADFS Proxy. Es sind aber auch andere Reverse-Proxy-Server möglich, solange Sie einen Proxy-Via-Header addieren. Nur dann kann der ADFS-Server den externen Zugriff verhindern und die alternativen Authentifizierungsverfahren anbieten oder einen DoS-Schutz gegen Kennwortattacken aktivieren.

 

Installation

Schritt Status

Betriebssystem bereitstellen

Für den ADFS-Server benötigen Sie Windows 2012R2 oder höher, welches Mitglied einer Domäne ist. Die späteren Benutzer zu Authentifizierung können auch in anderen Domänen oder sogar vertrauten Forests sein.

 

Dienstkonto

ADFS benötigt ein Dienstkonto, welches sie vorher manuell anlegen müssen, es sie denn Sie nutzen die Funktion der "verwalteten Dienstkonten". Bei einem manuellen Dienstkonto sollten Sie aktivieren, dass es nicht abläuft und nicht regelmäßig sein Kennwort ändern muss.

 

Zertifikat

Die Verbindung mit den Clients wird per SSL abgesichert. Dazu benötigen alle ADFS-Server ein Zertifikat. Dieses muss vorher installiert worden sein. Die Installation und Konfiguration der ADFS-Rolle enthält keinen Assistenten zum Anfordern eines Zertifikats. Vergessen Sie nicht, die entsprechenden "Intermediate"-Zertifikate mit im richtigen Store abzulegen

 

Rolle addieren

Nachdem die Vorarbeiten erledigt sind können Sie die ADFS-Rolle über den Servermanager oder PowerShell einfach installieren.

 

Initialkonfiguration

Direkt nach der Installation der Rolle können Sie über den Servermanager die ausstehende Initial-Konfiguration starten. Die einzelnen Bilder erspare ich mir.

Schritt Status

Farmeinstellung

Zuerst bietet ihnen der Assistent aus, eine neue Farm einzurichten oder einen weiteren Server in eine bestehende Farm zu installieren. Der erste Server startet eine neue Farm

 

Domain Admin Credentials

Das Setup legt einige Einträge im Forest ab, z.B. damit die Anmeldung per Kerberos funktioniert. Dazu müssen Sie im Setup einmal die Anmeldedaten eines Domänen Administrator eingeben. Diese werden nur für die Einrichtung genutzt.

 

SSL Zertifikat auswählen

Nun sollten Sie das vorab installierte SSL-Zertifikat auswählen können und den Farmnamen als auch den Display Name auf der ADFS-Webseite

 

Service Account auswählen

Erst dann können Sie das Dienstkonto angeben, welches sie im Vorfeld angelegt haben oder die "Managed Service Accounts" nutzen.

 

SQL Backend auswählen

ADFS muss einige Einstellungen speichern, die von allen Servern in der Farm repliziert werden. Heute ist das in vielen Programmen einfach SQL. Die ADFS-Rolle kann die "Windows Internal Database", eine spezielle SQL-Datenbank für Betriebssystemdienste nutzen. Sehr große Umgebungen können die Daten aber auch in einen anderen SQL-Server auslagern.

 

Konfiguration ausführen

Mit dem Startknopf beginnt der Assistent die gemachten Angaben umzusetzen.

 

Damit ist die Ersteinrichtung abgeschlossen und der ADFS-Server sollte schon unter seinem Farmnamen erreichbar sein.

Nachkonfiguration

Der Assistent hinterlässt ihnen einen Server, der grundlegend funktioniert. Allerdings gibt es noch einige Einstellungen, die nicht bei der Ersteinrichtung abgefragt werden, z.B.

Schritt Status

Anpassen der Anmeldegrafik, Links und Farben

Wenn Anwender auf die "Formularseite" von ADFS kommen, dann zeigt Windows hier erst einmal das StandardLayout, welches sehr schnell über PowerShell angepasst werden kann.

Set-AdfsGlobalWebContent `
   -CompanyName "MSXFAQ"
Set-AdfsGlobalWebContent `
   -HelpDeskLink https://adfs.msxfaq.de/help/ `
   -HelpDeskLinkText "Hilfe"
Set-AdfsGlobalWebContent `
   -HomeLink https://adfs.msxfaq.de/home/ `
   -HomeLinkText "Startseite" 

Die Online-Anleitung von Microsoft beschreibt sehr gut die weiteren Optionen: 

 

Extranet Lockout Schutz

Set-AdfsProperties `
   -ExtranetLockoutThreshold 2 `
   -ExtranetObservationWindow 00:01:00 `
   -EnableExtranetLockout $true

Wenn der ADFS-Proxy den Header "x-ms-proxy" addiert, dann kann der ADFS-Server erkennen, dass der Zugriff von außen kommt.

 

Kerberos

Sie haben bei der Installation ein "Dienstkonto angegeben, mit dem die ADFS-Services arbeiten. Das ist wichtig zu wissen, wenn Sie statt NTLM z.B. "Kerberos" nutzen wollen. Dazu müssen Sie dann einfach den SPN des ADFS-Servers auf dieses Benutzerkonto addieren.

 

WIA Anmeldung (Windows Integrated Authentication)

Der ADFS-Service wertet den "UserAgent" aus, um die entsprechende Authentifizierung anzubieten. Die "Windows integrierte Anmeldung", d.h. NTLM oder Kerberos bekommen nur "kompatible" Clients. Auf der Liste fehlen per Default aber z.B. Chrome, Firefox und Safari(MAC). Diese Browser können aber auch Kerberos, wenn Sie entsprechend konfiguriert wurden (Siehe ). Damit Sie aber auch von ADFS zur Anmeldung per "Windows Integrated Authentication" aufgefordert werden, müssen Sie dies in ADFS auch einrichten:

Set-ADFSProperties `
    -WIASupportedUserAgents @("MSAuthHost/1.0/In-Domain", "MSIE 6.0", "MSIE 7.0", "MSIE 8.0", "MSIE 9.0", "MSIE 10.0", "Trident/7. 

 

WSAuth von extern

Aus Sicherheitsgründen sollte man NTLM von extern abschalten.

Set-AdfsEndpoint -TargetAddressPath /adfs/services/trust/2005/windowstransport -Proxy $false
Set-AdfsEndpoint -TargetAddressPath /adfs/services/trust/13/windowstransport -Proxy $false

 

Weitere Anpassungen

Wenn Sie weitere Einstellungen vornehmen, sollten Sie diese dokumentieren.

 

Diese Dinge sind natürlich noch zu konfigurieren.

Testen

Den ADFS-Server zu testen ist gar nicht so einfach ohne Dienste, die auf ADFS aufbauen. Ohne eine Partnerschaft zu Office 365, SharePoint, CRM, WAP o.ä. können Sie nur zwei Dinge machen:

  1. Abfrage der XML-Dateien
  2. Aufruf der interaktiven Anmeldeseite
    https://adfs.netatwork.de/adfs/ls/IdpInitiatedSignon.aspx

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

Konfiguration

Die eigentliche Arbeit steht ihnen aber nun noch bevor, denn erst wenn Sie nun verschiedene Trust Partner addiert haben, können andere Dienste von den ADFS-Tickets profitieren. Sie müssen dazu sowohl auf dem ADFS-Server als auch auf dem anderen System entsprechende Einrichtungen vornehmen.

Betrieb

Nach spätestens einem Jahr werden Sie eventuell eine böse Überraschung erleben. Entweder ist dann das Token Signing Zertifikat abgelaufen oder es wurde automatisch erneuert aber Sie haben dieses neue Zertifikat nicht an die Dienste weiter gegeben, die ihrem ADFS-Server vertrauen. Der einen ADFS-Server betreibt, sollte sich also auch Gedanken über den Betrieb machen. Dazu gehört wie immer:

  • Patch-Management
  • Updates
  • Zertifikate
  • Fehlerüberwachung
  • Und anderes

Für den ADFS-Server gelten also ähnliche Anforderungen wie für andere Dienste.

Umbenennen

Es ist nicht möglich, den Hostnamen des ADFS-Servers oder der ADFS-Farm nachträglich zu ändern. Die Information steckt in zu vielen Stellen (Datenbank, ADFS-Tickets, Zertifikate etc.) und auch die Federation Partner müssen ihre Konfiguration dann auch ändern. Insofern sollten Sie sich vorher genau den ADFS-Hostnamen überlegen.

Sollten Sie aber dennoch den Namen ändern müssen, dann geht das nur, indem sie neue ADFS-Services parallel aufbauen und alle Dienste schwenken ehe die dann die alten Services abbauen.

Wer es etwas eiliger hat oder keine zusätzlichen Server und Loadbalancer bereits.tellen kann, kann natürlich auch die bestehenden Server "Uminstallieren." das Vorgehen ist recht einfach und kann in ca. 1-2h durchgeführt werden

  1. Alle ADFS-Proxies deinstallieren
  2. Alle ADFS-Rollen deinstallieren
  3. ADFS-Container in im AD unter "Program Data\Microsoft" löschen
  4. ADFS-Datenbank löschen
  5. ADFS neu installieren

Bedenken Sie, dass Sie nicht nur bei allen Federation-Partner dann neue Signing-Zertiifkate hinterlegen müssen. ,sondern auch die mit dem UPN verknüpfte URL auf den neuen Server verweisen muss.

Der Wechsel das ADFS-Server-FQDN ist möglich aber nur kleine Umgebungen oder "nicht produktive" Systeme werden eine bestehende Installation entfernen und neu installieren. Nahtloser ist ein Wechsel durch den parallelen Aufbau einer neuen ADFS-Infrastruktur und dem Umstellen der Anmeldung auf das neue System.

Es temporär von einem "SingleSignOn" auf ein "SameSignOn" wechseln kann, kann in Office 365 natürlich auch einfach ADFS deaktivieren und auf die vorher schon aktivierte Kennwort-Replikation durch AADConnect (Siehe Password Sync) setzen.

Weitere Links