Управляемые учетные записи служб (Managed Service Accounts, MSAs) появились в серверной операционной системе Windows Server 2008, а групповые управляемые учетные записи служб (Group Managed Service Accounts, gMSAs) были введены в ОС Windows Server 2012.
Для их внедрения и использования можно использовать PowerShell команды.
Первоначально определим переменные, которые будут в дальнейшем использоваться в скриптах:
$gMSA_Name = 'gmsaWWW'
$gMSA_FQDN = 'gmsaWWW.contoso.com'
$gMSA_SPNs = 'http/www', 'http/www.contoso.com'
$gMSA_HostNames = 'webServer01', 'webServer02', 'webServer03'
Шаг 1 - создание root-ключа KDS (служба распространения ключей) (требуется сделать один раз для домена). Он используется контроллером доменов для генерации паролей групповых управляемых учетных записей служб.
Команда создания root-ключа KDS:
Add-KDSRootKey -EffectiveTime (Get-Date).AddHours(-1)
Временная задержка в 10 часов необходима для безопасности, чтобы можно было убедиться, что все контроллеры домена реплицированы и могут отвечать на запросы gMSA.
Шаг 2 - получение всех аккаунтов, которые будут использовать gMSA:
$gMSA_HostsGroup = $gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ }
Или создание группы и добавление аккаунтов в нее:
$gMSA_HostsGroupName = "$($gMSA_Name)_HostsGroup"
$gMSA_HostsGroup = New-ADGroup -Name $gMSA_HostsGroupName -GroupScope Global -PassThru
$gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ } |
ForEach-Object { Add-ADGroupMember -Identity $gMSA_HostsGroupName -Members $_ }
Шаг 3 - создание и конфигурирование gMSA
New-ADServiceAccount -Name $gMSA_Name -DNSHostName $gMSA_FQDN -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup -ServicePrincipalNames $gMSA_SPNs
Шаг 4 (необязательно) - если необходимо делегирование, включить параметр "Trust this user for delegation to any service"
Set-ADServiceAccount -Identity $gMSA_Name -TrustedForDelegation $true
Чтобы включить делегирование, необходимо установить время создания, используя параметр OtherAttributes:
$myBackendSPNs = 'http/webBackend', 'http/webBackend.contoso.com'
New-ADServiceAccount -Name $gMSA_Name -DNSHostName $gMSA_FQDN -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup -ServicePrincipalNames $gMSA_SPNs -OtherAttributes @{'msDS-AllowedToDelegateTo'=$myBackendSPNs}
Шаг 5 - теперь на сервере, где необходимо использовать gMSA:
$gMSA_Name = 'gmsaWWW'
(необязательно) Установка gMSA:
Add-WindowsFeature -Name RSAT-AD-PowerShell
Install-ADServiceAccount -Identity $gMSA_Name
Это подтверждает, что компьютер имеет право размещать gMSA, извлекает учетные данные и сохраняет данные учетной записи на локальном компьютере (используя функцию NetAddServiceAccount)
(необязательно) Тестирование gMSA:
Test-ADServiceAccount -Identity $gMSA_Name
(необязательно) Установка gMSA в пул приложений IIS (ApplicationPool):
Import-Module WebAdministration
$pool = Get-Item IIS:\AppPools\DefaultAppPool
$pool.processModel.identityType = 3
$pool.processModel.userName = "$env:USERDOMAIN\$gMSA_Name$"
$pool.processModel.password = ''
$pool | Set-Item
(необязательно) Установка gMSA как Windows Service:
$serviceName = 'myService'
$service = Get-WmiObject -Class Win32_Service -Filter "Name='$serviceName'"
$service.Change($null, $null, $null, $null, $null, $null, "$env:USERDOMAIN\$gMSA_Name$", $null, $null, $null, $null)
Если используется UI (services.msc или IIS Manager) для установки учетных данных для службы или идентификатора ApplicationPool, нужно не забыть добавить знак $ (знак доллара) в конце имени gMSA, поскольку он представляет объект учетной записи службы, который наследуется от объекта учетной записи компьютера.
(с) Ella S.
Для их внедрения и использования можно использовать PowerShell команды.
Первоначально определим переменные, которые будут в дальнейшем использоваться в скриптах:
$gMSA_Name = 'gmsaWWW'
$gMSA_FQDN = 'gmsaWWW.contoso.com'
$gMSA_SPNs = 'http/www', 'http/www.contoso.com'
$gMSA_HostNames = 'webServer01', 'webServer02', 'webServer03'
Шаг 1 - создание root-ключа KDS (служба распространения ключей) (требуется сделать один раз для домена). Он используется контроллером доменов для генерации паролей групповых управляемых учетных записей служб.
Команда создания root-ключа KDS:
Add-KDSRootKey -EffectiveTime (Get-Date).AddHours(-1)
Временная задержка в 10 часов необходима для безопасности, чтобы можно было убедиться, что все контроллеры домена реплицированы и могут отвечать на запросы gMSA.
Шаг 2 - получение всех аккаунтов, которые будут использовать gMSA:
$gMSA_HostsGroup = $gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ }
Или создание группы и добавление аккаунтов в нее:
$gMSA_HostsGroupName = "$($gMSA_Name)_HostsGroup"
$gMSA_HostsGroup = New-ADGroup -Name $gMSA_HostsGroupName -GroupScope Global -PassThru
$gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ } |
ForEach-Object { Add-ADGroupMember -Identity $gMSA_HostsGroupName -Members $_ }
Шаг 3 - создание и конфигурирование gMSA
New-ADServiceAccount -Name $gMSA_Name -DNSHostName $gMSA_FQDN -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup -ServicePrincipalNames $gMSA_SPNs
Шаг 4 (необязательно) - если необходимо делегирование, включить параметр "Trust this user for delegation to any service"
Set-ADServiceAccount -Identity $gMSA_Name -TrustedForDelegation $true
Чтобы включить делегирование, необходимо установить время создания, используя параметр OtherAttributes:
$myBackendSPNs = 'http/webBackend', 'http/webBackend.contoso.com'
New-ADServiceAccount -Name $gMSA_Name -DNSHostName $gMSA_FQDN -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup -ServicePrincipalNames $gMSA_SPNs -OtherAttributes @{'msDS-AllowedToDelegateTo'=$myBackendSPNs}
Шаг 5 - теперь на сервере, где необходимо использовать gMSA:
$gMSA_Name = 'gmsaWWW'
(необязательно) Установка gMSA:
Add-WindowsFeature -Name RSAT-AD-PowerShell
Install-ADServiceAccount -Identity $gMSA_Name
Это подтверждает, что компьютер имеет право размещать gMSA, извлекает учетные данные и сохраняет данные учетной записи на локальном компьютере (используя функцию NetAddServiceAccount)
(необязательно) Тестирование gMSA:
Test-ADServiceAccount -Identity $gMSA_Name
(необязательно) Установка gMSA в пул приложений IIS (ApplicationPool):
Import-Module WebAdministration
$pool = Get-Item IIS:\AppPools\DefaultAppPool
$pool.processModel.identityType = 3
$pool.processModel.userName = "$env:USERDOMAIN\$gMSA_Name$"
$pool.processModel.password = ''
$pool | Set-Item
(необязательно) Установка gMSA как Windows Service:
$serviceName = 'myService'
$service = Get-WmiObject -Class Win32_Service -Filter "Name='$serviceName'"
$service.Change($null, $null, $null, $null, $null, $null, "$env:USERDOMAIN\$gMSA_Name$", $null, $null, $null, $null)
Если используется UI (services.msc или IIS Manager) для установки учетных данных для службы или идентификатора ApplicationPool, нужно не забыть добавить знак $ (знак доллара) в конце имени gMSA, поскольку он представляет объект учетной записи службы, который наследуется от объекта учетной записи компьютера.
(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Комментариев нет :
Отправить комментарий