• 如何解决SSAS + SSRS + WSS3.0 之间的Windows 集成验证问题


    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
     
    指定凭据和连接信息
     
    Kerberos Checklist
     
    How to configure SQL Server 2005 Analysis Services to use Kerberos authentication
     
    HOW TO:配置 IIS 以支持 Kerberos 和 NTLM 身份验证
     
    如何确保在创建到 SQL Server 2005 实例的远程连接时使用 Kerberos 身份验证
     
    如何在 SQL Server 中使用 Kerberos 身份验证
  • 相关阅读:
    git查看远程仓库地址命令
    sublime 安装插件GitGutter报错,git binary cannot be found等等
    sublime 中 pyv8 binary 报错怎么处理?
    经典语录(个人喜欢)
    css水平垂直居中对齐方式
    github怎么退出组织和删除自己创建的组织
    js学习篇1--数组
    js学习篇--数组按升序降序排列
    tp5.1 swoole 实现异步处理
    验证sll证书与密钥
  • 原文地址:https://www.cnblogs.com/levi/p/1238150.html
Copyright © 2020-2023  润新知