问题标签 [gmsa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
814 浏览

sql-server - 在 docker 中运行 aspnet core 与 sql server 集成安全性

我正在使用 gMSA 在 docker 中运行一个 aspnet 核心应用程序。我创建了一个安全组,创建了一个 gMSA,并使用这篇文章创建了一个凭据规范文件 - https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/gmsa-run-container

我正在使用 SQL Server 的集成安全性。对此别无选择。

我用这个命令启动我的容器:

docker run --security-opt "credentialspec=file://mydomain_mygmsa.json" --hostname mygmsa -e ASPNETCORE_ENVIRONMENT=Development -p 5000:80 -d --user "NT AUTHORITY\NETWORK SERVICE" my-image

这是我的 docker 构建文件:

当我尝试访问 sql server 时,出现以下错误:

登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。

有任何想法吗?

0 投票
1 回答
53 浏览

google-cloud-platform - 在谷歌云上使用托管 AD 创建 gMSA

对于使用 kuberenetes 在谷歌云上使用 AD 的 POC,我创建了一个托管活动目录,如此链接中所述。

要为 AD 添加 gMSA 帐户,我查看了此文档。看起来我应该使用 AD VM 中的 New-ADServiceAccount 命令。但是,当查看我在 pantheon 上创建的域时,我找不到它所在的虚拟机。该界面没有给我任何关于如何添加用户或对域执行任何操作的线索。

任何帮助将不胜感激。谢谢,

0 投票
2 回答
491 浏览

docker - 在 docker-compose 中获取凭证规范(gMSA)的问题

我有一个 gMSA 凭证规范,可与 docker run 一起使用,但不能与 docker-compose 一起使用。compose 文件和 docker run 命令的详细信息如下。我完全失去了我所缺少的东西。我做了很多谷歌搜索,但我不确定发生了什么。我的主要想法是 docker-compose 文件的某些内容已关闭,但我不确定。

码头工人组成

运行后docker-compose up

码头运行

0 投票
1 回答
1203 浏览

powershell - 使用 gMSA 和 Get-ADGroupMember 的 PowerShell 脚本

我们有一个 PowerShell 脚本,它将枚举指定 AD 组的成员,然后将创建一个带有登录 ID 和名称的文本文件。该脚本将在向经理创建电子邮件时通知他们管理应用程序/服务的 AD 组的成员资格。我们遇到的问题是以下行:

当用户运行脚本时,这将使用请求的信息正确创建文件。问题是当我们尝试使用 gMSA 通过计划任务运行此脚本时。在 gMSA 下运行它时,会创建一个零字节文件。将文件创建行更改为:

按预期创建文件,因此问题似乎是Get-ADGroupMember. 可以像这样使用 gMSA 查询 AD 吗?

我们管理 MSA/gMSA 帐户的内部小组通知我们一切都应该正常工作。我们的安全组更喜欢通过 MSA/gMSA 运行需要某种类型的用户上下文的所有内容,因为密码管理不是问题。

0 投票
1 回答
5593 浏览

powershell - 将 gMSA 帐户部署为任务计划程序用户帐户

我正在尝试在 Windows 2016 服务器上创建一个任务,并且需要将 gMSA 帐户部署为登录帐户,下面是我正在使用的脚本,我需要确保选项 - “无论用户是否登录都运行”获取选中了,下面的代码应该做些什么改变?

0 投票
2 回答
177 浏览

windows - 使用 CredSpec 的经典 ASP/MSSQL 身份验证问题

我目前正在尝试对一些旧的(并且很快将被淘汰的)基础设施进行一些改进,为迁移到 .NET 核心做准备。我们有一个小的反馈表,它使用 SQLOLEDB 连接字符串写入 SQL 表。这些字符串适用于以明文形式定义的用户名/密码,尽管我希望摆脱这种方法以支持集成身份验证。

我做了很多工作才能到达我所在的位置:

  1. 构建了一个基于 IIS 并安装了 ASP 功能的 docker 容器。
  2. 在 Windows 主机上以集群方式运行容器 - 加入我们的 AD 域。
  3. 设置 gMSA 以提供对数据库的域帐户访问。

目前,我已经完成了 MS 的 gMSA on Windows Containers 指南(https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/manage-serviceaccounts)中的所有步骤。测试检查完毕,我可以毫无问题地运行https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/gmsa-troubleshooting#check-the-container中的所有测试,但是,当我尝试使用我的连接字符串进行连接时,我在日志中收到一个错误,显示:

对我来说,这没有多大意义,因为应用程序池标识设置为网络并且测试在容器上签出。

现在我已经尝试了一些事情,比如编辑 web.config 以将模拟设置为 true/false,通过 Windows 进行身份验证,但我仍然有点难过。我已将主机设置为允许通过 Kerberos 委派任何服务。

我还尝试使用以下方式登录:

然后运行:

这会导致数据库连接处于打开状态。

使用 NetworkService 身份设置应用程序池

任何建议,将不胜感激!

0 投票
0 回答
821 浏览

sql-server - 在 Windows 容器中使用集成安全性连接到 SQL Server

我正在努力使用集成安全性将 Windows 容器中托管的服务连接到 SQL Server。

根据 Microsoft 文档,我创建了一个分组托管服务帐户 (gMSA)、凭据规范,并且我的容器主机可以访问 gMSA - https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-容器/管理服务帐户

我一直在使用以下容器中的 SQL Server PowerShell 模块测试连接:

问题:

hyper-v隔离模式下运行容器时,我收到以下错误 SQL Server 错误:

登录失败。登录来自不受信任的域,不能与集成身份验证一起使用。

如果我在进程隔离模式下运行容器,我可以使用 gMSA 成功登录到 SQL Server。据我所知,没有任何迹象表明不支持 hyper-v 容器的集成身份验证。

有一个错误阻止您在 Windows 10 版本 1703、1709 和 1803 上将 gMSA 与 Hyper-V 隔离容器一起使用。但是,我使用的是 Windows 10 版本 1809,并且可以确认容器可以访问 gMSA。

有任何想法吗?

0 投票
1 回答
3102 浏览

powershell - 将 PowerShell 作为组托管服务帐户启动

如何使用 gMSA 帐户启动 PowerShell。我右键单击 PowerShell 图标,以其他用户身份运行,然后输入 domain\msa$ 而不输入密码。它错误地指出凭据不正确。

我已经在机器上安装了服务帐户并运行 Test-ADServiceAccount 返回 true。我已授予它“作为服务登录”和“作为批处理作业登录”权限(我真的不认为这是必要的,但无论如何尝试过,但没有成功)。

有任何想法吗?

0 投票
0 回答
149 浏览

c# - c#中的GMSA模拟

我们计划用 GMSA 账户(密码自管账户)取代传统的服务账户。经过适当的设置,我们的 Windows 服务现在由 GMSA 托管。在 windows 服务中,我们想模拟另一个 GMSA,因为它具有执行代码的特定权限。我们遵循相同的传统模拟方法,即 Win32 LogonUser(username$,domain,password, NetworkLogonType, DefaultLogonProvider,out token)。我们正在尝试以下两种方式

  1. 使用空密码。
  2. 使用“ SA {262E99C9-6160-4871-ACEC-4E61736B6F21}”作为服务帐户标识符的密码

在这两种情况下,我们都会收到错误消息-“用户名或密码不正确”。我们还尝试了所有其他登录类型。然而其结果相同。

请建议模拟 GMSA 帐户的适当方法

0 投票
0 回答
52 浏览

docker-compose - 使用 Windows Server 2016 容器和 Windows Server 2019 主机运行具有 gMsa 和 hyper-v 隔离的应用程序时出现问题

我们正在处理使用 docker 在 Windows Server 2016 容器中使用 gMsa 运行我们的应用程序的不兼容问题。我们使用 Windows Server 2019 作为主机和 hyper-v 隔离。

主机:Windows Server 2019 10.0.17763 容器:Windows 2016 10.0.14393(内部版本 1607)

具有以下基本图像的 dockerfile

来自 mcr.microsoft.com/dotnet/framework/runtime:4.6.2-windowsservercore-ltsc2016

来自 mcr.microsoft.com/windows/servercore:ltsc2016

dockerfile

码头工人撰写

码头工人撰写

  1. 应用图像
  2. Hyper-v 隔离
  3. IPv4
  4. gMsa 凭证规范
  5. l2bridge网络
  6. 工控机接口
  7. 子网
  8. 网关

根据微软的说法,只要使用 hyper-v 隔离,就可以在 Windows Server 2019 主机中运行 Windows Server 2016 容器。我们可以验证容器是否正在运行,因为它可以使用 docker-compose 构建和部署。

容器运行

使用 hyper-v 的 Microsoft 主机和容器兼容性

但是当试图运行应用程序时,它根本不运行。

我们使用我们可以找到的唯一官方 Microsoft 文档进行 gMsa 故障排除测试,该文档已经有 2 年的历史了(Troubleshoot gMSA for Windows containers | Microsoft Docs),结果如下

  1. 在主机中进行测试 a. 测试-ADServiceAccount i。真 B. 为正确的流量支持配置的防火墙规则
  2. 容器中的测试(gMsa 相关) gMsa 测试 (nltest)

nltest /sc_verify:pj16.loc 和 klist get krbtgt 在这种情况下总是失败(应用程序有 gMsa,并且使用了 hyper-v)

应用程序正常工作的唯一场景是不使用 hyper-v,但在这种情况下主机和容器操作系统必须匹配,这意味着 Windows Server 2019 主机与 Windows Server 2019 容器或 Windows Server 2016 主机与 Windows Server 2016 容器.

我们在互联网上找到了这个页面GitHub - plooploops/windows-containers-AD: Working with AD and Windows Containers看起来像一个团队的地方尝试做同样的事情,但结果相同,在下面的段落中说:

在我们的场景中,我们使用的是 Windows Server 2016 10.0.14393 build 1607,它比 1803 还要早。我们也不知道 1709 build 对应的服务器。

问题是:在 Windows Server 2019 主机和 Windows Server 2016 容器之间是否存在任何构建组合以使 gMsa 和 hyper-v 正确运行,或者确实不兼容,而针对这种特定场景的唯一解决方案是匹配操作系统和容器版本?

非常感谢您的帮助!

干杯,

雨果