一点背景知识:我正在尝试使用 Microsoft DirSync 工具将我们的一个开发 AD 同步到 Azure Active Directory 设置。配置失败,因为该工具声称我尝试使用的 AD 帐户缺少“企业管理员”组的成员身份。
深入研究根本原因,我已经能够确定执行检查的代码正在查询安全组,如下所示:
public static void Repro(string userName, string password)
{
string name = ADValidation.GetUsersForest(userName, password).Name;
string path = string.Format("LDAP://{0}/", name);
string rootDse = string.Format("{0}rootDSE", path);
Console.WriteLine("Path: {0}", path);
Console.WriteLine("RootDse: {0}", rootDse);
const AuthenticationTypes authenticationType = AuthenticationTypes.Signing | AuthenticationTypes.Secure;
using (var entry = new DirectoryEntry(rootDse, userName, password, authenticationType))
{
entry.RefreshCache(new[] { "tokenGroups" });
Console.WriteLine(entry.Properties["tokenGroups"].Count);
}
}
在我们的公司 AD 上运行此块会按预期生成安全组列表:
Path: LDAP://SOMECORPDOMAIN.EXT/
RootDse: LDAP://SOMECORPDOMAIN.EXT/rootDSE
39
在开发 AD 上运行它时不会产生任何组:
Path: LDAP://SOMEDEVDOMAIN.EXT/
RootDse: LDAP://SOMEDEVDOMAIN.EXT/rootDSE
0
我对 AD 的了解非常有限 - 谁能给我一些指示,说明为什么开发 AD 不会为查询返回任何安全组?
提前致谢/迈克尔