【问题标题】:Query Active Directory under NT AUTHORITY/NETWORK SERVICE在 NT AUTHORITY/NETWORK SERVICE 下查询 Active Directory
【发布时间】:2011-03-18 13:45:39
【问题描述】:

我有一个在 NETWORK SERVICE 帐户下运行的 Windows 服务,并且需要查询 Active Directory 以获取有关用户的扩展信息。

在这种情况下,似乎存在阻止服务访问 Active Directory 的访问限制。并且该服务必须作为 NETWORK SERVICE 运行,而不是域用户。

到目前为止,我正在将域用户的凭据(登录名和密码)传递给 DirectorySearcher。凭据是从配置文件中检索的,这当然不好。

还有其他更优雅的方法可以从 NETWORK SERVICE 下运行的服务中查询 Active Directory 吗?

【问题讨论】:

  • 当您说“看起来……有访问限制”时,您的意思是您知道有访问限制,或者它不起作用,所以您认为有访问限制?我问,因为这应该工作。有防火墙阻碍吗?
  • 这对我不起作用,所以我的假设是有什么东西妨碍了我。我不认为这是防火墙问题,因为当我指定域帐户来访问 AD 时,它可以工作。

标签: .net active-directory


【解决方案1】:

除非您的域管理员故意禁止这样做,否则 Active Directory 默认允许任何计算机帐户运行 LDAP 查询。

因此,如果您的计算机已加入域,则使用 NT AUTHORITY\Network Service 帐户应该可以正常工作。

或者,您可以将域用户设置为服务帐户。然后,您无需将任何用户名或密码传入DirectorySearcher

【讨论】:

  • 对于未来可能的用户:我犯了从服务器浏览的错误。我以服务器名称\管理员用户身份登录,当然,IE 发送了这些凭据。解决方案是从我以 thedomain\myuser 身份登录的机器上冲浪。我在双掌之前浪费了 30 分钟。
【解决方案2】:

您可以在 Active Directory 中授予计算机帐户 (COMPUTERNAME$) 读取权限,但正如 @Harvery Kwok 所说,它应该默认具有此权限(如果计算机是域成员)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-03-01
    • 2014-04-29
    相关资源
    最近更新 更多