Case by Case..

Wang Ting's Tech Blog
随笔 - 40, 评论 - 249, 引用 - 12

导航

工具

关于

勿发广告,谢谢配合

标签

每月存档

广告



访客

Troubleshooting Kerberos Delegation..

终于遇到了传说中的Kerberos delegation的问题……

 

要把用户的身份通过Integrated Windows AuthenticationIE传到IIS ASP.Net Web Application再传到SQL Server,典型的double-hop……NTLM是无法做到的,因为在IIS端没有得到用户的真实密码,没法应付SQL Server端的Challenge……如果IEIIS,或者IISSQL Server在同一台机器上,那就没有double-hop问题了……

 

这种情况下只有配Kerberos delegation。由于ASP.Net 1.1Impersonate是由Inetinfo.exe进程做的,而Inetinfo.exe默认跑在SYSTEM下,我们只需要在DC上给IIS ServerComputer Account“Trusted for Delegation”,而不用考虑用domain accountaspnet_wp.exe worker process

 

很有用的文章,可以说是字字珠玑:

 

How to configure an ASP.NET application for a delegation scenario

http://support.microsoft.com/?id=810572

 

这篇文章的中文版至今为止都没有被revise过,感觉乱七八糟的,还是不看为妙……

 

Kerberos delegation其实不难配,难的是troubleshoot,因为牵涉的领域多了一点,IEIISASP.NetSQL Server,还有DC。一个“Login failed for (null) user”error上来给人一种无从下手的感觉……

 

其实troubleshoot Kerberos delegation的王道是抓包……要从头开始抓,不断重新logon和iisreset,从IE一直抓到SQL Server……虽然可能有些重复,但我觉得还是有必要,因为每台机器都会单独再发requestDC。在IEIIS之间看WWW-AuthenticationHTTP Header。在IISSQL Server间看包里有没有“NTLMSSP”字样,有的话就说明没有用到Kerberos……条件允许的话一定要用SMS 2003Network Monitor看包。不明白为什么,Windows 2003带的NetMon无法解析UDP 88Kerberos包,如果能直接看懂16进制的raw packet自然最好,否则还是用SMS 2003带的NetMon……如果确定了哪一个hop出的问题,可以考虑看security event log或者是Kerberos system event log

 

HOW TO: Enable Kerberos Event Logging

http://support.microsoft.com/?id=262177

 

下面都是一些经我筛选,个人认为极有用的文章:

 

如果看到了KRB_ERROR的包不明白:

 

Basic Overview of Kerberos User Authentication Protocol in Windows 2000

http://support.microsoft.com/?id=217098

 

如果在Event Log里看见了错误信息:

 

Description of Common Kerberos-Related Errors in Windows 2000

http://support.microsoft.com/?id=230476

 

如果IEIIS之间就出了问题:

 

HOW TO: Troubleshoot Kerberos-Related Issues in IIS

http://support.microsoft.com/?id=326985

 

如果到了SQL Server才出问题:

 

INF: SQL Server 2000 Kerberos support including SQL Server virtual servers on server clusters

http://support.microsoft.com/?id=319723

(注意:Named Pipe不支持Kerberos验证)

 

两个必备工具:

 

Setspn.exe

http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setspn-o.asp

 

Kerbtray.exe: Kerberos Tray

http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/kerbtray-o.asp

 

最后,一部troubleshooting大典:

 

Troubleshooting Kerberos Delegation

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx

 

posted on 2005-01-06 00:09:00 by TingWang  评论(9) 阅读(3895)

Powered by: Joycode MVC Blogger System