LeWoody Asked: 2009-06-26 12:27:54 +0800 CST2009-06-26 12:27:54 +0800 CST 2009-06-26 12:27:54 +0800 CST 如何确定 Active Directory 使用的是 Kerberos 还是 NTLM? 772 有没有可以使用的命令行程序? active-directory kerberos ntlm 8 个回答 Voted KAPes 2009-06-27T10:49:12+08:002009-06-27T10:49:12+08:00 我认为问题应该被扭曲。Active Directory 支持 Kerberos 和 NTLM。Windows 将首先尝试 Kerberos,如果未满足所有要求,它将回退到 NTLM。 我会给你举个例子,像 \server1\share 这样的名称访问文件共享会调用 Kerberos,并且在适当的权限下应该会成功。但是使用 IP 地址访问相同的文件共享将首先调用 Kerberos 并失败(因为 IP 地址没有 SPN),然后故障转移到 NTLM。 因此,请确定您的程序如何尝试针对 AD 进行身份验证,并且应该告诉您正在使用哪种协议。 我很想知道,是什么促使你问这个问题。 TonyUser 2009-06-26T15:00:16+08:002009-06-26T15:00:16+08:00 您可以查看活动的 Kerberos 票证列表,以查看是否有一个用于感兴趣的服务,例如通过运行klist.exe。 如果您破解注册表,还有一种方法可以记录 Kerberos 事件。 Eric H 2009-06-27T05:11:45+08:002009-06-27T05:11:45+08:00 您真的应该审核登录事件,无论计算机是服务器还是工作站。找出哪些用户正在访问您的系统以及解决与安全相关的问题很有帮助。 您可以使用组策略修改审核策略:开始...运行...gpedit.msc...计算机配置、Windows 设置、安全设置、本地策略、审核策略、“审核登录事件”。选中“成功”和“失败”复选框。尝试注销并登录以查看 Windows 安全事件日志中的一些典型 540 事件。 Jason B Shrout 2009-06-26T12:32:40+08:002009-06-26T12:32:40+08:00 Netstat 显示所有正在侦听的 TCP 和 UDP 连接。使用选项 -na 用于所有连接,不解析名称或端口。'b' 选项是显示与之相关的程序。如果 DNS 正在运行,它可能会显示很多其他连接,因此您可能还需要指定 TCP。 如果 Kerberos 部署了 Active Directory 域控制器,那么它肯定会运行。 网络统计-nab Boden 2009-06-26T12:39:46+08:002009-06-26T12:39:46+08:00 假设您正在审核登录事件,请检查您的安全事件日志并查找 540 事件。他们会告诉您是否使用 Kerberos 或 NTLM 完成了特定的身份验证。 user262211 2015-01-04T03:33:37+08:002015-01-04T03:33:37+08:00 public string FindAllUsers() { string strReturn=""; try { DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName); string userNames = ""; string authenticationType = ""; foreach (DirectoryEntry child in directoryEntry.Children) { if (child.SchemaClassName == "User") { userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline authenticationType += child.Username + Environment.NewLine; } } strReturn = userNames + "\n\n" + authenticationType; //Console.WriteLine("************************Users************************"); //Console.WriteLine(userNames); //Console.WriteLine("*****************Authentication Type*****************"); //Console.WriteLine(authenticationType); } catch (Exception) { Console.WriteLine("Network error occured."); strReturn = ""; } return strReturn; } Davis 2016-11-27T15:24:00+08:002016-11-27T15:24:00+08:00 你可以试试这个工具。 http://blog.michelbarneveld.nl/media/p/33.aspx 这是一个在网站上测试身份验证的工具。它将显示使用的身份验证类型:Kerberos、NTLM、基本、无。但它也显示其他信息,例如:使用的 SPN、HTTP 标头、解密的 NTLM 和 Kerberos 授权标头。它还可以显示和删除您的 Kerberos 票证。 pipTheGeek 2009-07-11T13:13:58+08:002009-07-11T13:13:58+08:00 取决于所涉及的客户端/服务器。例如,有一个网页(抱歉,现在没时间搜索)你可以放在一个网站上,它会告诉你是否使用了 kerberos 或 NTLM。但是我不知道 SQL Server 使用了什么身份验证方法。尽管如前所述,安全日志可能会告诉您。 你为什么要找出答案?
我认为问题应该被扭曲。Active Directory 支持 Kerberos 和 NTLM。Windows 将首先尝试 Kerberos,如果未满足所有要求,它将回退到 NTLM。
我会给你举个例子,像 \server1\share 这样的名称访问文件共享会调用 Kerberos,并且在适当的权限下应该会成功。但是使用 IP 地址访问相同的文件共享将首先调用 Kerberos 并失败(因为 IP 地址没有 SPN),然后故障转移到 NTLM。
因此,请确定您的程序如何尝试针对 AD 进行身份验证,并且应该告诉您正在使用哪种协议。
我很想知道,是什么促使你问这个问题。
您可以查看活动的 Kerberos 票证列表,以查看是否有一个用于感兴趣的服务,例如通过运行klist.exe。
如果您破解注册表,还有一种方法可以记录 Kerberos 事件。
您真的应该审核登录事件,无论计算机是服务器还是工作站。找出哪些用户正在访问您的系统以及解决与安全相关的问题很有帮助。
您可以使用组策略修改审核策略:开始...运行...gpedit.msc...计算机配置、Windows 设置、安全设置、本地策略、审核策略、“审核登录事件”。选中“成功”和“失败”复选框。尝试注销并登录以查看 Windows 安全事件日志中的一些典型 540 事件。
Netstat 显示所有正在侦听的 TCP 和 UDP 连接。使用选项 -na 用于所有连接,不解析名称或端口。'b' 选项是显示与之相关的程序。如果 DNS 正在运行,它可能会显示很多其他连接,因此您可能还需要指定 TCP。
如果 Kerberos 部署了 Active Directory 域控制器,那么它肯定会运行。
网络统计-nab
假设您正在审核登录事件,请检查您的安全事件日志并查找 540 事件。他们会告诉您是否使用 Kerberos 或 NTLM 完成了特定的身份验证。
你可以试试这个工具。 http://blog.michelbarneveld.nl/media/p/33.aspx
这是一个在网站上测试身份验证的工具。它将显示使用的身份验证类型:Kerberos、NTLM、基本、无。但它也显示其他信息,例如:使用的 SPN、HTTP 标头、解密的 NTLM 和 Kerberos 授权标头。它还可以显示和删除您的 Kerberos 票证。
取决于所涉及的客户端/服务器。例如,有一个网页(抱歉,现在没时间搜索)你可以放在一个网站上,它会告诉你是否使用了 kerberos 或 NTLM。但是我不知道 SQL Server 使用了什么身份验证方法。尽管如前所述,安全日志可能会告诉您。
你为什么要找出答案?