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

Область применения: Windows Server 2022, Windows Server 2019

В типичной конфигурации контейнер получает только одну групповую управляемую учетную запись службы (gMSA), которая используется всякий раз при попытке пройти проверку подлинности с помощью учетной записи компьютера контейнера в сетевых ресурсах. Это означает, что для использования удостоверения gMSA приложение должно быть запущено в качестве локальной системы или сетевой службы. Кроме того, контейнеры можно настроить с помощью дополнительной gMSA, если вы хотите запустить службу или приложение в контейнере от имени другого удостоверения из учетной записи компьютера контейнера.

Запуск пула приложений IIS в качестве сетевой службы

Если в контейнере размещен веб-сайт IIS, все, что нужно сделать для использования gMSA, — задать удостоверение пула приложений для сетевой службы. Это можно сделать, добавив следующую команду в Dockerfile:

RUN %windir%\system32\inetsrv\appcmd.exe set AppPool DefaultAppPool -'processModel.identityType':NetworkService

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

Запуск службы Windows в качестве сетевой службы

Если контейнерное приложение выполняется в качестве службы Windows, в Dockerfile можно указать, что такая служба должна запускаться в качестве сетевой.

RUN sc.exe config "YourServiceName" obj= "NT AUTHORITY\NETWORK SERVICE" password= ""

Запуск произвольных консольных приложений в качестве сетевой службы

Для универсальных консольных приложений, которые не размещены в службах IIS или Service Manager, зачастую контейнер проще всего запустить в качестве сетевой службы, поэтому приложение автоматически наследует контекст gMSA. Эта функция доступна в Windows Server версии 1709.

Добавьте следующую строку в Dockerfile, чтобы она выполнялась в качестве сетевой службы по умолчанию:

USER "NT AUTHORITY\NETWORK SERVICE"

К контейнеру можно также подключиться как к сетевой службе однократно, используя для этого docker exec. Это особенно полезно при устранении неполадок подключения в работающем контейнере, который обычно не запускается в качестве сетевой службы.

# Opens an interactive PowerShell console in the container (id = 85d) as the Network Service account
docker exec -it --user "NT AUTHORITY\NETWORK SERVICE" 85d powershell

Дальнейшие действия

Групповые управляемые учетные записи служб можно использовать не только для приложений настройки, но и для следующих целей:

Если во время установки возникнут проблемы, ознакомьтесь с возможными решениями в руководстве по устранению неполадок.