Zum Inhalt springen

Active Directory Federation Services (ADFS) installieren

Symbolbild Schlüssel

Active Directory Federation Services (ADFS) und Webanwendungsproxy bzw. Web Application Proxy (WAP) mit Windows Server 2019 bereitstellen.

Vorbereitung

Server und Serverfunktionen

Für die ADFS-Bereitstellung werden zwei (virtuelle) Server benötigt:

  • „ADFS“:
    • kommuniziert mit dem AD-Domänencontroller
    • übernimmt die interne ADFS-Authentifizierung
  • „WAP“:
    • nimmt die Anfrage aus dem Internet entgegen
    • leitet die Anfrage an den ADFS-Server weiter

WAP veröffentlichen, DNS, SSL-Zertifikat

Aus Sicherheitsgründen sollte der WAP-Server in einem DMZ-Netzwerk laufen und nicht zur AD-Domäne hinzugefügt werden! Der WAP-Server sollte vom Internet aus mit den Ports 443 (TCP/UDP) und 49443 (TCP) unter z.B. fs.domain.at erreichbar sein. Für die Adresse wird außerdem ein öffentlich gültiges SSL-Zertifikat benötigt. Innerhalb des Domänen-Netzwerks sollte fs.domain.at auf den ADFS-Server zeigen, der ebenfalls über das öffentlich gültige SSL-Zertifikat verfügt.

ADFS-Aufbau im Überblick

ADFS-Struktur

Interne Clients können direkt mit dem ADFS kommunizieren.
Anfragen externer Clients und Logins laufen über den WAP zum ADFS.

Windows Server installieren

Beide Server sollten der Einfachheit halber mit Windows Server 2019 (Standard oder höher) mit Desktopdarstellung laufen. Im Anschluss wurden Computername und fixe IP-Adresse gesetzt und alle verfügbaren Windows Updates installiert.

Theoretisch können beide Dienste auch auf Windows Server Core laufen, allerdings gibt es für ADFS keine Remoteverwaltungstools (RSAT), die eine grafische ADFS-Verwaltung von einem Remotesystem aus ermöglichen. Daher müsste die ADFS-Verwaltung in so einem Fall vollständig über PowerShell erfolgen.

Erstkonfiguration der Active Directory Dienstkonten

Mit Active Directory Dienstkonten (bzw. Group Managed Service Accounts, kurz gMSA) wird ein automatisches Passwort-Management bereitgestellt, dass die ansonsten übliche Eingabe von Domänen-Administrator-Anmeldedaten ablöst. Dadurch werden Passwort-Änderungen beim Domänen-Administrators weniger dramatisch.

Wenn bisher noch nicht mit Active Directory Dienstkonten gearbeitet wurde, muss zunächst auf einem Domänencontroller der Key Distribution Services (KDS) Root Key generiert werden. Dazu PowerShell als Administrator starten und folgenden Befehl ausführen:

Add-KdsRootKey -EffectiveImmediately

Danach sollte min. 10 Stunden gewartet werden, bis der KDS-Root-Key auf alle Domänencontroller repliziert wurde.

Quelle: Microsoft.com

Active Directory Dienstkonto für ADFS erstellen

Im Active Directory Benutzer- und Computer:

  • Neue globale Sicherheitsgruppe mit Namen „Allow-gMSA-ADFS“ erstellen
  • Das ADFS-Computerkonto zur erstellten Sicherheitsgruppe hinzufügen
  • ADFS-Server neu starten

Mit dem folgenden PowerShell-Befehl wird auf einem Domänencontroller das ADFS-Dienstkonto erzeugt:

New-ADServiceAccount -Name gMSA-ADFS -DNSHostName fs.domain.at -PrincipalsAllowedToRetrieveManagedPassword Allow-gMSA-ADFS -ServicePrincipalNames http/fs,http/fs.domain.atCode-Sprache: PHP (php)

ADFS-Server installieren

Active Directory Dienstkonto installieren

Mit den folgenden PowerShell-Befehlen wird das zuvor erstellte Dienstkonto auf dem ADFS-Server installiert:

Add-WindowsFeature -Name RSAT-AD-Tools
Install-ADServiceAccount -Identity gMSA-ADFS

Lokales Administratorkonto für WAP-Server erstellen

Für die Installation und Konfiguration des WAP-Servers wird am ADFS-Server ein lokales Windows-Administratorkonto benötigt!

Active Directory Federation Services (ADFS) installieren

Die ADFS Windows Serverrolle wird installiert mit:

Install-WindowsFeature ADFS-Federation -IncludeManagementTools

