Delegieren des AD FS-PowerShell-Cmdlet-Zugriffs an Benutzer*innen ohne Administratorrechte

Standardmäßig können nur AD FS-Administrator*innen die AD FS-Verwaltung über PowerShell ausführen. Für viele große Organisationen ist dies möglicherweise kein praktikables Betriebsmodell, wenn es sich um andere Personas wie Helpdeskmitarbeiter handelt.

Mit „Just Enough Administration“ (JEA) können Kund*innen jetzt Berechtigungen für bestimmte Cmdlets an verschiedene Mitarbeitergruppen delegieren.

Ein gutes Beispiel für diesen Anwendungsfall ist es, Helpdeskmitarbeiter*innen das Abfragen des Status der AD FS-Kontosperre und das Zurücksetzen des Kontosperrungszustands in AD FS zu gestatten, sobald ein*e Benutzer*in überprüft wurde. In diesem Fall müssten folgende Cmdlets delegiert werden:

  • Get-ADFSAccountActivity
  • Set-ADFSAccountActivity
  • Reset-ADFSAccountLockout

Dieses Beispiel wird im Rest dieses Dokuments verwendet. Sie können dies jedoch so anpassen, dass auch die Delegierung zum Festlegen von Eigenschaften vertrauender Parteien und deren Weitergabe an Anwendungsbesitzer*innen innerhalb der Organisation zulässig ist.

Erstellen der Gruppen, die notwendig sind, um Benutzern Berechtigungen zu erteilen

  1. Erstellen Sie ein gruppenverwaltetes Dienstkonto. Das gMSA-Konto wird verwendet, um dem JEA-Benutzer den Zugriff auf Netzwerkressourcen wie andere Computer oder Webdienste zu ermöglichen. Es stellt Ihnen eine Domänenidentität bereit, mit der Sie sich bei Ressourcen auf einem beliebigen Computer innerhalb der Domäne authentifizieren können. Dem gMSA-Konto werden später beim Einrichten die erforderlichen Administratorrechte erteilt. In diesem Beispiel trägt das Konto den Namen gMSAContoso.
  2. Erstellen Sie eine Active Directory-Gruppe, die mit Benutzern aufgefüllt werden kann, denen die Rechte für die delegierten Befehle erteilt werden müssen. In diesem Beispiel erhalten Helpdeskmitarbeiter Berechtigungen zum Lesen, Aktualisieren und Zurücksetzen des AD FS-Sperrzustands. Wir bezeichnen diese Gruppe im gesamten Beispiel als JEAContoso.

Installieren des gMSA-Kontos auf dem AD FS-Server

Erstellen Sie ein Dienstkonto, das über Administratorrechte für die AD FS-Server verfügt. Dies kann auf dem Domänencontroller oder remote ausgeführt werden, solange das AD RSAT-Paket installiert ist. Das Dienstkonto muss in derselben Gesamtstruktur wie der AD FS-Server erstellt werden.

Ändern Sie die Beispielwerte entsprechend der Konfiguration Ihrer Farm.

 # This command should only be run if this is the first time gMSA accounts are enabled in the forest
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10)) 

# Run this on every node that you want to have JEA configured on
$adfsServer = Get-ADComputer server01.contoso.com

# Run targeted at domain controller
$serviceaccount = New-ADServiceAccount gMSAcontoso -DNSHostName <FQDN of the domain containing the KDS key> -PrincipalsAllowedToRetrieveManagedPassword $adfsServer –passthru

# Run this on every node
Add-ADComputerServiceAccount -Identity server01.contoso.com -ServiceAccount $ServiceAccount

Installieren Sie das gMSA-Konto auf dem AD FS-Server. Dies muss auf jedem AD FS-Knoten in der Farm ausgeführt werden.

Install-ADServiceAccount gMSAcontoso

Gewähren von Administratorrechten für das gMSA-Konto

Wenn die Farm delegierte Verwaltung verwendet, gewähren Sie dem gMSA-Konto Administratorrechte, indem Sie es der vorhandenen Gruppe hinzufügen, die über delegierten Administratorzugriff verfügt.

