代码之家  ›  专栏  ›  技术社区  ›  James Newton-King dbc

测试网站是否正在使用Kerberos身份验证

  •  3
  • James Newton-King dbc  · 技术社区  · 16 年前

    如何检查IIS网站是否已成功使用Kerberos,并且没有回退到NTLM上?

    6 回复  |  直到 13 年前
        1
  •  4
  •   Christopher G. Lewis    16 年前

    Fiddler2 将指示身份验证头是否为NTLM与Kerberos。

        Authorization Header (Negotiate) appears to contain a Kerberos ticket:
    60 82 13 7B 06 06 2B 06 01 05 05 02 A0 82 13 6F  `.{..+..... .o
    

        WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
    A1 81 A0 30 81 9D A0 03 0A 01 00 A1 0B 06 09 2A  ¡ 0 ....¡...*
    
        2
  •  3
  •   Alan    16 年前

    我能想到的最简单的方法是使用wireshark监视网络包,并验证您的IIS服务器是否正在从您的DC请求Kerberos票据。

        3
  •  3
  •   James Newton-King dbc    16 年前

    我发现在您使用Kerberos的代码中测试的一种方法是,NTLM的HTTP U授权头始终以以下开头:

    Negotiate TlRMTVNTUA
    

    如果头不是以文本开头,那么浏览器将使用Kerberos进行身份验证。

        4
  •  1
  •   Nico    16 年前

    您可以在Web服务器的事件查看器中检查安全日志。

    您还可以在客户机上启动Kerbaty并检查它是否使用了正确的SPN。路缘托盘可用 here (别担心,这不仅仅是Win2000)。

        5
  •  1
  •   jsw    16 年前

    我使用事件查看器中的安全日志像前面提到的一样进行检查。以下是成功的路缘认证:

    Successful Network Logon:
    User Name:  {Username here}
    Domain:     {Domain name here}
    Logon ID:   (0x0,0x########)
    Logon Type: 3
    Logon Process:  Kerberos
    Authentication Package: Kerberos
    Workstation Name:   
    Logon GUID: {########-####-####-####-############}
    Caller User Name:   -
    Caller Domain:  -
    Caller Logon ID:    -
    Caller Process ID: -
    Transited Services: -
    Source Network Address: -
    Source Port:    -
    
    
    For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
    
        6
  •  0
  •   Lex Li    16 年前

    好吧,negotiate也可以是kerberos,因为它是kerberos和ntlm的包装器。就像其他人说的,wireshark(或network monitor)和安全事件日志不会欺骗你。