Teil 28b: Active Directory Federation Services konfigurieren

In diesem Teil möchte ich die Active Directroy Federation Services konfigurieren. AD FS (Active Directory Verbunddienste) ist ein Feature des Windows Server-Betriebssystems, welches den Zugriff auf Webdienste und -anwendungen von außerhalb des Unternehmens (Firewall-Grenzen) mittels Single Sign-On erweitert.

Als Referenz verwende ich Deploy Work Folders with AD FS and Web Application Proxy.

Meine Server habe ich mittels MDT nach Teil 19c: Windows Server 2012 R2 mit MDT verteilen installiert:

  • DC1.intern.einfaches-netzwerk.at
    • IP-Adresse: 192.168.150.1
  • EDGE1.intern.einfaches-netzwerk.at
    • IP-Adresse intern: 192.168.150.254
    • IP-Adresse extern: 131.107.0.3
  •  ADFS1.intern.einfaches-netzwerk.at
    • IP-Adresse: 192.168.150.3
  • WAP1 (non-domain-joined, nach dem Aufsetzen aus der Domäne entfernt)
    • IP-Adresse intern: 192.168.150.4
    • IP-Adresse extern: 131.107.0.4
  • APP1.intern.einfaches-netzwerk.at (SyncServer, WorkFolders)
    • IP-Adresse: 192.168.150.2
  • CLIENT1.intern.einfaches-netzwerk.at (domain-joined)
    • IP-Adresse: DHCP
  • CLIENT2 (non-domain-joined, nach dem Aufsetzen aus der Domäne entfernt)
    • IP-Adresse: DHCP

Active Directory Federation Services konfigurieren – Schritte:

  • KDS-Rootkey erzeugen
  • Group Managed Service Account erstellen
  • ADServiceAccount auf ADFS1 installieren
  • SSL-Zertifikat für AD FS ausstellen
  • Die Server-Rolle AD FS installieren
  • Relying Party Trust für Arbeitsordner hinzufügen
  • Workplace Join aktivieren
  • Überprüfen, ob AD FS funktioniert

KDS-Rootkey erzeugen

Der KDS-RootKey (Microsoft Group Key Distribution Service) muss für die Verwendung von Group Managed Service Accounts nur einmal in Active Directory erzeugt werden. Nach Ausführen des Cmdlets muss man 10 Stunden warten, bis alle DCs repliziert sind. Also am Besten am Abend bevor man den ersten ADServiceAccount erstellen möchte. Es gibt zwar einen einfachen Workaround, der sollte aber nur in Testumgebungen verwendet werden:

Add-KdsRootKey –EffectiveTime ((Get-Date).AddHours(-10))
  1. Als Administrator an DC1 anmelden
  2. PowerShell als Administrator starten
  3. Mit folgendem Befehl den KDS-Rootkey erzeugen
    Add-KDSRootKey -EffectiveImmediately
  4. PowerShell-Cmdlet
    ADFS-003
  5. Mit folgendem Befehl den KDS-RootKey abrufen…
    Get-KDSRootKey
  6. PowerShell-Cmdlet
    ADFS-004
  7. …und testen
    Test-KDSRootKey -KeyID <key-id>
  8. PowerShell-Cmdlet
    ADFS-005

Gespeichert wird der KDS-RootKey in der Konfigurationspartition von Active Directory:

  1. Server Manager > Tools > ADSI Edit
  2. ADSI Edit rechts anklicken > Connect to…
  3. Unter Connection Point den Naming Context auf Configuration ändern > OK
    ADFS-006
  4. CN=Configuration\CN=Services\CN=Group Key Distribution Service erweitern
  5. CN=Master Root Keys anklicken > im Detailbereich ist der KDS-RootKey zu finden
    ADFS-007
  6. Fenster schließen

Group Managed Service Account erstellen