Wenn die Farm keine delegierte Verwaltung verwendet, erteilen Sie dem gMSA-Konto Administratorrechte, indem Sie es zur lokalen Verwaltungsgruppe auf allen AD FS-Servern machen.

Erstellen der JEA-Rollendatei

Erstellen Sie auf dem AD FS-Server die JEA-Rolle in einer Editor-Datei. Anweisungen zum Erstellen der Rolle finden Sie unter JEA-Rollenfunktionen.

Die in diesem Beispiel delegierten Cmdlets lauten Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity.

JEA-Beispielrolle, die den Zugriff auf die Cmdlets „Reset-ADFSAccountLockout“, „Get-ADFSAccountActivity“ und „Set-ADFSAccountActivity“ delegiert:

@{
GUID = 'b35d3985-9063-4de5-81f8-241be1f56b52'
ModulesToImport = 'adfs'
VisibleCmdlets = 'Reset-AdfsAccountLockout', 'Get-ADFSAccountActivity', 'Set-ADFSAccountActivity'
}

Erstellen der JEA-Sitzungskonfigurationsdatei

Befolgen Sie die Anweisungen zum Erstellen der JEA-Sitzungskonfigurationsdatei. Die Konfigurationsdatei bestimmt, wer den JEA-Endpunkt verwenden kann und auf welche Funktionen Zugriff möglich ist.

Auf die Rollenfunktionen wird mit dem flachen Namen (Dateiname ohne Erweiterung) der Rollenfunktionsdatei verwiesen. Sind im System mehrere Rollenfunktionen mit demselben flachen Namen verfügbar, verwendet PowerShell die implizite Suchreihenfolge, um die gültige Rollenfunktionsdatei auszuwählen. Sie erteilt keinen Zugriff auf alle Rollenfunktionsdateien mit demselben Namen.

Um eine Rollenfunktionsdatei mit einem Pfad anzugeben, verwenden Sie das Argument RoleCapabilityFiles. Bei einem Unterordner sucht JEA nach gültigen PowerShell-Modulen, die einen Unterordner RoleCapabilities enthalten, wobei das Argument RoleCapabilityFiles in RoleCapabilities geändert werden sollte.

Beispiel für eine Sitzungskonfigurationsdatei:

@{
SchemaVersion = '2.0.0.0'
GUID = '54c8d41b-6425-46ac-a2eb-8c0184d9c6e6'
SessionType = 'RestrictedRemoteServer'
GroupManagedServiceAccount =  'CONTOSO\gMSAcontoso'
RoleDefinitions = @{ JEAcontoso = @{ RoleCapabilityFiles = 'C:\Program Files\WindowsPowershell\Modules\AccountActivityJEA\RoleCapabilities\JEAAccountActivityResetRole.psrc' } }
}

Speichern Sie die Sitzungskonfigurationsdatei.

Es wird empfohlen, Ihre Sitzungskonfigurationsdatei zu testen, wenn Sie die PSSC-Datei manuell mithilfe eines Text-Editors bearbeitet haben, um eine korrekte Syntax zu gewährleisten. Wenn eine Sitzungskonfigurationsdatei diesen Test nicht besteht, ist sie nicht erfolgreich auf dem System registriert.

Installieren der JEA-Sitzungskonfiguration auf dem AD FS-Server

Installieren der JEA-Sitzungskonfiguration auf dem AD FS-Server

Register-PSSessionConfiguration -Path .\JEASessionConfig.pssc -name "AccountActivityAdministration" -force

Betriebsanleitung

Nach der Einrichtung können JEA-Protokollierung und -Überwachung verwendet werden, um zu bestimmen, ob die richtigen Benutzer*innen Zugriff auf den JEA-Endpunkt haben.

So verwenden Sie die delegierten Befehle

Enter-pssession -ComputerName server01.contoso.com -ConfigurationName "AccountActivityAdministration" -Credential <User Using JEA>
Get-AdfsAccountActivity <User>