Définir le nom d'hôte DNS pour le compte de service géré?

14

La documentation contient l'exemple:

New-ADServiceAccount service1 -DNSHostName service1.contoso.com -Enabled $true

Ce paramètre est obligatoire. Quel est exactement le but d'un DNSHostNameet comment dois-je décider à quoi le régler?

Jason Kresowaty
la source

Réponses:

7

Après avoir travaillé pendant un certain temps avec ces comptes, je pense avoir découvert la raison:

Ils sont un sous-ensemble, ou peut-être dérivé des comptes de type machine. Par conséquent, ils héritent de cette propriété, et comme elle est requise pour le type de machine, elle est également requise pour gMSA.

Vous pouvez vérifier que les deux types correspondent étroitement dans leurs ensembles d'attributs. De plus, dans toute la documentation TechNet , ils donnent simplement une valeur unique simple pour cet attribut gmsa-name.contoso.com, tout comme un compte d'ordinateur le possède.

Je ne sais pas pourquoi ils ne l'ont pas généré automatiquement, et nous épargnent les questions et la frappe.

Stoinov
la source
Il y a des implications importantes pour les SPN, comme expliqué par cette réponse
alifen
4

Le DNSHostName doit être le nom de votre service. Dans le cas d'un cluster, ce serait le nom de votre instance virtuelle.

DNSHostName est lié à l'enregistrement automatique SPN du compte. Dans Active Directory, les ordinateurs et les GMSA ont l'autorisation "Autoriser l'écriture validée sur ServicePrincipalName". Cela signifie qu'un ordinateur ne peut enregistrer que des SPN contenant le nom de lui-même. Exemple: un ordinateur nommé Webserver1 (DNS: Webserver1.mydomain.net) peut enregistrer automatiquement http: /Webserver1.mydomain.net: 443 mais ne peut pas enregistrer http: /Webserver55.mydomain.net: 443

Ainsi, le DNSHostName d'un GMSA doit refléter les SPN que vous souhaitez enregistrer pour un service.

Sur un cluster SQL, vous auriez 2 hôtes: Host1 et host2. Un clusterName: Clu1 et une instance SQL virtuelle: SQL1 Si vous souhaitez utiliser un GMSA pour exécuter le service SQL1, vous devez le créer comme ceci.

$comp1 = get-adcomputer Host1

$comp2 = get-adcomputer Host2

New-ADServiceAccount -Name gmsa01 -DNSHostName sql1.mydomain.net -PrincipalsAllowedToRetrieveManagedPassword $comp1, $comp2 (vous pouvez également utiliser un groupe au lieu d'attribuer directement des droits aux hôtes).

Chaque fois que le service SQL démarre, il enregistre automatiquement 2 SPN: MSSQLSvc / sql1.mydomain.net MSSQLSvc / sql1.mydomain.net: 1433

Si vous placez autre chose dans DNSHostName (par exemple gmsa01.mydomain.net), le service continuera de démarrer, mais il échouera à enregistrer les SPN (et retombera à l'authentification NTLM).

Si vous ne vous souciez pas de l'authentification Kerberos (et des SPN) ou si vous êtes d'accord avec l'enregistrement manuel des SPN pour votre service, vous pouvez mettre ce que vous voulez dans DNSHostName. Le GMSA fonctionnera toujours.

Je ne recommanderais pas de mettre votre DomainController dans le DNSName comme mentionné précédemment (sauf si vous prévoyez d'utiliser le GMSA pour exécuter un service sur un contrôleur de domaine).

KNJ
la source
3

Je ne suis pas expert en la matière. Cependant, il y a une telle pénurie d'informations sur ce sujet que j'ai pensé qu'il valait la peine de publier ce que je sais

Le formateur d'un cours 70-411 que j'ai suivi a utilisé le FQDN d'un contrôleur de domaine comme valeur pour le DNSHostNameparamètre lorsqu'il a démontré la New-ADServiceAccountcmdlet. Si je comprends bien, DNSHostNameindique simplement à la cmdlet quel contrôleur de domaine sur lequel créer le compte. Je ne pense pas que le DC que vous utilisez importe, ces gMSA semblent se répliquer immédiatement de toute façon. J'ai pointé DNSHostNameun de mes contrôleurs de domaine et il semble fonctionner jusqu'à présent.

Je préfère vraiment qu'il y ait une documentation concrète à ce sujet. La référence de commande TechNet applicable n'est qu'un non-sens tautologique pour le DNSHostNameparamètre.

alx9r
la source
3

Lorsque vous ajoutez le paramètre -RestrictToSingleComputer, il n'est plus requis. Bien sûr, vous devez lire cette option avant de l'utiliser.

Comme:

New-ADServiceAccount service1 -Enabled $true -RestrictToSingleComputer
Bart van Kleef
la source
1
Cela en fait un compte MSA régulier au lieu de gMSA
Brain2000
1

Je cherchais une réponse depuis très longtemps et j'ai finalement trouvé une réponse qui me semble vraie.

-DNSHostName devrait être le nom de domaine complet de ce contrôleur de domaine qui détient la clé principale KDS - msKds-ProvRootKey.

Vous avez probablement déjà créé celui-ci - jetez un œil au conteneur Service de distribution de clés de groupe dans la partition de configuration de votre forêt AD.

Et vous pourriez probablement utiliser n'importe quel contrôleur de domaine dans cette forêt tant que vous définissez leurs noms dans -PrincipalsAllowedToRetrieveManagedPassword

Tout ce qui précède représente le "nouveau" gMSA, donc si vous souhaitez utiliser l'ancien MSA à la place, oubliez simplement ce -DNSHostName car il n'est pas requis alors et utilisez simplement -RestrictToSingleComputer en verrouillant un compte sur un serveur.

J'espère que cela pourra aider.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/9a66d1d5-44e9-4ea1-ba9c-88862023c4e1/why-does-a-gmsa-need-a-dns-host-name-eg- newadserviceaccount-dnshostname? forum = winserver8gen

Daniel
la source
1
Ce même fil a maintenant une meilleure réponse de Proed en janvier 2018. Cela a à voir avec la satisfaction de la hiérarchie d'héritage dans le schéma AD! Xref ma réponse .. Merci d'avoir trouvé ce fil!
David Bullock
1

Mon expérience semble indiquer qu'il cherche un DC. J'ai exécuté un test sur un serveur membre et j'ai été invité à entrer le nom -DNSHost. J'ai exécuté le même test à partir d'un contrôleur de domaine et je n'ai pas reçu l'invite.

Allen
la source
1

Citant la réponse de Proed le 17 janvier 2018 dans Pourquoi un gMSA a-t-il besoin d'un nom d'hôte DNS? (merci à @Daniel de l'avoir cité plus tôt).

Je recommanderais de définir le dNSHostNamecomme il est défini pour l'objet AD-Computer ( sAMAccountName+ et votre suffixe de domaine)

… car:

  • msDS-GroupManagedServiceAccounthérite de AD-Computer(en termes de schéma AD), exigeant ainsi que cela soit fourni
  • la convention recommandée donne un sens à tous les exemples existants
David Bullock
la source
là, je pensais que j'étais stupide de ne pas «l'avoir», et c'est encore une fois du mauvais doco
David Bullock