SSL-Zertifikat installieren

In diesem Schritt wird ein öffentlich gültiges SSL-Zertifikat installiert. Der Thumbprint des Zertifikats wird für den nächsten Befehl benötigt.

$pw = ConvertTo-SecureString -String "Passwort des Zertifikats" -Force -AsPlainText
Import-PfxCertificate -FilePath c:\zertifikat.pfx cert:\localMachine\my -Password $pwCode-Sprache: PHP (php)

ADFS-Konfiguration starten: ADFS-Farm erstellen

Mit dem folgenden Befehl wird eine neue ADFS-Farm erstellt. Zertifikat-Thumbprint und Domain müssen natürlich angepasst werden:

Install-AdfsFarm `
-CertificateThumbprint:"Thumbprint des Zertifikats hier einfügen" `
-FederationServiceDisplayName:"ADFS Domain " `
-FederationServiceName:"fs.domain.at" `
-GroupServiceAccountIdentifier:"domain.at\gMSA-ADFS`$"Code-Sprache: JavaScript (javascript)

Im Anschluss sollte der Server neu gestartet werden.

ADFS-Konfiguration anpassen

Gegebenenfalls kann die Zertifikatsgültigkeit „CertificateDuration“ angepasst werden:

Set-AdfsProperties -EnableIdPInitiatedSignonPage $true
Set-AdfsProperties -CertificateDuration 3650
Update-ADFSCertificate -CertificateType Token-Signing -Urgent
Update-ADFSCertificate -CertificateType Token-Decrypting -UrgentCode-Sprache: JavaScript (javascript)

Optional: weitere ADFS-Server zur ADFS-Farm hinzufügen

Falls ein weiterer ADFS-Server für eine hochverfügbare ADFS-Bereitstellung vorhanden ist, kann dieser mit nachstehendem Befehl zur ADFS-Farm hinzugefügt werden. Dafür muss natürlich auch dieser Server vorher zur AD-Gruppe „Allow-gMSA-ADFS“ hinzufügt und neu gestartet werden, sowie AD-Dienstkonto und SSL-Zertifikat installiert werden!

Add-AdfsFarmNode -GroupServiceAccountIdentifier domain.at\gMSA-ADFS$ -PrimaryComputerName adfs -CertificateThumbprint "Thumbprint des Zertifikats hier einfügen"Code-Sprache: JavaScript (javascript)

WAP-Server installieren

SSL-Zertifikat installieren

In diesem Schritt wird das öffentlich gültige SSL-Zertifikat installiert. Der Thumbprint des Zertifikats wird für den nächsten Befehl benötigt.

$pw = ConvertTo-SecureString -String "Passwort des Zertifikats" -Force -AsPlainText
Import-PfxCertificate -FilePath c:\zertifikat.pfx cert:\localMachine\my -Password $pwCode-Sprache: PHP (php)

Web Application Proxy (WAP) installieren

Die Serverrolle Web Application Proxy (WAP) wird wie folgt installiert (Thumbprint aus vorherigem Schritt):

Install-WindowsFeature Web-Application-Proxy -IncludeManagementTools
Install-WebApplicationProxy -CertificateThumbprint "Thumbprint des Zertifikats hier einfügen" -FederationServiceName "fs.domain.at"Code-Sprache: JavaScript (javascript)

ADFS Konfiguration sichern

Neben einer regelmäßigen Systemsicherung der Server, bietet Microsoft mit dem Rapid Restore Tool auch die Möglichkeit eines ADFS-Konfigurationsbackups via PowerShell an:

Import-Module 'C:\Program Files (x86)\ADFS Rapid Recreation Tool\ADFSRapidRecreationTool.dll'
Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\ADFS-Backup\" -EncryptionPassword "Passwort setzen" -BackupComment "Clean Install of ADFS (FS)" -BackupDKMCode-Sprache: JavaScript (javascript)

Falls Export des Zertifikats nicht möglich war und folgende Meldung erscheint:

„WARNUNG: Failed to export the SSL certificate with its corresponding key, certificate thumbprint: 0066A…CA92BD. Please store this cert and have it on the new machine before running a restore“

kann das Zertifikat manuell oder mit folgendem PowerShell-Script gesichert werden:

$certRefs=Get-AdfsCertificate -CertificateType Token-Signing
$certBytes=$certRefs[0].Certificate.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert)
[System.IO.File]::WriteAllBytes("c:\ADFS-Backup\adfs-token-signing.cer", $certBytes)Code-Sprache: PHP (php)

Quelle: Microsoft.com

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

20 − 15 =