我的网络管理员想将 Active Directory 从混合模式切换到本机模式,并询问我这是否会影响我们的主要 Windows 窗体应用程序。该应用程序通过 .NET 安全主体 API 访问 AD:
var principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
然后测试 principal.IsInRole 来确定用户的角色。我几乎 100% 确信更改为纯模式不会影响此应用程序。但这不是我们可以测试的东西,而且据我所知,如果出现问题,不可能将其切换回混合模式。
我希望得到一些保证,以便我可以批准他进行转换。
答案1
我无法直接回答你——我现在对 .NET 还只是个新手。很抱歉,我不能提供更多答案。
但是,我可以告诉你,切换到本机模式会消除对以前版本的 AD 身份验证的兼容性支持。因此,如果您从 NT4 升级到 2000(此类问题的第一代),并且您的身份验证不是基于 2000 AD,那么是的,它会中断。我怀疑您可能使用的是 2003 或 2008,而 2003 的本机模式是 2000 的又一个进步(混合模式是 2000+2003 支持但不支持 NT4),因此切换到本机将是全 2003 身份验证,对吗?问题就在这里 - 如果您的应用程序正确地针对 2003 服务器进行身份验证,那么您大概美好的。
昂贵的建议:使用两个虚拟机,一个运行 2003,另一个运行装有应用程序的客户端操作系统,然后进行身份验证。确保 2003 以完全本机模式运行。这应该可以明确回答您的问题。
答案2
混合模式与本机模式的区别在于域控制器操作系统兼容性。混合模式允许 NT4 域控制器在 Windows 2000 域中共存。本机模式要求所有 Windows 2000(或更高版本)域控制器。转换为本机模式时,NTLM 身份验证不会丢失。以下是 1999 年左右关于该主题的一个很好的入门知识:混合模式与纯模式。
随着 Windows Server 的发展,每次发布新的主要版本时,AD 功能级别的数量都会增加。除了混合模式和本机模式外,还有 Windows Server 2003 兼容模式和 Windows Server 2008 兼容模式。顾名思义,当所有 DC 都处于相应的操作系统级别或更高级别并且域和/或林功能级别升级时,这些模式可以启用较新的 AD 功能。
答案3
我是一名开发人员,进入原生模式不会影响这行代码。不过,最好有一个 tst 林来测试这些类型的更改。
答案4
你需要测试一下这个。
在其他情况下,切换出纯模式并禁用旧版 Windows 身份验证方法可能会带来问题。几年前我们这样做过,用户认为重要的几个应用程序因为使用不安全的 NTLM 哈希而出现问题。
那是 2004 年,希望今天的应用程序会更好,但我仍然建议您测试一切可以测试的东西。