Windows容器内的活动目录帐户(服务器2016 TP5)

Mel*_*Mel 9 docker windows-server-2016

所以我有Windows Server 2016 TP5,我正在玩容器.我能够做好基本的泊坞任务.我正在试图弄清楚如何容纳我们的一些IIS托管的Web应用程序.

事实上,我们通常对数据库使用集成身份验证,并使用域服务帐户作为应用程序池.我目前没有测试VM(在域中),所以我无法测试它是否适用于容器内部.

如果主机加入AD域,它的容器是否也是域的一部分?我还可以使用域帐户运行进程吗?

编辑:此外,如果我在dockerfile中指定"USER",这是否意味着我的应用程序池将使用它(而不是应用程序池标识)运行?

小智 7

至少有一些场景中Docker容器中的AD集成实际上有效:

  1. 您需要使用AD凭据访问网络资源.
    1. 在需要此访问权限的本地标识下运行cmdkey/add:<network-resource-uri>[:port]/ user:<ad-user>/ pass:<pass>
    2. 要在不修改AppPoolIdentity的情况下将相同技巧应用于IIS应用程序,您需要围绕cmdkey使用最简单的.ashx包装器(注意:您必须在运行时调用此包装器,例如:在ENTRYPOINT期间,否则网络凭据将映射到不同的地方身份)
  2. 您需要在AD用户下运行代码
    1. 冒充使用ADVAPI32功能的LogonUser与LOGON32_LOGON_NEW_CREDENTIALS和LOGON32_PROVIDER_DEFAULT的建议
  3. 您需要传输层网络安全性,例如在对基于AD的资源进行RPC调用(例如:MSDTC)时.
    1. 使用任何最适合您的指南设置gMSA .但请注意,gMSA 要求 Docker主机位于域中.


Wil*_*ill 6

快速回答 - 不,不支持容器作为AD的一部分,因此您无法使用AD帐户在容器中运行进程或使用它进行身份验证

过去常常在MS Containers网站上提及,但原始链接现在重定向.

原始措辞(CTP 3或4?):"容器无法加入Active Directory域,无法以域用户,服务帐户或计算机帐户运行服务或应用程序."

我不知道这是否会在以后的版本中发生变化.

有人试图破解它,但没有快乐.

  • [Windows容器的Active Directory服务帐户](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts)现在具有以下信息:"虽然Windows容器无法加入域,......" (2认同)