Delegare l'accesso al commandlet di PowerShell di AD FS agli utenti non amministratori

Per impostazione predefinita, solo gli amministratori di AD FS possono eseguire l'amministrazione di AD FS tramite PowerShell. Per molte organizzazioni di grandi dimensioni, questo potrebbe non essere un modello operativo praticabile quando si tratta di altri utenti, ad esempio un personale dell'help desk.

Con Just Enough Administration (JEA), i clienti possono ora delegare le autorizzazioni per i commandlet specifici a gruppi di personale diversi.

Un buon esempio di questo caso d'uso è consentire al personale dell'help desk di eseguire query sullo stato di blocco dell'account AD FS e reimpostare lo stato di blocco dell'account in AD FS dopo che un utente è stato controllato. In questo caso, i commandlet da delegare sono:

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

Questo esempio viene usato nel resto di questo documento. Tuttavia, è possibile personalizzare questa opzione per consentire anche alla delega di impostare le proprietà delle relying party e di consegnarla ai proprietari delle applicazioni all'interno dell'organizzazione.

Creare i gruppi necessari per concedere agli utenti le autorizzazioni

  1. Creare un account del servizio gestito del gruppo. L'account del servizio gestito del gruppo viene usato per consentire all'utente JEA di accedere alle risorse di rete come altri computer o servizi Web. Fornisce un'identità di dominio che può essere usata per eseguire l'autenticazione su risorse in qualsiasi computer all'interno del dominio. All'account del servizio gestito del gruppo vengono concessi i diritti amministrativi necessari più avanti nella configurazione. Per questo esempio viene richiamato l'account gMSAContoso.
  2. La creazione di un gruppo di Active Directory può essere popolata con utenti a cui devono essere concessi i diritti ai comandi delegati. In questo esempio, al personale dell'help desk vengono concesse le autorizzazioni per la lettura, l'aggiornamento e la reimpostazione dello stato di blocco di AD FS. Questo gruppo viene indicato in tutto l'esempio come JEAContoso.

Installare l'account del servizio gestito del gruppo nel server AD FS

Creare un account del servizio con diritti amministrativi per i server AD FS. Questa operazione può essere eseguita nel controller di dominio o in remoto, purché sia installato il pacchetto di Strumenti di amministrazione remota del server di Active Directory. L'account del servizio deve essere creato nella stessa foresta del server AD FS.

Modificare i valori di esempio nella configurazione della 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

Installare l'account del servizio gestito del gruppo nel server AD FS. Questa operazione deve essere eseguita in ogni nodo AD FS della farm.

Install-ADServiceAccount gMSAcontoso

Concedere i diritti di amministratore dell'account del servizio gestito del gruppo

Se la farm usa l'amministrazione delegata, concedere i diritti di amministratore dell'account del servizio gestito del gruppo aggiungendolo al gruppo esistente, con accesso amministratore delegato.

Se la farm non usa l'amministrazione delegata, concedere i diritti di amministratore dell'account del servizio gestito del gruppo rendendolo il gruppo di amministrazione locale in tutti i server AD FS.

Creare il file di ruolo JEA

Nel server AD FS creare il ruolo JEA in un file del Blocco note. Le istruzioni per creare il ruolo vengono fornite nelle funzionalità del ruolo JEA.

I commandlet delegati in questo esempio sono Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity.

Ruolo JEA di esempio che delega l'accesso ai commandlet ‘Reset-ADFSAccountLockout', ‘Get-ADFSAccountActivity' e ‘Set-ADFSAccountActivity':

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

Creare il file di configurazione della sessione JEA

Seguire le istruzioni per creare il file di configurazione della sessione JEA. Il file di configurazione determina chi può usare l'endpoint JEA e a quali funzionalità può accedere.

Le funzionalità del ruolo fanno riferimento al nome flat (nome file senza estensione) del file di capacità del ruolo. Se nel sistema sono disponibili più funzionalità del ruolo con lo stesso nome flat, PowerShell usa l'ordine di ricerca implicito per selezionare il file di capacità del ruolo effettivo. Non concede l'accesso a tutti i file di capacità del ruolo con lo stesso nome.

Per specificare un file di funzionalità del ruolo con un percorso, usare l'argomento RoleCapabilityFiles. Per una sottocartella, JEA cerca moduli di PowerShell validi che contengono una sottocartella RoleCapabilities, in cui l'argomento RoleCapabilityFiles deve essere modificato in modo che sia RoleCapabilities.

File di configurazione di sessione di esempio:

@{
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' } }
}

Salvare il file di configurazione della sessione.

È consigliabile testare il file di configurazione della sessione se il file pssc è stato modificato manualmente usando un editor di testo per assicurarsi che la sintassi fosse corretta. Se un file di configurazione della sessione non supera questo test, non viene registrato correttamente nel sistema.

Installare la configurazione della sessione JEA nel server AD FS

Installare la configurazione della sessione JEA nel server AD FS

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

Istruzioni operative

Dopo la configurazione, è possibile usare la registrazione e il controllo JEA per determinare se gli utenti corretti hanno accesso all'endpoint JEA.

Per usare i comandi delegati:

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