Назад | Перейти на главную страницу

Установить имя хоста DNS для учетной записи управляемой службы?

В документация содержит пример:

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

Этот параметр обязателен. Какова именно цель DNSHostName и как мне решить, на что его установить?

Поработав какое-то время с этими учетными записями, я думаю, что выяснил причину:

Они являются некоторым подмножеством или, возможно, производными от учетных записей машинного типа. Поэтому они наследуют это свойство от них, и, поскольку оно требуется для типа машины, оно также требуется для gMSA.

Вы можете проверить, что оба типа точно соответствуют в наборах атрибутов. Также во всех TechNet документация они просто дают простое уникальное значение для этого атрибута, gmsa-name.contoso.com, точно так же, как учетная запись машины.

Не уверен, почему они просто не сгенерировали его автоматически и избавили нас от удивления и набора текста.

DNSHostName должно быть именем вашей службы. В случае кластера это будет имя вашего виртуального экземпляра.

DNSHostName связано с автоматической регистрацией SPN учетной записи. В Active Directory компьютеры и GMSA имеют разрешение «Разрешить подтвержденную запись в ServicePrincipalName». Это означает, что компьютер может регистрировать только те SPN, которые содержат его собственное имя. Пример: компьютер с именем Webserver1 (DNS: Webserver1.mydomain.net) может автоматически зарегистрировать http: /Webserver1.mydomain.net: 443, но не может зарегистрировать http: /Webserver55.mydomain.net: 443

Итак, DNSHostName GMSA должно отражать, какие SPN вы хотите зарегистрировать для службы.

В кластере SQL у вас будет 2 хоста: Host1 и host2. Имя кластера: Clu1 и виртуальный экземпляр SQL: SQL1. Если вы хотите использовать GMSA для запуска службы SQL1, вы должны создать его следующим образом.

$comp1 = get-adcomputer Host1

$comp2 = get-adcomputer Host2

New-ADServiceAccount -Name gmsa01 -DNSHostName sql1.mydomain.net -PrincipalsAllowedToRetrieveManagedPassword $comp1, $comp2 (вы также можете использовать группу вместо непосредственного назначения прав хостам).

Каждый раз при запуске службы SQL она автоматически регистрирует 2 SPN: MSSQLSvc / sql1.mydomain.net MSSQLSvc / sql1.mydomain.net: 1433

Если вы укажете что-то еще в DNSHostName (например, gmsa01.mydomain.net), служба все равно запустится, но не сможет зарегистрировать SPN (и вернуться к проверке подлинности NTLM).

Если вас не интересует аутентификация Kerberos (и имена участников-служб) или если вас устраивает ручная регистрация имен участников-служб для своей службы, вы можете указать все, что хотите, в DNSHostName. GMSA по-прежнему будет работать.

Я бы не рекомендовал помещать ваш DomainController в DNSName, как упоминалось ранее (если вы не планируете использовать GMSA для запуска службы на контроллере домена).

Я не специалист в этом. Однако информации по этой теме так мало, что я подумал, что стоит опубликовать то, что я знаю

Тренер 70-411 конечно, я использовал полное доменное имя контроллера домена в качестве значения для DNSHostName параметр, когда он продемонстрировал New-ADServiceAccount командлет. Как я понимаю, DNSHostName просто сообщает командлету, на каком контроллере домена нужно создать учетную запись. Я не думаю, что имеет значение, какой DC вы используете, эти gMSA, похоже, в любом случае немедленно реплицируются. Я указывал DNSHostName на один из моих контроллеров домена и, похоже, пока он работает.

Мне бы очень хотелось, чтобы по этому поводу была какая-то конкретная документация. В применимый справочник команд TechNet это просто тавтологическая чушь для DNSHostName параметр.

Когда вы добавляете параметр -RestrictToSingleComputer, он больше не требуется. Конечно, вы должны прочитать об этой опции, прежде чем использовать ее.

Подобно:

New-ADServiceAccount service1 -Enabled $true -RestrictToSingleComputer

Я очень долго искал ответ и наконец нашел тот, который мне кажется верным.

-DNSHostName должно быть полным доменным именем того контроллера домена, который содержит главный ключ KDS - msKds-ProvRootKey.

Скорее всего, вы уже создали его - взгляните на контейнер службы распределения ключей группы в разделе конфигурации вашего леса AD.

И, вероятно, вы могли бы использовать любой DC в этом лесу, если вы задали их имена в -PrincipalsAllowedToRetrieveManagedPassword

Все вышеперечисленное представляет собой «новый» gMSA, поэтому, если вы хотите использовать вместо него старый MSA, просто забудьте об этом -DNSHostName, поскольку в этом случае оно не требуется, и просто используйте -RestrictToSingleComputer, блокируя учетную запись на каком-либо сервере.

Надеюсь, это поможет.

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

Мой опыт, кажется, указывает на то, что он ищет DC. Я запустил тест на рядовом сервере, и мне было предложено ввести -DNSHostName. Я запустил тот же тест с DC и не получил приглашения.

Цитируя ответ Proed 17 января 2018 г. в Зачем gMSA нужно имя хоста DNS? (спасибо @Daniel за цитирование ранее).

Я бы рекомендовал установить dNSHostName точно так же, как и для объекта AD-Computer (sAMAccountName + и суффикс вашего домена)

… так как:

  • msDS-GroupManagedServiceAccount наследуется от AD-Computer (с точки зрения схемы AD), что требует предоставления
  • рекомендуемая конвенция имеет смысл все существующие примеры

Посмотрите эту ссылку: http://blogs.technet.com/b/askpfeplat/archive/2012/12/17/windows-server-2012-group-managed-service-accounts.aspx

DNSHostName - это полное доменное имя вашей учетной записи службы.

New-ADServiceAccount -name -DNSHostName