利未的技术专栏
主要关注商业智能、数据库和软件架构设计等企业级解决方案
1    场景描述
客户的物理环境和安装的软件如下:
机器名
是否加入域
主要功能
安装的主要软件和组件
DC
域控制器
域控制器和DNS服务器
·         Windows 2003 + SP1
·         Windows 2003 Support Tools
SQL
加入域
数据库服务器
·         Windows 2003 + Sp1
·         .Net Framework 2.0
·         SQL Server 2005 企业版 + Sp2
o   DB Engine
o   SSIS
o   SSAS
WSS
加入域
前端服务器
·         Windows 2003 + Sp1
·         .Net Framework 2.0
·         .Net Framework 3.0
·         Windows SharePoint 3.0 SP1
·         SQL Server 2005 (Reporting Services) + Sp2
·         Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint
Client1
没有加入域,但dns 指向DC的IP地址
客户端
·         Windows XP + Sp2
 
·         要求MOSS和SSRS能良好的集成,在点击报表的时候,也不弹出Windows 登录窗口。
·         SSRS的Data Source 使用Windows 集成验证方式,SSAS能通过USERName函数获取到当前的AD用户。
2    问题以及解决思路
·         因为使用了SQL Server Analysis Services 中的Dynamic Dimension Security,也就是需要根据访问Cube的当前用户,返回不同的维度数据阅读权限。所以SQL Server Reporting Services在部署的时候其数据源需要使用Windows 集成验证的模式。
·         因为SQL Server 和Reporting Services 部署在不同的机器上,所以需要设置SQL Server, IIS, SSAS, SSRS都为Kerberos 的验证方式。
·         在客户端加入域的情况下,访问报表的时候,想要不弹出Windows 登录验证窗口,MOSS那边也需要使用Windows 集成验证的方式。
·         在客户端不加入域的情况,访问报表的时候,想要不弹出Windows登录验证窗口,需要安装Microsoft SQL Server 2005 Reporting Services Add-in for Microsoft SharePoint ,并使用其Web Part来做WSS和SSSRS的整合。
3    解决步骤
在每台机器上在安装完【场景描述】中的软件和组件之后,请执行如下脚本:
所在机器
步骤说明
详细执行脚本
AD
·         使用SetSpn为AD帐号设置Service Principal Names
 
Cd c:\Program files\Support Tools\
 
setspn -A MSOLAPSvc.3/sql.ccpe.com CCPE\Administrator
setspn -A MSOLAPSvc.3/sql CCPE\Administrator
 
setspn -A http/wss.ccpe.com CCPE\Administrator
setspn -A http/wss CCPE\Administrator
 
setspn -A MSSQLsvc/sql.ccpe.com:1433  CCPE\Administrator
setspn -A MSSQLsvc/sql:1433 CCPE\Administrator
 
AD
·         在AD管理器里面设置前端服务器为“Trust computer for delegation”
·         设置运行SSRS的IIS的AppPool 帐号为“Account is trusted for delegation”
1) 进入Active Directory Domains and Trust
2) 选择Computers,右键点击WSS,选择Properties,选中Trust computer for delegation,点击确定退出
3) 选择User,找到Administrator,右键点击Propertis,选择Account Tab页,选择Account is trusted for delegation,取消选择Account is sensitive and cannot be delegated.
WSS
·         设置COM+ 的Security从Impersonate 改为 Delegate
1) 在控制面板里面,单击Component Services
2) 展开Computers ,右键点击My Computer,选择Properties ,选择Default Properties TAB也,从Default Impersonation Level 那里选择Delegate,点击确定退出
WSS
·         设置IIS为Kerberos验证方式
CD c:\InetPub\AdminScripts\
 
cscript adsutil.vbs set w3svc\NTAuthenticationProviders "Negotiate,NTLM"
 
iisreset
其他
其他注意事项
·         所有报表的Data Source需要加入SSPI=Kerberos连接字符串
·         假如在AD里面加了一个ReportGroup组作为访问报表的用户组。则需要在AS里面把ReportGroup加入能访问AS的Security List中去。用SQL Server Management Sutdio连接到AS,右键点击选择Properties-选择Security。
·         需要在WSS里面加入ReportGroup到访问者角色
·         需要配置SSRS 的Services, Web App Pool 的运行账户为指定的域用户
·         在WSS网站应该配置成Kerberos 验证方式
·         在Visual Studio 2005里面发布Reporting Services项目的时候,要注意TargetDataSourceFolder,TargetReportFolder, 都要指向http开头的WSS站点完整路径,TargetServerURL则指向WSS站点URL
 
4    附录
通过命令行初始化和配置WSS
cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN
 
psconfig -cmd configdb -create -server sql -database WSS_Config -admincontentdatabase WSS_Content
 
psconfig -cmd helpcollections -installall
 
psconfig -cmd secureresources
 
psconfig -cmd services -install
 
psconfig -cmd installfeatures
 
psconfig -cmd adminvs -provision -port 8080 -windowsauthprovider enablekerberos
 
psconfig -cmd applicationcontent -install
 
5    参考链接
Setspn Overview
http://technet2.microsoft.com/windowsserver/en/library/b3a029a1-7ff0-4f6f-87d2-f2e70294a5761033.mspx?mfr=true
 
指定凭据和连接信息
http://technet.microsoft.com/zh-cn/library/ms160330.aspx
 
Kerberos Checklist
http://blogs.msdn.com/selvar/archive/2007/11/10/kerberos-overview.aspx
 
How to configure SQL Server 2005 Analysis Services to use Kerberos authentication
http://support.microsoft.com/kb/917409/en-us
 
HOW TO:配置 IIS 以支持 Kerberos 和 NTLM 身份验证
http://support.microsoft.com/kb/215383/
 
如何确保在创建到 SQL Server 2005 实例的远程连接时使用 Kerberos 身份验证
http://support.microsoft.com/kb/909801/zh-cn
 
如何在 SQL Server 中使用 Kerberos 身份验证
http://support.microsoft.com/kb/319723
posted on 2008-07-08 14:01  利未  阅读(2810)  评论(3编辑  收藏  举报