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 DNSHostName
et comment dois-je décider à quoi le régler?
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 DNSHostName
et comment dois-je décider à quoi le régler?
Réponses:
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.
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).
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 DNSHostName
paramètre lorsqu'il a démontré la New-ADServiceAccount
cmdlet. Si je comprends bien, DNSHostName
indique 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é DNSHostName
un 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 DNSHostName
paramètre.
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
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.
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
dNSHostName
comme il est défini pour l'objet AD-Computer (sAMAccountName
+ et votre suffixe de domaine)
… car:
msDS-GroupManagedServiceAccount
hérite de AD-Computer
(en termes de schéma AD), exigeant ainsi que cela soit fourniConsultez ce lien: http://blogs.technet.com/b/askpfeplat/archive/2012/12/17/windows-server-2012-group-managed-service-accounts.aspx
DNSHostName est le nom de domaine complet de votre nom de compte de service.
New-ADServiceAccount -name -DNSHostName