Exchange与Sharepoint用户权限冲突的解决办法

12/3/2006来源:Exchange Server人气:6555

问题
Exchange Server2003存在一个漏洞,有时它不是让用户无法使用OutlookWeb access就是让用户可以完全访问其他人的帐户。

微软澳大利亚分公司Exchange产品经理AndrewCunningham在接受媒体采访时表示,微软在那之后进行的调查显示,当有人在ExchangeServer上运行MicrosoftWindows SharePoint Services时就会出现上述问题。

Cunningham说:“这不是一种常见的情况,大多数机构都有自己单独的Exchange应用功能,也有单独的SharePoint应用功能。”上述问题之所以会出现是因为,SharePoint会关闭Kerberos身份验证功能,而ExchangeServer在默认情况下总是会打开这项功能的。

解决办法
用户应该再次开启Kerberos身份验证功能,同时在SharePoint上也运行这种功能。

本文介绍如何配置 Microsoft Windows SharePoint Services 虚拟服务器以使用 Kerberos 身份验证。

当使用 Windows SharePoint Services 扩展 Microsoft Internet 信息服务 (IIS) 虚拟服务器时,会将该虚拟服务器配置为使用集成 Windows 身份验证(以前称为 NTLM 或 Windows NT 质询/响应身份验证)。通过在该虚拟服务器上配置集成 Windows 身份验证,Windows SharePoint Services 虚拟服务器可以作为域帐户运行,并且您无须在 Active Directory 目录服务中配置服务主要名称 (SPN)。

如果您的环境需要 Kerberos 身份验证,请按照本文中的步骤操作以便在虚拟服务器上配置 Kerberos 身份验证。

配置 Windows SharePoint Services 以使用 Kerberos 身份验证
要对通过 Windows SharePoint Services 扩展的虚拟服务器进行配置以使其使用 Kerberos 身份验证,您必须先在 IIS 中启用 Kerberos,然后为该虚拟服务器在运行时所使用的域帐户配置 SPN。


在 IIS 元数据库中启用 Kerberos
要在 IIS 中启用 Kerberos,请根据您的具体情况使用下列方法之一。

方法 1:手动编辑 IIS 元数据库

要手动编辑 IIS 元数据库以在虚拟服务器上启用 Kerberos,请按照下列步骤操作:
1、在 IIS 服务器上,启动记事本,然后打开位于硬盘上的以下文件夹中的 Metbase.xml 文件(其中 Systemroot 是安装 Microsoft Windows 的路径和文件夹名称):
Systemroot\System32\Inetsrv
2、在“IIsWebServer”节中,找到下面的行:
NTAuthenticationPRoviders="NTLM"
修改该行,使其与下面的内容完全一样:
NTAuthenticationProviders="Negotiate,NTLM"
3、在“文件”菜单上单击“保存”,然后退出记事本。
4、重新启动 IIS。为此,请按照下列步骤操作:
a、单击“开始”,然后单击“运行”。
b、在“打开”框中,键入 cmd,然后单击“确定”。
c、在命令提示符处,键入 iisreset,然后按 Enter 键。
d、键入 exit,然后按 Enter 键退出命令提示窗口。

方法 2:使用 IIS 管理脚本编辑 IIS 元数据库

使用脚本在虚拟服务器上启用 Kerberos 身份验证:
1、在 IIS 服务器上,单击“开始”,然后单击“运行”。
2、在“打开”框中,键入 cmd,然后单击“确定”。
3、更改到 Inetpub\Adminscripts 文件夹,然后键入以下命令行(其中驱动器 是安装 Windows 的驱动器):
cd 驱动器:\inetpub\adminscripts
4、键入以下命令行,然后按 Enter 键(其中 xx 是虚拟服务器 ID 号):
cscript adsutil.vbs get w3svc/xx/NTAuthenticationProviders
注意:IIS 中的默认 Web 站点的虚拟服务器 ID 是 1。
将返回如下字符串:
ntauthenticationproviders:(STRING) "NTLM"
5、要在虚拟服务器上启用 Kerberos,请键入以下命令行,然后按 Enter 键(其中 xx 是虚拟服务器 ID 号):
cscript adsutil.vbs set w3svc/##/NTAuthenticationProviders "Negotiate,NTLM"
注意:IIS 中的默认 Web 站点的虚拟服务器 ID 是 1。
6、重新启动 IIS。为此,请按照下列步骤操作:
a、单击“开始”,然后单击“运行”。
b、在“打开”框中,键入 cmd,然后单击“确定”。
c、在命令提示符处,键入 iisreset,然后按 Enter 键。
d、键入 exit,然后按 Enter 键退出命令提示窗口。

为域用户帐户配置服务主要名称
如果将 Windows SharePoint Services 站点的应用程序池标识配置为使用内置的安全主体(例如,NT Authority\Network Service 或 NT Authority\Local System),则无须执行该步骤。内置帐户被自动配置为使用 Kerberos 身份验证。

如果您使用远程 Microsoft SQL Server 2000 服务器,并且您需要使用 NT Authority\Network Service 作为域帐户,则您必须添加域\计算机名称$ 项,并使用“数据库创建者”和“安全管理员”权限对其进行配置。这样,Windows SharePoint Services 就可以连接到远程 SQL Server 计算机以创建配置和内容数据库。

如果 IIS 服务器是域的成员但不是域控制器,则该服务器必须被信任作为委派,Kerberos 身份验证才能正常工作。要配置 IIS 服务器以信任其作为委派,请按照下列步骤操作:
1、在域控制器上,启动“Active Directory 用户和计算机”。
2、在左窗格中,单击“计算机”。
3、在右窗格中,右键单击 IIS 服务器的名称,然后单击“属性”。
4、单击“常规”选项卡,单击以选中“信任计算机作为委派”复选框,然后单击“确定”。
5、退出“Active Directory 用户和计算机”。

如果将应用程序池标识配置为使用域用户帐户,则该帐户必须被信任作为委派,然后才能使用 Kerberos 身份验证。要配置域帐户以信任其作为委派,请按照下列步骤操作:
1、在域控制器上,启动“Active Directory 用户和计算机”。
2、在左窗格中,单击“用户”。
3、在右窗格中,右键单击该用户帐户的名称,然后单击“属性”。
4、单击“帐户”选项卡,在“帐户选项”下,单击以选中“帐户可委派其他帐户”复选框,然后单击“确定”。
5、退出“Active Directory 用户和计算机”。

如果应用程序池标识是一个域用户帐户,则必须为该帐户配置 SPN。要为该域用户帐户配置 SPN,请按照下列步骤操作:
1、下载并安装 Setspn.exe 命令行工具。为此,请访问下面的 Microsoft Web 站点:
http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/setspn-o.asp
2、使用 Setspn.exe 工具为域帐户添加 SPN。为此,请在命令提示符处键入下面的行,然后按 Enter 键(其中,服务器名称 是服务器的完全限定域名 (FQDN),域 是该域的名称,用户名 是该域用户帐户的名称):
Setspn -A HTTP/服务器名称域\用户名

这篇文章中的信息适用于:
Microsoft Windows SharePoint Services
Microsoft Exchange Server 2003

,