• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Power BI與統(tǒng)一身份認證 和授權(quán)系統(tǒng)集成的研究與實踐

      2018-02-28 10:31王萬東王罡杜晉博方淑津張林石
      中國教育信息化·高教職教 2018年12期
      關(guān)鍵詞:高校信息化數(shù)據(jù)可視化

      王萬東 王罡 杜晉博 方淑津 張林石

      摘 要:本地部署的Power BI采用Windows身份認證方式,要實現(xiàn)與統(tǒng)一身份認證和授權(quán)系統(tǒng)的集成,需要改寫其認證方式為Forms認證。同時通過控制報表文件夾訪問權(quán)限,來實現(xiàn)與統(tǒng)一授權(quán)系統(tǒng)的集成。本文以上海交通大學管理決策系統(tǒng)與統(tǒng)一身份認證和授權(quán)系統(tǒng)為研究對象,介紹了Power BI與統(tǒng)一身份認證和授權(quán)系統(tǒng)集成的主要步驟,并列出了關(guān)鍵代碼。

      關(guān)鍵詞:Power BI ;數(shù)據(jù)可視化;統(tǒng)一身份認證;統(tǒng)一授權(quán);高校信息化

      中圖分類號:TP311.1 文獻標志碼:A 文章編號:1673-8454(2018)23-0054-04

      一、背景介紹與相關(guān)工作

      1.背景介紹

      隨著高校信息化的不斷發(fā)展,積累了大量的人事、財務、外事、教務、資產(chǎn)等方面的數(shù)據(jù),為各個高校進行大數(shù)據(jù)分析奠定了基礎。一些高校為了更好地發(fā)揮大數(shù)據(jù)的價值,開始建立管理決策支持系統(tǒng)。高校的大數(shù)據(jù)分析平臺,需要建立直觀的可視化分析展示平臺,確保數(shù)據(jù)安全和穩(wěn)定,數(shù)據(jù)自動更新,對接學校統(tǒng)一身份認證和授權(quán)體系,實現(xiàn)學校不同層級管理人員的操作權(quán)限、數(shù)據(jù)權(quán)限,并為各個業(yè)務領(lǐng)域內(nèi)的專業(yè)人員提供高效易用的分析數(shù)據(jù)、報表等專業(yè)分析工具,達到以支持學校管理決策的作用。因此選擇一款適合高校的BI產(chǎn)品變得十分關(guān)鍵。由于Power BI產(chǎn)品比同行業(yè)性價比高、發(fā)展趨勢好,因此上海交通大學管理決策系統(tǒng)選擇了微軟的Power BI產(chǎn)品構(gòu)架。基于數(shù)據(jù)安全和性價比的考慮,選擇了Power BI 本地部署的方式。由于本地部署是基于Windows身份認證方式,所以Power BI與學校的統(tǒng)一身份認證和授權(quán)的無縫集成工作變得十分重要。本文對Power BI與上海交通大學統(tǒng)一身份認證和授權(quán)系統(tǒng)的集成實現(xiàn)進行詳細分析。

      2.Power BI

      Power BI 是一套商業(yè)數(shù)據(jù)分析工具,為管理者提供決策支持??蛇B接數(shù)百個數(shù)據(jù)源、簡化數(shù)據(jù)準備并提供及時分析。生成美觀的報表并進行發(fā)布,供組織在 Web 和移動設備上使用。每個人都可創(chuàng)建個性化儀表板,獲取針對其業(yè)務的全方位獨特見解。在企業(yè)內(nèi)實現(xiàn)擴展,內(nèi)置管理和安全性。Power BI都可讓你輕松地連接到數(shù)據(jù)源,直觀看到或發(fā)現(xiàn)重要內(nèi)容,與任何所希望的人進行共享。[1]

      3.統(tǒng)一身份認證和授權(quán)系統(tǒng)

      (1)統(tǒng)一身份認證

      單點登錄(即jaccount)是上海交通大學網(wǎng)絡信息中心開發(fā)的用戶認證體系。通過jaccount認證體系,可以在Web應用中實現(xiàn)單點登錄,即用戶在一個瀏覽器會話期里只需登錄一次就能進入所有他擁有訪問權(quán)限的jaccount成員站點。同時,jaccount也可以為校內(nèi)第三方應用提供統(tǒng)一身份認證和單點登錄服務,提供了方便的開發(fā)方式和接口。[2]

      (2)統(tǒng)一授權(quán)系統(tǒng)

      統(tǒng)一授權(quán)系統(tǒng)是在統(tǒng)一身份認證體系的基礎上建立起來的統(tǒng)一管理各業(yè)務系統(tǒng)權(quán)限、角色、崗位的通用平臺,各業(yè)務系統(tǒng)可以在統(tǒng)一授權(quán)系統(tǒng)中定義所需的權(quán)限、角色、崗位、屬性等內(nèi)容,管理員可以在統(tǒng)一授權(quán)系統(tǒng)中通過統(tǒng)一的入口直接管理各業(yè)務系統(tǒng)的角色和崗位。各業(yè)務系統(tǒng)可以通過Web 接口或者數(shù)據(jù)交換平臺獲取用戶在各自業(yè)務系統(tǒng)中的角色、崗位和權(quán)限。[3]

      二、設計與實現(xiàn)

      1.概述

      用Power BI相關(guān)產(chǎn)品開發(fā)數(shù)據(jù)分析系統(tǒng),主要開發(fā)內(nèi)容包括,建立數(shù)據(jù)倉庫、創(chuàng)建Sql Server Analysis Service模型項目、創(chuàng)建Sql Server Integration Services項目、創(chuàng)建Power BI Report Server、Power BI Desktop進行自助分析并發(fā)布到Power BI Report Server、Web應用訪問Power BI Report Server發(fā)布的報表等,本文提到的Web應用系統(tǒng)主要是指上海交通大學管理決策系統(tǒng)。具體的業(yè)務主要是利用ETL工具從數(shù)據(jù)中心獲取到相關(guān)業(yè)務數(shù)據(jù)存到數(shù)據(jù)倉庫,建立數(shù)據(jù)模型,創(chuàng)建大數(shù)據(jù)可視化的分析圖表發(fā)布到圖表服務器,用戶通過Web應用系統(tǒng)訪問相應的圖表。具體的Power BI 本地部署架構(gòu)如圖1所示。

      本文討論的解決方案是基于Power BI 采用本地部署的方式。Power BI與學校的統(tǒng)一身份認證和授權(quán)系統(tǒng)集成主要有兩個難點,一個是用戶通過統(tǒng)一身份認證登錄后,如何免登錄到Power BI Report Server;另一個是用戶登錄到Power BI Report Server后,如何控制用戶訪問Power BI Report Server報表權(quán)限。

      2.統(tǒng)一身份認證集成

      由于本文討論的Power BI基于本地部署的方式,所以Power BI Report Server的認證方式是Windows身份認證的方式,需要借助于CustomSecuritySample開源項目[4]來實現(xiàn)自定義認證。需要對CustomSecuritySample項目的代碼進行二次開發(fā),同時按照CustomSecuritySample項目的說明進行配置,從而實現(xiàn)用戶通過統(tǒng)一身份認證后登錄到Web應用系統(tǒng),然后借助CustomSecuritySample實現(xiàn)Power BI Report Server的Forms認證,從而自動登錄到Power BI Report Server。(見圖2)

      (1)搭建項目

      本系統(tǒng)開發(fā)中用的開發(fā)工具是Microsoft Visual Studio 2015、Microsoft SQL Server 2016,以自定義認證項目CustomSecuritySample為基礎進行二次開發(fā),用Microsoft Visual Studio 2015打開CustomSecuritySample.sln,添加引用Microsoft.ReportingServices.Interfaces.dll。

      (2)項目關(guān)鍵代碼

      修改Logon.aspx里的Page_Load方法,用戶登錄Web應用后,自動登錄到Power BI Report Server,這樣用戶查看報表的時候就可以直接訪問發(fā)布在Power BI Report Server里的報表了。主要代碼如下所示:

      //Logon.aspx.cs里的代碼,統(tǒng)一身份認證登錄后自動跳轉(zhuǎn)到自定義認證項目的Logon.aspx頁面,在Page_Load方法里進行登錄驗證

      ReportServerProxy reportServerProxy = new ReportServerProxy();

      reportServerProxy.Url = “/ReportServer/ReportService2010.asmx”;

      try{

      //調(diào)用AuthenticationExtension.cs里的LogonUser方法

      reportServerProxy.LogonUser(uname, upwd, null);

      Response.Redirect(returnURL, false);// returnURL是跳轉(zhuǎn)過來的url

      return;

      }

      catch (Exception ex){

      Response.Redirect("/Logon.aspx");// cookie過期或者身份驗證錯誤。

      Response.End();

      }

      // AuthenticationExtension.cs里的LogonUser方法的主要代碼

      bool result = AuthenticationUtilities.VerifyPassword(userName, password);

      // AuthenticationUtilities.cs里的VerifyPassword方法代碼

      主要是就是驗證用戶名和密碼是否正確。如果正確返回true,用戶自動登錄到Power BI Report Server,自定義認證項目內(nèi)部實現(xiàn)了登錄到Power BI Report Server。

      (3)項目配置部署到Power BI Report Server服務器

      一是將Logon.aspx頁面復制到Report Server的安裝目錄下。將CustomSecurity.dll和CustomSecurity.pdb復制到bin文件夾下,同理將這兩個文件復制到Portal和PowerBI安裝目錄下。

      二是修改RSReportServer.config文件。找到元素進行修改,主要是把認證方式改為Forms認證,如下所示:

      三是修改Report Server的Web.config文件。找到元素并將Mode屬性更改為Forms,如下所示:

      四是配置Passthrough cookies,如下所示:sqlAuthCookie

      (4)項目遠程調(diào)試

      項目部署好后,如果有問題可以用遠程調(diào)試來定位問題。下面就給出遠程調(diào)試的主要步驟。主要就是在自定義認證項目CustomSecuritySample里修改好代碼,部署到Power BI Report Server后,如果發(fā)現(xiàn)修改的內(nèi)容沒有生效或出錯,就可以開啟遠程調(diào)試的方式來定位問題。遠程調(diào)試主要就是把本地的Visual Studio 2015安裝目錄下的 Remote Debugger文件夾全部拷貝到Power BI Report Server部署所在的服務器上,然后以管理員的權(quán)限運行msvsmon文件,在工具菜單里選擇允許任何人遠程調(diào)試即可。在Visual Studio 2015項目里選擇附加到進程調(diào)試,傳輸方式選擇“遠程(無身份驗證)”,限定符的IP為遠程服務器的IP地址,端口號是msvsmon里允許的端口號,例如211.X.X.58:5022 。點擊刷新按鈕,附加到相應的進程即可進行遠程調(diào)試。

      3.統(tǒng)一授權(quán)系統(tǒng)集成

      上海交大統(tǒng)一授權(quán)系統(tǒng)可以對用戶進行崗位授權(quán),例如在統(tǒng)一授權(quán)系統(tǒng)中,對用戶A授權(quán)崗位B,這樣用戶A就擁有了崗位B在各個應用系統(tǒng)中對應的崗位權(quán)限。崗位權(quán)限在應用系統(tǒng)中進行設置,崗位可以被授予頁面權(quán)限,用戶登錄應用系統(tǒng)后就可以訪問應用系統(tǒng)中相應的頁面。而我們討論的Power BI的報表就是嵌套在頁面里,如果想訪問頁面里的報表內(nèi)容,就必須把Power BI Report Server里的報表訪問權(quán)限授予崗位,這樣用戶擁有了報表對應的崗位權(quán)限后就可以訪問報表了。

      Power BI Report Server報表崗位授權(quán)的關(guān)鍵步驟是把報表訪問的權(quán)限授予崗位,這樣用戶擁有崗位的權(quán)限后就可以訪問報表了。用Power BI Desktop制作好報表后,發(fā)布到Power BI Report Server指定的文件夾里。發(fā)布報表前管理員需要在Power BI Report Server上新建文件夾。在對文件夾的安全性里添加“組或用戶”,新增“組或用戶”的時候需要和崗位名稱保持一致,同時用戶訪問報表的時候會判斷用戶的崗位是否在文件夾的“組或用戶”里。主要代碼是改寫CustomSecuritySample項目里的Authorization.cs類的CheckOperations方法。主要代碼如下所示:

      //通過用戶名獲取用戶崗位

      DataSet dsRoles = GetUserRoles(principalName);

      if (dsRoles.Tables[0].Rows.Count > 0){

      roles = new string[dsRoles.Tables[0].Rows.Count];

      for (int i = 0; i < dsRoles.Tables[0].Rows.Count; i++){

      roles[i] = dsRoles.Tables[0].Rows[i][0].ToString();

      }

      if (roles != null){

      foreach (string role in roles){

      //校驗用戶訪問文件夾的權(quán)限

      if (IsUserAuthorized(role, acl, requiredOperation))

      return true;

      }}

      return false;

      }else{

      return false;

      }

      private bool IsUserAuthorized(string principalName, AceCollection acl, object requiredOperation)

      {

      CollectionBase operations = 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 (requiredOperation 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 ReportOperation)

      operations = ace.ReportOperations;

      else if (requiredOperation is ResourceOperation)

      operations = ace.ResourceOperations;

      foreach (object aclOperation in operations)

      {

      if (aclOperation.ToString() == requiredOperation.ToString()) return true;

      }

      }

      return false;

      }

      三、結(jié)束語

      本文闡述了上海交大管理決策系統(tǒng)采用本地部署的Power BI產(chǎn)品、上海交大統(tǒng)一身份認證和授權(quán)系統(tǒng)進行無縫集成的設計和實現(xiàn),其中的難點就是本地部署Power BI產(chǎn)品采用的是Windows身份認證方式,借助于自定義認證項目改寫其認證方式為Forms認證,同時通過控制Power BI Report Server里文件夾訪問權(quán)限,來實現(xiàn)與統(tǒng)一授權(quán)系統(tǒng)集成。授權(quán)用戶通過統(tǒng)一身份認證登錄后,根據(jù)其崗位顯示相應的菜單,如果有權(quán)限就可以在Web應用系統(tǒng)里直接瀏覽相應菜單下的Power BI Report Server里的報表了,從而實現(xiàn)了對報表的精確權(quán)限控制。由于Power BI的功能強大和性價比較高,在Gartner 2018 BI與數(shù)據(jù)分析魔力象限中可以看出Power BI已經(jīng)處于行業(yè)的領(lǐng)先地位。[5]未來會有越來越多的高校和企業(yè)開始使用Power BI。希望本文中的內(nèi)容,可以給這些高校和企業(yè)帶來一定的幫助,讓他們在和統(tǒng)一身份認證和授權(quán)系統(tǒng)對接的時候少走一些彎路。

      參考文獻:

      [1]什么是Power BI?[DB/OL].https://docs.microsoft.com/zh-cn/power-bi/power-bi-overview.

      [2]白雪松,茅維華.身份與權(quán)限體系關(guān)鍵技術(shù)的總體設計與實踐[J].中山大學學報(自然科學版),2009(s1):260-263.

      [3]白雪松,蔣磊宏,茅維華.全局角色在統(tǒng)一授權(quán)體系中的應用[C].中國高等教育學會教育信息化分會第十次學術(shù)年會論文集,2010:116-118.

      [4]CustomSecuritySample[DB/OL].https://github.com/Microsoft/Reporting-Services/tree/master/CustomSecuritySample.

      [5]Discover best-in-class products for BI and analytics[DB/OL].https://info.microsoft.com/ww-landing-gartner-bi-analytics-mq-2018-partner-consent-test.html.

      (編輯:王天鵬)

      猜你喜歡
      高校信息化數(shù)據(jù)可視化
      可視化:新媒體語境下的數(shù)據(jù)、敘事與設計研究
      我國數(shù)據(jù)新聞的發(fā)展困境與策略研究
      移動技術(shù)在高校信息化建設中應用現(xiàn)狀分析
      盘锦市| 杨浦区| 防城港市| 舟山市| 关岭| 大方县| 鹤庆县| 郑州市| 巨鹿县| 仁布县| 平定县| 阿合奇县| 蒲城县| 乌鲁木齐市| 盐亭县| 肇东市| 平武县| 崇明县| 安图县| 大厂| 东丰县| 娱乐| 扎鲁特旗| 仁化县| 北宁市| 新干县| 罗城| 汪清县| 吴忠市| 盐亭县| 蓝田县| 乌鲁木齐市| 拉孜县| 高雄市| 土默特右旗| 伊川县| 江油市| 青浦区| 连平县| 淮安市| 新乐市|