Учетные записи Active Directory в контейнере Windows (сервер 2016 TP5)

Итак, у меня есть Windows Server 2016 TP5, и я играю с контейнерами. Я могу нормально выполнять основные задачи докера. Я пытаюсь выяснить, как создать контейнер для некоторых наших веб-приложений, размещенных на IIS.

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

Если хост присоединен к домену AD, его контейнеры также являются частью домена? Могу ли я по-прежнему запускать процессы с использованием учетных записей домена?

РЕДАКТИРОВАТЬ: Кроме того, если я указываю «USER» в dockerfile, означает ли это, что мой пул приложений будет работать с использованием этого (вместо удостоверения пула приложений)?

Ответы на вопрос(3)

Вы не можете присоединять контейнеры к домену, но если вашему приложению требуется аутентификация, вы можете использовать управляемые учетные записи служб. Избавляет вас от необходимости иметь дело с упаковкой паролей.

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/manage_serviceaccounts

Есть, по крайней мере, несколько сценариев, когда AD-интеграция в Docker-контейнере действительно работает:

Вам необходимо получить доступ к сетевым ресурсам с учетными данными AD.Запустите cmdkey / add:<network-resource-uri>[:port] / Пользователь:<ad-user> /проходить:<pass> под местной идентичностью, которая нуждается в этом доступеЧтобы применить тот же трюк к приложениям IIS без изменения AppPoolIdentity, вам потребуется простейшая оболочка .ashx вокруг cmdkey (Примечание: вам придется вызывать эту оболочку во время выполнения, например: во время ENTRYPOINT, в противном случае сетевые учетные данные будут сопоставлены с другая местная идентичность)Вам нужно запустить код под пользователем ADОлицетворение с использованием функции ADVAPI32LogonUser сLOGON32_LOGON_NEW_CREDENTIALS а такжеLOGON32_PROVIDER_DEFAULT какпредложенныйВам необходима безопасность сети транспортного уровня, например, при выполнении вызовов RPC (например, MSDTC) для ресурсов на основе AD.Настройте gMSA, используя любойруководство это подходит вам лучше всего. Обратите внимание, однако, что GMSAтребует Хост докера находиться в домене.
 Daniel Leach21 дек. 2017 г., 16:18
Если вы используете CNAME для сервера, cmdkey <network-resource-uri> должен быть реальным именем сервера, а не CNAME.
Решение Вопроса

Быстрый ответ - нет, контейнеры не поддерживаются как часть AD, поэтому вы не можете использовать учетные записи AD для запуска процессов в контейнере или аутентификации в нем

Раньше это упоминалось на сайте MS Containers, нооригинальная ссылка теперь перенаправляет.

Оригинальная формулировка (CTP 3 или 4?): «Контейнеры не могут присоединяться к доменам Active Directory и не могут запускать службы или приложения в качестве пользователей домена, учетных записей служб или учетных записей компьютеров».

Я не знаю, изменится ли это в более позднем выпуске.

Кто-то пыталсявзломать его но без радости

 sschoof06 февр. 2017 г., 10:03
Учетные записи службы Active Directory для контейнеров Windows теперь есть такая информация: «Хотя контейнеры Windows нельзя присоединить к домену, ...»

Ваш ответ на вопрос