Déléguer l’accès aux applets de commande Powershell AD FS à des utilisateurs non-administrateurs

Par défaut, seuls les administrateurs AD FS peuvent effectuer l’administration AD FS via PowerShell. Ce modèle n’est pas toujours un modèle opérationnel viable pour de nombreuses grandes organisations, quand ces personnes font partie du personnel du support technique.

Avec l’administration JEA (Just Enough Administration), les clients peuvent désormais déléguer des autorisations pour des applets de commande spécifiques à différents groupes du personnel.

Par exemple, vous autorisez le personnel du support technique à interroger l’état de verrouillage du compte AD FS et à le réinitialiser dès qu’un utilisateur a été approuvé. Voici les cmdlets qui doivent être déléguées dans ce cas :

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

Nous utilisons cet exemple dans le reste de ce document. Toutefois, vous pouvez aller plus loin dans la personnalisation en autorisant une délégation de personnes de confiance à définir des propriétés et les transmettre aux propriétaires d’application au sein de l’organisation.

Créer les groupes nécessaires pour accorder des autorisations aux utilisateurs

  1. Créer un compte de service administré de groupe. Le compte gMSA est utilisé pour permettre à l’utilisateur JEA d’accéder aux ressources réseau en tant qu’autres machines ou services web. Il fournit une identité de domaine utilisable pour s’authentifier sur les ressources de n’importe quelle machine du domaine. Les droits d’administration nécessaires sont accordés au compte gMSA ultérieurement dans l’installation. Dans cet exemple, nous appelons le compte gMSAContoso.
  2. Créer un groupe Active Directory pouvant être rempli avec des utilisateurs qui ont besoin des droits sur les commandes déléguées. Dans cet exemple, le personnel du support technique est autorisé à lire, mettre à jour et réinitialiser l’état de verrouillage AD FS. Dans cet exemple, nous appelons ce groupe JEAContoso.

Installer le compte gMSA sur le serveur AD FS

Créez un compte de service avec des droits d’administration sur les serveurs AD FS. Cette opération peut être effectuée sur le contrôleur de domaine ou à distance si le package RSAT (Outils d’administration de serveur distant) AD est installé. Le compte de service doit être créé dans la même forêt que le serveur AD FS.

Modifiez les exemples de valeurs dans la configuration de votre batterie de serveurs.

 # 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

Installez le compte gMSA sur le serveur AD FS. Cette opération doit être exécutée sur chaque nœud AD FS de la batterie de serveurs.

Install-ADServiceAccount gMSAcontoso

Accorder les droits d’administration au compte gMSA

Si la batterie de serveurs utilise une administration déléguée, accordez au compte gMSA les droits d’administration en l’ajoutant au groupe existant, qui a un accès d’administrateur délégué.

Si la batterie de serveurs n’utilise pas d’administration déléguée, accordez au compte gMSA les droits d’administration en le définissant comme groupe d’administration local sur l’ensemble des serveurs AD FS.

Créer le fichier de rôle JEA

Sur le serveur AD FS, créez le rôle JEA dans un fichier du Bloc-notes. Des instructions pour créer le rôle sont fournies dans Fonctionnalités du rôle JEA.

Les cmdlets déléguées de cet exemple sont Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity.

Exemple de rôle JEA avec accès délégué aux cmdlets « Reset-ADFSAccountLockout », « Get-ADFSAccountActivity » et « Set-ADFSAccountActivity » :

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

Créer le fichier de configuration de session JEA

Suivez les instructions pour créer le fichier de configuration de session JEA. Le fichier de configuration détermine qui peut utiliser le point de terminaison JEA et quelles sont les fonctionnalités auxquelles ils ont accès.

Les fonctionnalités de rôle sont référencées par le nom plat (nom du fichier sans l’extension) du fichier de fonctionnalités de rôle. Si plusieurs fonctionnalités de rôle sont disponibles sur le système avec le même nom, PowerShell utilise l’ordre de recherche implicite pour sélectionner le fichier de fonctionnalités de rôle effectif. Il ne donne pas accès à tous les fichiers de fonctionnalités de rôle du même nom.

Pour spécifier un fichier de fonctionnalités de rôle avec un chemin, utilisez l’argument RoleCapabilityFiles. Pour un sous-dossier, JEA recherche des modules PowerShell valides qui contiennent un sous-dossier RoleCapabilities, où l’argument RoleCapabilityFiles doit être modifié pour être défini sur RoleCapabilities.

Exemple de fichier de configuration de session :

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

Enregistrez le fichier de configuration de session.

Nous vous recommandons fortement de tester votre fichier de configuration de session si vous avez modifié le fichier pssc manuellement dans un éditeur de texte, pour vérifier que la syntaxe est correcte. Si le fichier de configuration de session ne réussit pas ce test, il n’est pas inscrit sur le système.

Installer la configuration de session JEA sur le serveur AD FS

Installer la configuration de session JEA sur le serveur AD FS

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

Instructions opérationnelles

Une fois la configuration effectuée, la journalisation et l’audit JEA peuvent être utilisés pour déterminer si les utilisateurs appropriés ont accès au point de terminaison JEA.

Pour utiliser les commandes déléguées :

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