PowerBI与统一身份认证和授权系统集成的研究与实践_第1页
PowerBI与统一身份认证和授权系统集成的研究与实践_第2页
PowerBI与统一身份认证和授权系统集成的研究与实践_第3页
PowerBI与统一身份认证和授权系统集成的研究与实践_第4页
PowerBI与统一身份认证和授权系统集成的研究与实践_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    powerbi与统一身份认证和授权系统集成的研究与实践    摘要:本地部署的power bi采用windows身份认证方式,要实现与统一身份认证和授权系统的集成,需要改写其认证方式为forms认证。同时通过控制报表文件夹访问权限,来实现与统一授权系统的集成。本文以上海交通大学管理决策系统与统一身份认证和授权系统为研究对象,介绍了power bi与统一身份认证和授权系统集成的主要步骤,并列出了关键代码。关键词:power bi,数据可视化,统一身份认证,统一授权,高校信息化一、背景介绍与相关工作1.背景介绍随着高校信息化的不断发展,积累了大量的人

2、事、财务、外事、教务、资产等方面的数据,为各个高校进行大数据分析奠定了基础。一些高校为了更好地发挥大数据的价值,开始建立管理决策支持系统。高校的大数据分析平台,需要建立直观的可视化分析展示平台,确保数据安全和稳定,数据自动更新,对接学校统一身份认证和授权体系,实现学校不同层级管理人员的操作权限、数据权限,并为各个业务领域内的专业人员提供高效易用的分析数据、报表等专业分析工具,达到以支持学校管理决策的作用。因此选择一款适合高校的bi产品变得十分关键。由于power bi产品比同行业性价比高、发展趋势好,因此上海交通大学管理决策系统选择了微软的power bi产品构架。基于数据安全和性价比的考虑,

3、选择了power bi本地部署的方式。由于本地部署是基于windows身份认证方式,所以power bi与学校的统一身份认证和授权的无缝集成工作变得十分重要。本文对power bi与上海交通大学统一身份认证和授权系统的集成实现进行详细分析。2.power bipower bi是一套商业数据分析工具,为管理者提供决策支持。可连接数百个数据源、简化数据准备并提供及时分析。生成美观的报表并进行发布,供组织在web和移动设备上使用。每个人都可创建个性化仪表板,获取针对其业务的全方位独特见解。在企业内实现扩展,内置管理和安全性。power bi都可让你轻松地连接到数据源,直观看到或发现重要内容,与任何所

4、希望的人进行共享。13.统一身份认证和授权系统(1)统一身份认证单点登录(即jaccount)是上海交通大学网络信息中心开发的用户认证体系。通过jaccount认证体系,可以在web应用中实现单点登录,即用户在一个浏览器会话期里只需登录一次就能进入所有他拥有访问权限的jaccount成员站点。同时,jaccount也可以为校内第三方应用提供统一身份认证和单点登录服务,提供了方便的开发方式和接口。2(2)统一授权系统统一授权系统是在统一身份认证体系的基础上建立起来的统一管理各业务系统权限、角色、岗位的通用平台,各业务系统可以在统一授权系统中定义所需的权限、角色、岗位、属性等内容,管理员可以在统一

5、授权系统中通过统一的入口直接管理各业务系统的角色和岗位。各业务系统可以通过web接口或者数据交换平台获取用户在各自业务系统中的角色、岗位和权限。3二、设计与实现1.概述用power bi相关产品开发数据分析系统,主要开发内容包括,建立数据仓库、创建sql server analysis service 模型项目、创建sql server integration services项目、创建power bi report server、power bi desktop进行自助分析并发布到power bi report server、web应用访问power bi report server发布的报

6、表等,本文提到的web应用系统主要是指上海交通大学管理决策系统。具体的业务主要是利用etl工具从数据中心获取到相关业务数据存到数据仓库,建立数据模型,创建大数据可视化的分析图表发布到图表服务器,用户通过web应用系统访问相应的图表。具体的power bi本地部署架构如图1所示。图1 power bi本地部署架构图本文讨论的解决方案是基于power bi采用本地部署的方式。power bi与学校的统一身份认证和授权系统集成主要有两个难点,一个是用户通过统一身份认证登录后,如何免登录到power bi report server;另一个是用户登录到power bi report server后,如

7、何控制用户访问power bi report server报表权限。2.统一身份认证集成由于本文讨论的power bi基于本地部署的方式,所以power bi report server的认证方式是windows身份认证的方式,需要借助于customsecuritysample开源项目4来实现自定义认证。需要对customsecuritysample项目的代码进行二次开发,同时按照customsecuritysample项目的说明进行配置,从而实现用户通过统一身份认证后登录到web应用系统,然后借助customsecuritysample实现power bi report server的for

8、ms认证,从而自动登录到power bi report server。(见图2)图2 统一身份认证集成流程图(1)搭建项目本系统开发中用的开发工具是microsoft visual studio 2015、microsoft sql server 2016,以自定义认证项目customsecuritysample为基础进行二次开发,用microsoft visual studio 2015打开customsecuritysample.sln,添加引用microsoft.reportingservices.interfaces.dll。(2)项目关键代码修改logon.aspx里的page_lo

