【发布时间】:2018-11-02 23:43:09
【问题描述】:
问题:是否可以使用 C# LDAP 确定帐户是否是 Active Directory 中的服务帐户?如果是,如何?
上下文:我有一个程序正在检索架构类类型 USER、GROUP、COMPUTER、FOREIGN SECURITY PRINCIPAL 和 CONTACT 的所有对象。目前,服务帐户是通过字符串解析“服务帐户”的规范名称来识别的。我不喜欢这个解决方案,因为字符串解析依赖于层次结构中的文件夹位置,字面意思是“服务帐户”。似乎可以创建一个服务帐户,然后将其放置在不包含字符串“服务帐户”的文件夹路径中。不幸的是,我无法对此进行测试,因为我不是 AD 管理员。
我在网上浏览过没有任何运气,所以我不确定它是否可能。
更新:
根据Microsoft,服务帐户似乎包含在 objectClass msDS-ManagedServiceAccount 中。但是,当我将 DirectoryEntry 筛选器设置为 msDS-ManagedServiceAccount 时,不会返回任何结果。
directoryEntry = new DirectoryEntry(strActiveDirectoryHost, null, null, AuthenticationTypes.Secure);
string strDsFilter = "(objectClass=msDS-ManagedServiceAccount)";
DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry)
{
Filter = strDsFilter,
SearchScope = SearchScope.Subtree,
PageSize = intActiveDirectoryPageSize,
};
return searchResultCollection = directorySearcher.FindAll();
【问题讨论】:
-
服务帐户是指托管服务帐户,还是其他?如果您可以发布一些代码,那将有所帮助。
-
@RyanS 我已经更新了我的问题。
标签: c# active-directory ldap