如何根据 Kerberos 中的服务 URL 查找服务主体名称?



我想知道,当我在Kerberos领域中,例如,我在浏览器中键入组织中某个服务的URL时,浏览器如何知道服务主体名称,从而知道要向KDC发送什么?

  1. 先决条件是-服务主体名称必须附加到其中一个用户(通常是系统用户(。有关详细信息,请查看setspn命令详细信息
    通常SPN格式为<服务类别><主机>:<端口><服务名称>。
    例如HTTP/MYHOST。域。COM
    如果要创建一个键选项卡,请检查窗口的ktpass命令。它采用格式<服务类别><主机>:<端口><服务名称><REALM>
    通过调用这些命令,KDC现在知道了您的服务。
    有关SPN的更多信息,请查看此处。

  2. 当从浏览器调用url时,服务器返回HTTP 401:Negotiate
    浏览器现在知道服务器需要kerberos(或ntlm(令牌。

  3. 通常客户端(如桌面(在本地维护Kerberos令牌缓存。当用户使用凭据登录到机器时,TGT(加上一些系统服务的票证(存储在该缓存中
    请注意,令牌是根据服务(SPN(颁发的。

  4. 浏览器在该缓存中查找与访问的服务相对应的kerberos令牌
    如果找到令牌,则会将其返回到服务器
    如果找不到,则windows(系统(会联系kdc,带来此服务的令牌,将其放入缓存中,并使其可用于浏览器
    请注意,系统已经有用户的TGT,因此这次不会提示用户输入凭据。

最新更新