Skip to content

Compte de service

Compte de service “Simple”

On peut aussi Crée des comptes Utilisateurs “simple” dans une OU dédier.

Voire ici pour voire la GPO dédier : [/Microsoft/ActiveDirectory/GPO/SArestriction(../../Microsoft/ActiveDirectory/GPO/SArestriction.md)

Compte de service GMSA

Prérequis

le service Key Distribution Service doit être en cours d'exécution et une clé racine doit être générée. Pour créer une clé à partir du contrôleur de domaine, nous allons utiliser PowerShell et le cmdlet Add-KdsRootKey.

Add-KdsRootKey -EffectiveImmediately

(il faut potentiellement attendre 10 heures avant que la clée soit générer)

Les clés Kds sont visibles dans la console "Sites et services Active Directory", en activant l'option "Afficher le nœud des services" dans le menu "Affichage".

Ensuite, parcourez de cette façon : Services > Group Key Distribution Service > Master Root Keys (Attention cocher l'option “Afficher le nœud des services”)

Création du compte gMSA

Une fois la création de la clé nous pouvons ajouter le compte gMSA

New-ADServiceAccount -Name "gMSA-01" -Description "gMSA test" -DNSHostName "gmsa-01.domain.local" -ManagedPasswordIntervalInDays 30 -PrincipalsAllowedToRetrieveManagedPassword SRV-MGMT-01$,SRV-MGMT-02$   -Enabled $True

On peut par la suite modifier le compte de service :

Set-ADServiceAccount gMSA-01 -PrincipalsAllowedToRetrieveManagedPassword SRV-MGMT-01$,SRV-MGMT-02$

Ou voir les propriété du compte de service :

Get-ADServiceAccount gMSA-01 -Properties PrincipalsAllowedToRetrieveManagedPassword
  • ManagedPasswordIntervalInDays : sert à indiquer que le mot de passe doit être réinitialisé tous les X jours. Cette action est automatique et ne nécessite aucune action de maintenance. Cet attribut est à définir lors de la création du gMSA, ensuite il est en lecture seule (read only).
  • PrincipalsAllowedToRetrieveManagedPassword : sert à indiquer l'objet qui pourra utiliser ce gMSA et va écrire l'attribut msDS-GroupMSAMembership au niveau de l'objet gMSA. Bien entendu, il est possible d'autoriser d'autres objets par la suite puisqu'un gMSA est utilisable par plusieurs hôtes.
  • DNSHostName : nom DNS de cet objet gMSA

Lorsque le gMSA est créé, nous pouvons le retrouver dans l'annuaire Active Directory au sein du container "Managed Service Account".

L'objet gMSA étant créé, il faut que l'on ajoute ce compte de service à notre objet ordinateur SRV-MGMT-01 pour l'associer. Pour cette action, le cmdlet à utiliser est Add-ADComputerServiceAccount, avec deux paramètres : -Identity pour le nom du serveur et -ServiceAccount pour le nom ou des services à lier.

Ce qui donne :

Add-ADComputerServiceAccount -Identity SRV-MGMT-01 -ServiceAccount gMSA-01

Si l'on regarde notre objet ordinateur dans l'AD, à savoir l'objet "SRV-MGMT-01", on peut voir qu'il y a eu une modification de l'attribut msDS-HostServiceAccount. Cet attribut contient désormais une valeur correspondante à notre gMSA "gMSA-01".

on peut ensuite ajouter le compte dans le groupe administrateur du domaine :

Add-ADGroupMember -Identity "Administrateur" -Members "gMSA-01"

Ajouter le gMSA sur le serveur

Pour être utilisé sur un serveur, le gMSA doit être installé sur ce serveur à l'aide d'un cmdlet qui est intégré au module PowerShell "ActiveDirectory". Si vous intervenez sur un serveur qui n'est pas contrôleur de domaine, vous devez installer ce module. Cela s'effectue tout simplement avec la commande suivante :

Add-WindowsFeature RSAT-AD-PowerShell

L'installation prendra seulement quelques secondes et ne nécessite pas de redémarrer le serveur.

Install-ADServiceAccount gMSA-01

Une fois installé, vous pouvez tester que c'est OK grâce à la commande suivante :

Test-AdServiceAccount -Identity gMSA-01

On peut tester si le compte de service fonctionne bien avec un test de tache planifier :

Dans le planificateur de tache quand on crée une nouvelle taches cliquez sur "Emplacements" et sélectionnez "Tout l'annuaire" (et non votre domaine) puis "Types d'objets" afin de sélectionner "Des comptes de service"

Une fois que c'est fait, saisissez le nom de votre gMSA (ou le début de son nom) et cliquez sur "Vérifiez les noms". Le gMSA doit être trouvé : il ne reste plus qu'à cliquer sur "OK".

Source : IT-Connect

Utilisation d'un compte de service gMSA

Exécuter une tache planifier

Pour exécuter une tache planifier avec le compte de service :

Dans le planificateur des taches aller dans les propriétés de la tache désirer.

Changer l'utilisateur. Dans l'onglet "utilisateur et groupe" cliqué sur "locations" et sélectionner "Entire Directory"

Ensuite dans la section "type d'objet" sélectionné "Service Accounts"

Warning

Pour utiliser le compte de service, il faut uniquement cocher "service account" dans les types d'objet, sinon ils ne s'afficheront pas.

On écrit le nom du compte de service que l'on désire et qui à été installé sur le serveur

Configuration du compte avec un service

Ont peut utiliser le compte gMSA pour exécuté des services Windows

Dans la console de gestion des services aller dans le service que l'on souhaite modifier clique droit propriété.

dans l'onglet connexion cliqué sur parcourir :

Changer l'utilisateur. Dans l'onglet "utilisateur et groupe" cliqué sur "locations" et sélectionner "Entire Directory"

Ensuite dans la section "type d'objet" sélectionné "Service Accounts"

Exécuter un script de test

Les comptes de service gérés (MSA) sont destinés à s’exécuter en tant que service et ne doivent pas être utilisés par un utilisateur final pour ouvrir une session interactive ; Cependant, il existe certains cas où cela est nécessaire pour le dépannage.

Dans le menu Démarrer, si vous faites un clic droit sur l’icône PowerShell, sélectionnez Plus, puis cliquez sur « Exécuter en tant qu’utilisateur différent », une boîte d’informations d’identification apparaîtra.

Entrez le nom du compte gMSA et cliquez sur OK.

Vous obtiendrez immédiatement une erreur. En effet, Active Directly gère le compte pour vous, nous n’avons donc aucun moyen de savoir quel est le mot de passe du compte.

Il existe un utilitaire qui nous permettra de contourner ce problème. Il s’appelle PsExec et il est un téléchargement gratuit à partir de Windows SysInternals.

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

Une fois que vous avez téléchargé l’utilitaire, décompressez le fichier ZIP dans un dossier sur le serveur. Ensuite, nous devons ouvrir une fenêtre PowerShell en tant qu’administrateur, passer au dossier qui contient PsExec.exe et exécuter la commande suivante. L’option « -u GOVLAB\DEATHSTAREN5$ » spécifie le nom de notre gMSA et « cmd.exe » est le nom du programme que nous allons exécuter en utilisant ces informations d’identification. L’option « -i » permet à la session d’être interactive avec le bureau.

PsExec.exe -i -u GOVLAB\DEATHSTAREN5$ cmd.exe

À ce stade, vous serez invité à entrer un mot de passe. Laissez ce champ vide et appuyez simplement sur Entrée pour continuer. Une nouvelle fenêtre d’invite de commandes s’ouvre et s’exécute sous les informations d’identification gMSA.

Dans la capture d’écran suivante, j’ai ouvert la fenêtre PowerShell et exécuté « whoami » pour afficher mes informations d’identification actuelles. Ensuite, j’ai utilisé PsExec pour ouvrir une invite de commande en tant que compte gMSA. Ensuite, j’ai de nouveau lancé « whoami » pour montrer que je courais maintenant sous des informations d’identification différentes. Pour faire bonne mesure, j’ai également exécuté une commande TSQL à l’aide de SQLCMD pour vérifier mes informations d’identification.

Cet exemple a montré comment ouvrir une invite de commandes en tant que gMSA, mais vous pouvez spécifier tout autre programme dont vous pourriez avoir besoin pour le test ; par exemple, Management Studio.