小编Mat*_*Mat的帖子

能否以编程方式检索组托管服务帐户的密码?

我编写了一个服务,它在授权机器上的 gMSA 帐户下运行得很好。我想让它登录到使用 RADIUS(针对我们自己的 Active Directory)来授权用户的第三方硬件设备。

我总是可以专门为此目的创建另一个域帐户并自己管理密码,但这实际上抵消了首先拥有 gMSA 的一些优势。

显然,为了发送自己的凭据,该服务需要知道自己的密码 - 但 gMSA 帐户的主要好处是密码是自动管理的,因此没有人需要跟踪它。而且我知道,实际上,密码通常不会以可检索的状态存在于 Active Directory 中。

然而 - 当我在 PowerShell 中创建一个新的 gMSA 时New-ADServiceAccount,其中一个选项是-PrincipalsAllowedToRetrieveManagedPassword. 此属性通常指向一个安全组,该安全组的成员是那些被授权使用服务帐户的服务器的计算机帐户。尽管如此,命名法似乎暗示检索在技​​术上是可能的。

当我想到这一点时进一步挖掘,我在这个博客上发现了一个作者评论,描述了这个过程的复杂性,但我怀疑其中的一些步骤(特别是解构msDS-ManagedPassword blob)对于服务帐户是无法实现的。

想想看,即使我能得到密码,当网络策略服务器(例如)在 RADIUS 请求中收到密码时,它是否能够验证它?我怀疑这些细节是服务器故障的问题,但我真的只是想大声说我是否在这里吠错了树。

我碰巧在 C# 中工作,但如果这需要本机 Windows API,我不会感到惊讶。

总结一下:是否有一个函数调用(或两个或三个)可以检索/重新创建 gMSA 帐户的当前密码?

c# winapi active-directory password-recovery

5
推荐指数
0
解决办法
1925
查看次数

标签 统计

active-directory ×1

c# ×1

password-recovery ×1

winapi ×1