配置 SharePoint Kerberos

配置 SharePoint Kerberos

Sharepoint 支持 NTLM 和 Kerberos 两种验证协议:

NTLM

默认设置(NTLM 协议)基于一种“提问 - 答复”机制来进行客户端验证。SharePoint 产品中提供了 NTLM,以便与只能使用 NTLM 验证的系统进行通信。

协商 (Kerberos)

Kerberos V5 协议是用于域内验证的主要安全协议。Kerberos 验证使用一种服务票证系统,该系统验证用户以及网络服务的身份。这样的双重验证被称为相互验证。 该系统会先试图通过 Kerberos 协议协商验证,但如果不成功,则使用 NTLM 协议。


配置 SharePoint Kerberos

如图所示,尽管微软推荐使用 Kerberos 作为安全性配置,说是可以与集成的 Windows 验证一起使用。

但是,需要额外的配置,微软的配置还是用的 NTLM。而且,所能见到的文章、书籍也都一样没有对如何进行 Kerberos 配置有介绍。

下面,我就把我的个人摸索做一个介绍,不一定正确。

如果要在使用 Kerberos 协议进行身份验证的网络中部署 Sharepoint Server,则必须为报表服务器服务创建服务主体名称(SPN)。

SPN是服务在使用 Kerberos身份验证的网络上的唯一标识符。它由服务类、主机名和端口组成。对于内置帐户(NetworkService或LocalSystem),SPN将自动进行注册。

如果是域用户帐户,则需要为该帐户手工注册 SPN。因为,我们选择的是服务器场,就只有用域用户了,也就必须注册 SPN。

要注册 SPN,可使用 SetSPN 工具。它随Windows Server支持工具包提供,也可以从网站下载。Windows 2008 以后的版本默认就有。

在命令行提示符(以管理员身份运行)窗口中执行以下命令:

Setspn –a MSSQLSvc/SQL <域用户名>

即:

Setspn –a MSSQLSvc/SQL.tj.home:1433 tj/SP_DB

Setspn –a MSSQLSvc/SQL.tj.home tj/SP_DB

SQL.tj.home: 数据库服务器名

tj/SP_DB: 连接数据库的域帐号

前面,有关设置的 SQL Server 的 SPN 还是相对简单的,下面我们再接着说一点复杂的。

我们知道,Sharepoint 的网站是运行在不同的 Web 应用程序中,而不同的应用程序又是运行相应的程序池,不同的程序池可能有不同的帐号。进行设置,就是针对不同的程序池的。

SPN 中的服务名都是 HTTP,这个很好理解。

关于端口,80 是不需要专门设置的。

那么,我们要注册的:

Setspn –A HTTP/SP.tj.home tj/SP_App

SP.tj.home : Sharepoint 服务器;

tj/SP_App : 程序池运行帐号。

这是一最基本的情况,如果要用到主机头,也与此相仿。比如,主机头:Protal.tj.home,基运行的程序池帐号 tj/SP_PortalApp,则:

Setspn –A HTTP/Portal.tj.home tj/SP_PortalApp

Portal.tj.home 要在 DNS 注册主机(A)记录,这不属于本文的讨论。

当然,完整的配置还应包括:管理中心、共享服务管理、自助网站等。

还有一个要说明的是,SSP 基础结构的 Kerberos 身份验证,使用了一个新的自定义格式 SPN。该自定义格式 SPN 包括一个新的服务类:MSSP。

SPN 采用以下格式:MSSP/<主机:端口>/<SSP 名称>。

但这个在 Sharepoint 2010 中已经有了较大的改变,如何设置,还要再研究。

http://technet.microsoft.com/zh-cn/magazine/ee914605.aspx

http://technet.microsoft.com/zh-cn/library/cc263449(office.12).aspx

http://kb.cnblogs.com/page/73963/