Als Dienstkonto für AD FS möchte ich die mit Windows Server 2012 eingeführten Group Managed Service Accounts nutzen. Damit wurde das Problem der Passwörter für Dienstkonten gelöst (siehe Group Managed Service Accounts Overview). Zuerst erstelle ich eine Sicherheitsgruppe mit dem Computerkonto von ADFS1 und berechtige diese Gruppe ein verwaltetes Passwort zu erhalten. Danach erst erstelle ich das Dienstkonto.

  1. Auf DC1 > Server Manager > Tools > Active Directory Users and Computers
  2. intern.einfaches-netzwerk.at\Einfaches-Netzwerk erweitern
  3. In der OU Sicherheitsgruppen folgende globale Sicherheitsgruppe erstellen
    1. Allow-gMSA-ADFS
      ADFS-001
  4. Das Computerkonto ADFS1 zur Gruppe hinzufügen
    ADFS-002
  5. ADFS1 auch zur Gruppe IIS Web Server hinzufügen, damit ein SSL-Zertifikat ausgestellt werden kann (siehe Teil 6j: Eine Zertifikatsvorlage für Web Server erstellen)
  6. PowerShell als Administrator starten
  7. Mit folgendem Befehl das Dienstkonto erstellen
    New-ADServiceAccount -Name gMSA-ADFS `
         -DNSHostName adfs1.intern.einfaches-netzwerk.at `
         -PrincipalAllowedToRetrieveManagedPassword Allow-gMSA-ADFS ` 
         -ServicePrincipalNames http/adfs,http/adfs.einfaches-netwzerk.at
  8. PowerShell-Cmdlet
    ADFS-008
  9. Zur Kontrolle kann man in der Active Directory Users and Computers-Konsole auf den Container Managed Service Accounts klicken
    ADFS-009
  10. Fenster schließen

ADServiceAccount auf ADFS1 installieren

  1. Falls der Server ADFS1 eingeschaltet ist, aufgrund der neuen Gruppenzugehörigkeiten neu starten
  2. Als Administrator an ADFS1 anmelden
  3. PowerShell als Administrator starten
  4. Mit folgendem Befehl die Active Directory AD-Tools installieren
    Add-WindowsFeature -Name RSAT-AD-Tools
  5. PowerShell Cmdlet
    ADFS-010
  6. Mit folgendem Befehl das Dienstkonto installieren
    Install-ADServiceAccount -Identity gMSA-ADFS
  7. PowerShell Cmdlet
    ADFS-011

SSL-Zertifikat für AD FS ausstellen

  1. Eine MMC als Admin starten
  2. Das Snap-in Certificates für das lokale Computerkonto hinzufügen
  3. Den Ordner Personal rechts anklicken > All Tasks > Request New Certificate…
  4. Folgendes Web Server Zertifikat anfordern
    1. Subject name
      1. Type: Common name
      2. Value: adfs.einfaches-netzwerk.at
    2. Alternative name
      1. Type: DNS
      2. Value: adfs1.intern.einfaches-netzwerk.at
      3. Value: adfs.einfaches-netzwerk.at
      4. Value: enterpriseregistration.intern.einfaches-netzwerk.at
      5. Value: enterpriseregistration.einfaches-netzwerk.at
        ADFS-021
    3. Friendly name: ADFS SSL Certificate
      ADFS-022
    4. WICHTIG: Private Key > Make private key exportable > OK
      ADFS-023
  5. Das ausgestellte Zertifikat rechts anklicken > All Tasks > Manage Private Keys…
    ADFS-024
  6. Das Dienstkonto gMSA-ADFS hinzufügen und mindestens Leserechte geben
    ADFS-025
  7. Das ausgestellte Zertifikat rechts anklicken > All Tasks > Export…
  8. Das Zertifikat
    1. mit Private Key
    2. dem Passwort Password1
    3. nach \\APP1\Sourcen\ADFS\adfs.pfx exportieren
  9. Alle Fenster schließen

 Die Server-Rolle AD FS installieren

  1. Server Manager > Manage > Add Roles and Features
  2. Add Roles and Features Wizard
    1. Before You Begin > Next
    2. Installation Type: Role-based or feature-based installation > Next
    3. Server Selection: ADFS1.intern.einfaches-netzwerk.at > Next
    4. Server Roles: Active Directory Federation Services > Next
      ADFS-026
    5. Features > Next
    6. AD FS > Next
    7. Confirmation > Install
    8. Results > Close
  3. Server Manager > Notifications > Configure the federation service on this server.
    ADFS-027
  4. Active Directory Federation Services Configuration Wizard (was für ein Name 😉 )
    1. Welcome > Create the first federation server in a federation server farm > Next
      ADFS-028
    2. Connect to AD DS > Next
      ADFS-029
    3. Specify Service Properties
      1. SSL Certificate: adfs.einfaches-netzwerk.at
      2. Federation Service Name: adfs.einfaches-netzwerk.at
      3. Federation Service Display Name: Einfaches-Netzwerk ADFS > Next
        ADFS-030
    4. Specify Service Account
      1. Use an existing domain user account or group Managed Service Account
      2. Account name: INTERN\gMSA-ADFS > Next
        ADFS-031
    5. Specify Database: Create a database on this server using WID > Next
      ADFS-032
    6. Review Options > Next
      ADFS-033
    7. Pre-requisite Checks > Configure
      ADFS-034
    8. Results > Close
      ADFS-035

Relying Party Trust für Arbeitsordner hinzufügen

  1. Server Manager > Tools > AD FS Management
  2. Auf der rechten Seite auf Add Relying Party Trust… klicken
    ADFS-036
  3. Add Relying Party Trust Wizard
    1. Welcome > Start
    2. Select Data Source: Enter data about relying party manually
      ADFS-037
    3. Specify Display Name
      1. Display name: Arbeitsordner > Next
        ADFS-038
    4. Choose Profile: ADFS profile > Next
    5. Configure Certificate > Next
    6. Configure URL > Next
    7. Configure Identifiers
      1. https://Windows-Server-Work-Folders/V1 > Add > Next
        ADFS-039
    8. Configure Multi-factor Authentication Now? > Next
    9. Choose Issuance Authorization Rules
      1. Permit all users to access this relying party > Next
    10. Ready to Add Trust > Next
    11. Finish > Close
  4. Edit Claim Rules for Arbeitsordner
    1. Reiter Issuance Transform Rules > Add Rule…
      ADFS-040
    2. Add Transform Claim Rule Wizard
      1. Choose Rule Type
        1. Send LDAP Attributes as Claims > Next
          ADFS-041
      2. Configure Claim Rule
        1. Claim rule name: Arbeitsordner
        2. Attribute store: Active Directory
        3. Mapping of LDAP attributes to outgoing claim type:
          1. User-Principal-Name > UPN
          2. Display Name > Name
          3. Surname > Surname
          4. Given-Name > Given Name
            ADFS-042
      3. Finish
    3. Fenster mit OK schließen
      ADFS-043
  5. Alle Fenster schließen
  6. PowerShell als Administrator starten
  7. Mit folgendem Befehl JSON Web Token aktivieren
    Set-ADFSRelyingPartyTrust -TargetIdentifier "https://Windows-Server-Work-Folders/V1" `
        -EnableJWT $true
  8. Mit folgendem Befehl die Verschlüsselung der Claims deaktivieren
    Set-ADFSRelyingPartyTrust -TargetIdentifier "https://Windows-Server-Work-Folders/V1" `
        -Encryptclaims $false
  9. Mit folgendem Befehl Autoupdate aktivieren
    Set-ADFSRelyingPartyTrust -TargetIdentifier "https://Windows-Server-Work-Folders/V1" `
        -AutoupdateEnabled $true
  10. Mit folgendem Befehl das Ausstellen von OAuth Refresh Tokens (siehe OAuth – Wikipedia) für alle Geräte aktivieren
    Set-ADFSRelyingPartyTrust -TargetIdentifier "https://Windows-Server-Work-Folders/V1" `
        -IssueOAuthRefreshTokensTo AllDevices
  11. PowerShell Cmdlets
    ADFS-044

Workplace Join aktivieren

Workplace Join ist optional, ermöglicht aber den Anwendern den Zugriff auf Ressourcen mit privaten Geräten.

  1. PowerShell als Administrator starten
  2. Mit folgenden Befehlen Workplace Join aktivieren
    Initialize-ADDeviceRegistration -ServiceAccountName INTERN\gMSA-ADFS$
    Enable-ADFSDeviceRegistration
    Set-ADFSGlobalAuthenticationPolicy -DeviceAuthenticationEnabled $true
  3. PowerShell Cmdlets
    ADFS-045

Überprüfen, ob AD FS funktioniert

  1. Internet Explorer starten
  2. Mit folgender URL die Funktionalität von AD FS testen
    https://adfs.einfaches-netzwerk.at/adfs/ls/idpinitiatedsignon.htm
  3. Anmelden
    ADFS-046

Soweit funktionierts! 🙂

Schreibe einen Kommentar

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