9、ad方法,用户登录web应用后,自动登录到power bi report server,这样用户查看报表的时候就可以直接访问发布在power bi report server里的报表了。主要代码如下所示:/l里的代码,统一身份认证登录后自动跳转到自定义认证项目的logon.aspx页面,在page_load方法里进行登录验证reportserverproxy reportserverproxy=new reportserverproxy();reportserverproxy.url=“/reportserver/reportservice2010.asmx”;try/调用authentica

10、tionextensioncs里的logonuser方法reportserverproxy.logonuser(uname,upwd,null);response.redirect(returnurl,false);/returnurl是跳转过来的urlreturn;catch(exception ex)response.redirect("/logon.aspx);/cookie过期或者身份验证错误。response.end();/authenticatione里的logonuser方法的主要代码bool result=authenticationutilities.verifyp

11、assword(username,password);/authenticationu里的verifypassword方法代码主要是就是验证用户名和密码是否正确。如果正确返回true,用户自动登录到power bi report server,自定义认证项目内部实现了登录到power bi report server。(3)项目配置部署到power bi report server服务器一是将logon.aspx页面复制到report server的安装目录下。将customsecurity.dll和customsecurity.pdb复制到bin文件夹下,同理将这两个文件复制到portal和

12、powerbi安装目录下。二是修改rsreportserver.config文件。找到authentication元素进行修改,主要是把认证方式改为forms认证,如下所示:authenticationextension name="forms"/authentication三是修改report server的web.config文件。找到authentication元素并将mode属性更改为forms,如下所示:authentication mode="forms"/authentication四是配置passthrough cookies,如下所示:

13、passthroughcookiesqlauthcookie/passthroughcookie(4)项目远程调试项目部署好后,如果有问题可以用远程调试来定位问题。下面就给出远程调试的主要步骤。主要就是在自定义认证项目customsecuritysample里修改好代码,部署到power bi report server后,如果发现修改的内容没有生效或出错,就可以开启远程调试的方式来定位问题。远程调试主要就是把本地的visual studio 2015安装目录下的remote debugger文件夹全部拷贝到power bi report server部署所在的服务器上,然后以管理员的权限运行

14、msvsmon文件,在工具菜单里选择允许任何人远程调试即可。在visual studio 2015项目里选择附加到进程调试,传输方式选择“远程(无身份验证)”,限定符的ip为远程服务器的ip地址,端口号是msvsmon里允许的端口号,例如211.x.x.58:5022。点击刷新按钮,附加到相应的进程即可进行远程调试。3.统一授权系统集成上海交大统一授权系统可以对用户进行岗位授权,例如在统一授权系统中,对用户a授权岗位b,这样用户a就拥有了岗位b在各个应用系统中对应的岗位权限。岗位权限在应用系统中进行设置,岗位可以被授予页面权限,用户登录应用系统后就可以访问应用系统中相应的页面。而我们讨论的po

15、wer bi的报表就是嵌套在页面里,如果想访问页面里的报表内容,就必须把power bi report server里的报表访问权限授予岗位,这样用户拥有了报表对应的岗位权限后就可以访问报表了。图3 统一授权系统集成流程图power bi report server报表岗位授权的关键步骤是把报表访问的权限授予岗位,这样用户拥有岗位的权限后就可以访问报表了。用power bi desktop制作好报表后,发布到power bi report server指定的文件夹里。发布报表前管理员需要在power bi report server上新建文件夹。在对文件夹的安全性里添加“组或用户”,新增“组或

16、用户”的时候需要和岗位名称保持一致,同时用户访问报表的时候会判断用户的岗位是否在文件夹的“组或用户”里。主要代码是改写customsecuritysample项目里的authorization.cs类的checkoperations方法。主要代码如下所示:/通过用户名获取用户岗位dataset dsroles=getuserroles(principalname);if(dsroles.tables0.rows.count0)roles=new stringdsroles.tableso.rows.count;for(int i=0;idsroles.tableso.rows.count;i+

17、)rolesi=dsroles.tableso.rowsio.tostring();if(roles!=null)foreach(string role in roles)/校验用户访问文件夹的权限if(isuserauthorized(role,acl,requiredoperation)return true;return false;elsereturn false;private bool isuserauthorized(string principalname,acecollection acl,object requiredoperation)collectionbase ope

18、rations=null;if(principalname.trim()=string.empty)return false;if(0=string.compare(principalname,m_adminusername,true,cultureinfo.currentculture)return true;foreach(acestruct ace in acl)if(0!=string.compare(principalname,ace.principalname,true,cultureinfo. currentculture)continue;if(requiredoperatio

19、n is catalogoperation)operations=ace.catalogoperations;else if(requiredoperation is datasourceoperation)operations=ace.datasourceoperations;else if(requiredoperation is folderoperation)operations=ace.folderoperations;else if(requiredoperation is resourceoperation)operations=ace.resourceoperations;else if(requiredoperation is resourceoperation)operations=ace.resourceoperations;foreach(object acloperation in operations)if(acloperation.tostring()=requiredoperation.tostring()return true;return false;三、结束语本文阐述了上海交大管理决策系统采用本地部署的power

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论