我对Kerberos在Active Directory环境中的工作方式及其用于在网络上对用户和工作站进行身份验证的方法有基本的了解,但是我的问题是..因为Kerberos依赖于发布最终用户随后用来访问的安全令牌。网络资源,域中的系统(笔记本电脑)如何不能仅使用活动目录用户的用户名和密码来访问相同的网络资源?
我猜想,如果仅使用用户凭据,Kerberos就会生成一个安全令牌并将其颁发给系统,但是似乎应该有更多的安全性,以防止非域系统访问网络资源。
如果有人能启发我,我将不胜感激!
我对Kerberos在Active Directory环境中的工作方式及其用于在网络上对用户和工作站进行身份验证的方法有基本的了解,但是我的问题是..因为Kerberos依赖于发布最终用户随后用来访问的安全令牌。网络资源,域中的系统(笔记本电脑)如何不能仅使用活动目录用户的用户名和密码来访问相同的网络资源?
我猜想,如果仅使用用户凭据,Kerberos就会生成一个安全令牌并将其颁发给系统,但是似乎应该有更多的安全性,以防止非域系统访问网络资源。
如果有人能启发我,我将不胜感激!
Answers:
域上的系统(笔记本电脑)如何不能仅使用活动目录用户的用户名和密码来访问相同的网络资源?
这取决于所涉及的“网络资源”。在您登录的加入域的Windows计算机上,至少有两个客户端Kerberos身份在起作用:
也有host / workstation @ DOMAIN,但这通常是在主机上运行的服务的标识,可以从其他位置进行访问。如果主机上的特权进程想要执行某项操作(例如,使用经过Kerberos身份验证的动态DNS将其名称添加到DNS),它将使用其身份来执行此操作,工作站$ @ DOMAIN。但是,如果您在登录会话中自己访问某些资源(例如CIFS网络共享或经过身份验证的HTTP URL),则客户端身份就是您的主体名称user @ DOMAIN(使用以下命令自动为您获取凭据)您输入的登录密码)。从您的问题来看,您似乎认为涉及某种组合。不是,它们是分开的。
这就是为什么使用Kerberos从其他平台访问基于Windows的资源没有问题的原因。您也可以在Linux框中键入“ kinit user”,输入密码以从域控制器中获取Kerberos凭据(TGT),然后使用Firefox访问IIS上经过Kerberos身份验证的网页。所有这些协议都是标准协议,除了用户凭证之外,您不需要任何其他协议。
先前的回答是在这种情况下需要NTLM。这是错误的(尽管肯定可以使用)。但是,当您从非域计算机访问某些资源并提示您输入用户名和密码时,您不一定知道实际使用的是哪种身份验证方法。它可能使用Kerberos。它也可能只是基于密码的机制,它将您的用户名和密码发送到服务器进行验证,然后缓存您的密码,因此您不必重新输入密码。许多协议都允许通过诸如SASL之类的抽象方案。您必须查看线路以查看发生了什么。
以下说明说明了如何从Windows 7/10(可能是其他)客户端使用Kerberos对Samba服务器进行身份验证。我尚未测试其他版本的客户端和服务器:
在Windows客户端上,“以管理员身份运行” cmd.exe。然后输入此命令为Windows提供有关kerberos REALM.COM的Kerberos域控制器(KDC)的知识。
如果KDC在DNS中:
ksetup /addkdc REALM.COM
除此以外:
ksetup /addkdc REALM.COM kdc01.realm.com
(如果存在,则为领域REALM.COM输入更多的KDC。此外,还可以使用任何一种样式添加其他领域。)
然后使用资源管理器访问感兴趣的网络共享。(例如\\samba.realm.com\share
,在地址栏中。)如果共享受到保护,将打开密码提示。
您需要在用户名中指定领域。可以像user@REALM.COM
或那样进行REALM.COM\user
。
然后输入密码。