本文以上海交通大学管理决策系统与统一身份认证和授权系统为研究对象,介绍了Power BI与统一身份认证和授权系统集成的主要步骤,并列出了关键代码。
:本地部署的Power BI采用Windows身份认证方式,要实现与统一身份认证和授权系统的集成,需要改写其认证方式为Forms认证。同时通过控制报表文件夹访问权限,来实现与统一授权系统的集成。本文以上海交通大学管理决策系统与统一身份认证和授权系统为研究对象,介绍了Power BI与统一身份认证和授权系统集成的主要步骤,并列出了关键代码。
一、背景介绍与相关工作
1.背景介绍
随着高校信息化的不断发展,积累了大量的人事、财务、外事、教务、资产等方面的数据,为各个高校进行大数据分析奠定了基础。一些高校为了更好地发挥大数据的价值,开始建立管理决策支持系统。高校的大数据分析平台,需要建立直观的可视化分析展示平台,确保数据安全和稳定,数据自动更新,对接学校统一身份认证和授权体系,实现学校不同层级管理人员的操作权限、数据权限,并为各个业务领域内的专业人员提供高效易用的分析数据、报表等专业分析工具,达到以支持学校管理决策的作用。因此选择一款适合高校的BI产品变得十分关键。由于Power BI产品比同行业性价比高、发展趋势好,因此上海交通大学管理决策系统选择了微软的Power BI产品构架。基于数据安全和性价比的考虑,选择了Power BI 本地部署的方式。由于本地部署是基于Windows身份认证方式,所以Power BI与学校的统一身份认证和授权的无缝集成工作变得十分重要。本文对Power BI与上海交通大学统一身份认证和授权系统的集成实现进行详细分析。
2.Power BI
Power BI 是一套商业数据分析工具,为管理者提供决策支持。可连接数百个数据源、简化数据准备并提供及时分析。生成美观的报表并进行发布,供组织在 Web 和移动设备上使用。每个人都可创建个性化仪表板,获取针对其业务的全方位独特见解。在企业内实现扩展,内置管理和安全性。Power BI都可让你轻松地连接到数据源,直观看到或发现重要内容,与任何所希望的人进行共享。[1]
3.统一身份认证和授权系统
(1)统一身份认证
单点登录(即jaccount)是上海交通大学网络信息中心开发的用户认证体系。通过jaccount认证体系,可以在Web应用中实现单点登录,即用户在一个浏览器会话期里只需登录一次就能进入所有他拥有访问权限的jaccount成员站点。同时,jaccount也可以为校内第三方应用提供统一身份认证和单点登录服务,提供了方便的开发方式和接口。[2]
(2)统一授权系统
统一授权系统是在统一身份认证体系的基础上建立起来的统一管理各业务系统权限、角色、岗位的通用平台,各业务系统可以在统一授权系统中定义所需的权限、角色、岗位、属性等内容,管理员可以在统一授权系统中通过统一的入口直接管理各业务系统的角色和岗位。各业务系统可以通过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发布的报表等,本文提到的Web应用系统主要是指上海交通大学管理决策系统。具体的业务主要是利用ETL工具从数据中心获取到相关业务数据存到数据仓库,建立数据模型,创建大数据可视化的分析图表发布到图表服务器,用户通过Web应用系统访问相应的图表。具体的Power BI 本地部署架构如图1所示。
三是修改Report Server的Web.config文件。找到
四是配置Passthrough cookies,如下所示:
(4)项目远程调试
项目部署好后,如果有问题可以用远程调试来定位问题。下面就给出远程调试的主要步骤。主要就是在自定义认证项目CustomSecuritySample里修改好代码,部署到Power BI Report Server后,如果发现修改的内容没有生效或出错,就可以开启远程调试的方式来定位问题。远程调试主要就是把本地的Visual Studio 2015安装目录下的 Remote Debugger文件夹全部拷贝到Power BI Report Server部署所在的服务器上,然后以管理员的权限运行msvsmon文件,在工具菜单里选择允许任何人远程调试即可。在Visual Studio 2015项目里选择附加到进程调试,传输方式选择“远程(无身份验证)”,限定符的IP为远程服务器的IP地址,端口号是msvsmon里允许的端口号,例如211.X.X.58:5022 。点击刷新按钮,附加到相应的进程即可进行远程调试。
3.统一授权系统集成
上海交大统一授权系统可以对用户进行岗位授权,例如在统一授权系统中,对用户A授权岗位B,这样用户A就拥有了岗位B在各个应用系统中对应的岗位权限。岗位权限在应用系统中进行设置,岗位可以被授予页面权限,用户登录应用系统后就可以访问应用系统中相应的页面。而我们讨论的Power BI的报表就是嵌套在页面里,如果想访问页面里的报表内容,就必须把Power BI Report Server里的报表访问权限授予岗位,这样用户拥有了报表对应的岗位权限后就可以访问报表了。