关于Kerberos delegation
概念:Kerberos delegation允许一台服务器,模拟客户的身份,代表客户去访问远程的资源。Delegation 指得是服务器进程帐户(用于服务器进程运行的User帐户或者本地SYSTEM帐户)代表客户端帐户(客户端访问服务器的帐户)去访问远程资源。
实例:一台IIS服务器,一台Exchange服务器,一台域控制器。客户端有一个帐户(假设为test\clienttest,是test域的一个用户)需要访问远程Exchange服务器取得相应的信息(如邮件,日历,任务等信息)。由于进程是在IIS服务器上运行的,服务器上的帐户(假设为test\servertest,也是test域的一个用户)和客户端的帐户一般是不同的,而访问的过程是通过服务器上的帐户,显然是不能验证通过的。
解决方案:通过Kerberos delegation。让test\servertest帐户模拟test\clienttest帐户,去访问Exchange 服务器上的资源。验证过程是这样的:test\servertest帐户取得test\clienttest帐户的Credential,利用这个Credential去Exchange服务器上验证,显然是能通过的。验证通过以后,将取回的信息返回给客户端。
1.test\servertest帐户模拟test\clienttest帐户去访问远程服务器(假设名为Exch),此时Exch看到的是一个空Session,而不是test\servertest帐户的一个登录。
2.Kerberos delegation要求客户端和服务器端的时间保持同步,如果不同步,验证将不能通过。所以造成有时候能通过验证有时候(往往是就几个小时以后)能够通过的可能原因是:与精确性低的时间源同步或网络条件不太好造成了服务器和客户端之间的时间差。
关于:怎样配置 WSS (Windows Sharepoint Service)以使用 Kerberos 身份验证,请参考另两篇文章http://www.cnblogs.com/xhp5678/archive/2004/06/14/15725.aspx,和http://www.cnblogs.com/xhp5678/archive/2004/06/27/18999.aspx