我想知道,当我在Kerberos领域中,例如,我在浏览器中键入组织中某个服务的URL时,浏览器如何知道服务主体名称,从而知道要向KDC发送什么?
-
先决条件是-服务主体名称必须附加到其中一个用户(通常是系统用户(。有关详细信息,请查看
setspn
命令详细信息
通常SPN格式为<服务类别><主机>:<端口><服务名称>。
例如HTTP/MYHOST。域。COM
如果要创建一个键选项卡,请检查窗口的ktpass
命令。它采用格式<服务类别><主机>:<端口><服务名称><REALM>
通过调用这些命令,KDC现在知道了您的服务。
有关SPN的更多信息,请查看此处。 -
当从浏览器调用url时,服务器返回
HTTP 401:Negotiate
浏览器现在知道服务器需要kerberos(或ntlm(令牌。 -
通常客户端(如桌面(在本地维护Kerberos令牌缓存。当用户使用凭据登录到机器时,TGT(加上一些系统服务的票证(存储在该缓存中
请注意,令牌是根据服务(SPN(颁发的。 -
浏览器在该缓存中查找与访问的服务相对应的kerberos令牌
如果找到令牌,则会将其返回到服务器
如果找不到,则windows(系统(会联系kdc,带来此服务的令牌,将其放入缓存中,并使其可用于浏览器
请注意,系统已经有用户的TGT,因此这次不会提示用户输入凭据。