• 
    

    
    

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

      ?

      基于UCenter的單點(diǎn)登錄系統(tǒng)的設(shè)計與實現(xiàn)

      2015-08-15 00:54:11
      科技視界 2015年1期
      關(guān)鍵詞:跨域服務(wù)器端單點(diǎn)

      王 蕾

      (山東工商學(xué)院網(wǎng)絡(luò)中心,山東 煙臺 264005)

      隨著高校數(shù)字化校園建設(shè)的不斷發(fā)展,高校各個部門建設(shè)了各自需要的應(yīng)用系統(tǒng),由于沒有統(tǒng)一的規(guī)劃和設(shè)計,各應(yīng)用系統(tǒng)直接沒有聯(lián)系,各自為營,每個系統(tǒng)都有一套帳號密碼,用戶將不得不按照各個應(yīng)用系統(tǒng)的要求分別登錄進(jìn)入相應(yīng)的系統(tǒng),這不僅需要多個系統(tǒng)管理員維護(hù)管理各個應(yīng)用系統(tǒng)的用戶信息庫,并且用戶需要記憶多個帳戶和口令,使用極為不便,容易混淆,同時具有很大的安全隱患。單點(diǎn)登錄技術(shù)(single sign on,SSO)在數(shù)字化校園信息集成中成為關(guān)鍵技術(shù),用戶只需一次身份驗證,就可對所有被授權(quán)的應(yīng)用系統(tǒng)或資源進(jìn)行無縫的訪問,從而提高工作效率,降低操作成本,提高系統(tǒng)的整體安全性,而且還能為進(jìn)一步的應(yīng)用系統(tǒng)集成奠定基礎(chǔ),對高校的信息化建設(shè)和發(fā)展具有十分重要的意義。

      1 單點(diǎn)登錄技術(shù)研究現(xiàn)狀

      國內(nèi)單點(diǎn)登錄技術(shù)研究主要集中在高校和企業(yè),清華大學(xué)、北京大學(xué)、上海交通大學(xué)和華南理工大學(xué)都實現(xiàn)了自己的單點(diǎn)登錄系統(tǒng),這些系統(tǒng)不是很成熟,都沒有公開共享。企業(yè)有吉大正元的JITSSO系統(tǒng)和神舟融信開發(fā)的UTrust SSO系統(tǒng),這些系統(tǒng)都是商業(yè)化解決方案,可以購買使用。國內(nèi)企業(yè)如提供數(shù)字化校園解決方案都實現(xiàn)了單點(diǎn)登錄系統(tǒng),如果北京希爾、沈陽東軟、廣州聯(lián)奕統(tǒng)和金智教育,這些系統(tǒng)解決方法都是在Yale-CAS單點(diǎn)登錄技術(shù)基礎(chǔ)上修改完善實現(xiàn)的。

      國外成熟的單點(diǎn)登錄解決方案中主要有:基于Psssport協(xié)議的單點(diǎn)登錄解決方案、基于SAML協(xié)議的單點(diǎn)登錄解決方案和基于Yale-CAS協(xié)議的單點(diǎn)登錄解決方案。其中微軟公司的基于Psssport協(xié)議的解決方案是基于.NET語言開發(fā)的,只能在Windows服務(wù)器上使用。基于SAML協(xié)議的單點(diǎn)登錄解決方案通過XML規(guī)范傳輸數(shù)據(jù),數(shù)據(jù)流較大時,網(wǎng)絡(luò)開銷比較大。Yale-CAS單點(diǎn)登錄解決方案由于其體系結(jié)構(gòu)設(shè)計合理、開源、配置簡單和客戶端支持廣泛等優(yōu)點(diǎn)而得到廣泛應(yīng)用。

      2 UCenter單點(diǎn)登錄相關(guān)技術(shù)和機(jī)制分析

      UCenter中文意思就是“用戶中心”,是北京康盛新創(chuàng)科技有限責(zé)任公司的一款開源的一站式登錄解決方案,基于php開發(fā),擁有完善的接口,通過修改可以掛接不同架構(gòu)第三方web應(yīng)用,實現(xiàn)單點(diǎn)登錄。

      2.1 p3p協(xié)議

      P3P(Platform for Privacy Preferences(隱私設(shè)定平臺規(guī)范)是萬維網(wǎng)聯(lián)盟(W3C)公布的一項隱私保護(hù)推薦標(biāo)準(zhǔn),旨在為網(wǎng)上沖浪的Internet用戶提供隱私保護(hù)。P3P通過匹配網(wǎng)站的隱私策略(PrivacyPolicy)和用戶瀏覽器的隱私偏好(PrivacyPreference)來決定是否允許將用戶的隱私數(shù)據(jù)提供給網(wǎng)站使用,如果匹配良好,則向網(wǎng)站提供用戶隱私數(shù)據(jù),如不能完全匹配,提示用戶進(jìn)行處理。從技術(shù)上看,P3P包括了兩個組件:一個放在服務(wù)器端;另外一個放在客戶端,形成一個用戶代理。當(dāng)用戶登陸網(wǎng)站的時候,服務(wù)器端的組件根據(jù)網(wǎng)站的要求,會自動生成XML語言形式的用戶個人處理策略,這就像是貼在商店櫥窗外的公眾告示,而客戶端的組件就將這個“公眾告示”提供給用戶。

      2.2 Cookie文件

      Cookie是用戶訪問過的網(wǎng)站存放在用戶硬盤驅(qū)動器上的小數(shù)據(jù)文件,可使服務(wù)提供者在下次訪問時確認(rèn)用戶的身份,并能夠用來追蹤用戶瀏覽器軌跡,以此分析用戶的興趣愛好。Cookie由服務(wù)器端生成,通過http協(xié)議的User-Agent字段發(fā)送,瀏覽器會將接收到Cookie保存到某個目錄下的文本文件內(nèi),下次訪問該網(wǎng)站時自動發(fā)送該Cookie給網(wǎng)站。正常的Cookie只能在一個應(yīng)用中共享,即一個Cookie只能由創(chuàng)建它的應(yīng)用獲得,不能跨域設(shè)置,但是單點(diǎn)登錄涉及的系統(tǒng)都是多應(yīng)用、多域名的,能夠通過p3p協(xié)議跨域設(shè)置Cookie。

      2.3 跨域設(shè)置Cookie

      網(wǎng)站程序只需要設(shè)置P3P HTTP Header,跨域設(shè)置Cookie就可以成功。

      asp.net設(shè)置p3p的方法:HttpContext.Current.Response.AddHeader("p3p","CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"")。

      php設(shè)置p3p的方法:header('P3P:CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"')。

      java設(shè)置 p3p的方法:response.addHeader("P3P","CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"")。

      這些標(biāo)簽就是P3P所規(guī)定的,瀏覽器會根據(jù)這些標(biāo)簽決定是否接受 cookie,實踐證明,所有瀏覽器都支持P3P,能夠設(shè)置Cookie,能夠?qū)崿F(xiàn)多域名多應(yīng)用系統(tǒng)單點(diǎn)登錄。

      2.4 UCenter單點(diǎn)登錄機(jī)制分析

      2.4.1 UCenter單點(diǎn)登錄流程

      用戶在任一web應(yīng)用登錄界面輸入用戶和密碼進(jìn)行登錄,通過uc_client文件夾client.php中的uc_user_login函數(shù)進(jìn)行驗證,通過一系列函數(shù)調(diào)用最終通過socket和UCenter服務(wù)器進(jìn)行通訊,傳遞數(shù)據(jù)進(jìn)行驗證。如驗證通過,返回用戶ID,用戶姓名,加密密碼等信息,然后執(zhí)行uc_user_synlogin函數(shù),通過socket和UCenter服務(wù)器通訊傳遞用戶ID,UCenter服務(wù)器執(zhí)行user.php中的onsyslogin函數(shù),通過循環(huán)在UCenter服務(wù)器端下注冊的所有應(yīng)用返回在UCenter服務(wù)器端注冊的所有web應(yīng)用的js調(diào)用,js調(diào)用能夠跨域設(shè)置Cookie,腳本樣式,通過此腳本調(diào)用相應(yīng)web應(yīng)用下uc.php文件中的uc_note類中的synlogin函數(shù),syslogin函數(shù)發(fā)送p3p HTTP Header后,在相應(yīng)web應(yīng)用下添加Cookie(也可以同時設(shè)置Session),實現(xiàn)了所有web應(yīng)用的跨域單點(diǎn)登陸。

      2.4.2 UCenter的單點(diǎn)登錄機(jī)制分析

      簡單概況為:跨域設(shè)置用戶信息。任一web應(yīng)用socket遠(yuǎn)程打開UCenter服務(wù)器端,認(rèn)證通過,然后傳輸已經(jīng)登陸的用戶UID,UCenter服務(wù)器端循環(huán)通過JS調(diào)用各應(yīng)用下的api,在各個web應(yīng)用下設(shè)置Cookie,實現(xiàn)單點(diǎn)登錄,而保證Cookie通用的則是P3P協(xié)議的使用。單點(diǎn)登出原理相同。

      UCenter系統(tǒng)中Authcode函數(shù)可以通過一個 KEY,生成動態(tài)的密文,并可以再通過這個KEY來解密,保障了系統(tǒng)傳輸信息的安全性。

      3 Web應(yīng)用單點(diǎn)登錄系統(tǒng)設(shè)計與實現(xiàn)

      3.1 UCenter服務(wù)器端搭建

      首先從北京康盛新創(chuàng)科技有限責(zé)任公司官方網(wǎng)站下載UCenter 1.6.0版本代碼,在服務(wù)器上按照提示安裝,過程簡單明了,然后為UCenter配置域名。UCenter安裝完畢后,添加應(yīng)用和用戶數(shù)據(jù),添加應(yīng)用注意事項:應(yīng)用類型選擇 “其他”,應(yīng)用的主URL類似填寫http://www.xxx.com,通訊密鑰填寫不同字符,最大64字節(jié),應(yīng)用接口文件名稱一般為uc.php,但不限制于此,可根據(jù)實際情況填寫。應(yīng)用添加成功后,生成應(yīng)用配置信息,需要記錄保存。

      3.2 Web應(yīng)用單點(diǎn)登錄功能實現(xiàn)

      3.2.1 基于php語言開發(fā)web應(yīng)用單點(diǎn)登錄實現(xiàn)

      Web應(yīng)用只需修改登錄登出模塊即可,在Web應(yīng)用根目錄復(fù)制粘貼UCenter 1.6.0中的uc_client、api文件夾和添加config.inc.php文件,config.inc.php文件內(nèi)容是在UCenter服務(wù)器端添加應(yīng)用后生成的應(yīng)用配置信息。在Web應(yīng)用登錄模塊中,引入uc_client文件夾中的client.php文件和config.inc.php文件。

      Web應(yīng)用賬戶登錄代碼為:

      list($uid,$username,$password,$email)=uc_user_login($_POST[′username′],$_POST[′password′]);

      setcookie(′Example_auth′,",-86400);

      if($uid>0){

      //用戶登陸成功,設(shè)置 Cookie,加密直接用 uc_authcode函數(shù),用

      戶使用自己的函數(shù)

      setcookie(′Example_auth′,uc_authcode($uid." ".$username,′ENCODE′));

      //生成同步登錄的代碼

      $ucsynlogin=uc_user_synlogin($uid);

      echo ′登 錄 成 功 ′.$ucsynlogin.′
      ′;

      exit;

      }elseif($uid==-1){

      為了在全球經(jīng)濟(jì)一體化的大環(huán)境中提高國民競爭力,同時服務(wù)一帶一路的國家戰(zhàn)略,我國的英語人才培養(yǎng)質(zhì)量需要不斷提升。面臨我國學(xué)生在英語學(xué)習(xí)方面高投入、低產(chǎn)出的現(xiàn)狀,需要學(xué)生、教師、學(xué)校、教育界乃至于出版市場,大家各方面形成合力,在教學(xué)資源、評價標(biāo)準(zhǔn)、英語環(huán)境、市場資源等方面進(jìn)行完善。通過沉浸式英語習(xí)的環(huán)境營造、教學(xué)資源的趣味化,評價標(biāo)準(zhǔn)導(dǎo)向的多元化,以及市場資源的豐富化。我們期待,在不久的將來,可以看到國民英語教育能效實現(xiàn)明顯的提升。

      echo′用戶不存在,或者被刪除′;

      }elseif($uid==-2){

      echo ′密碼錯′;

      }else{

      echo ′未定義′;

      }

      3.2.2 基于java語言開發(fā) web應(yīng)用單點(diǎn)登錄實現(xiàn)

      UCenter系統(tǒng)只提供了php版本的api客戶端,但系統(tǒng)是開源的,完全可以使用java語言實現(xiàn)相應(yīng)功能。本文使用了互聯(lián)網(wǎng)上提供的api代碼,下載地址:http://code.google.com/p/discuz-ucenter-api-forjava/,將下載的java api中的代碼添加到項目中,根據(jù)UCenter服務(wù)器端添加應(yīng)用生成的配置信息修改config.properties,web.xml中添加:

      api

      *.api.UC

      2

      api

      /api/uc.php

      Web應(yīng)用引用java api中的XMLHelper和Client類,賬戶登錄代碼為:

      Client e=new Client();

      String result=e.uc_user_login("username","password");

      LinkedList[String>rs=XMLHelper.uc_unserialize(result);

      if(rs.size()>0){

      int$uid=Integer.parseInt(rs.get(0));

      if($uid>0){

      System.out.println("登錄成功");

      String$ucsynlogin=e.uc_user_synlogin($uid);

      System.out.println("單點(diǎn)登錄成功"+$ucsynlogin);

      //本地登陸代碼 //TODO.......

      }else if($uid==-1){

      System.out.println("用戶不存在,或者被刪除");

      }else if($uid==-2){

      System.out.println("密碼錯");

      }else{

      System.out.println("未定義");

      }

      至此,基于java語言開發(fā)的web應(yīng)用單點(diǎn)登錄功能實現(xiàn),單點(diǎn)登出功能類似。

      4 結(jié)語

      本文基于康盛新創(chuàng)公司的開源產(chǎn)品UCenter系統(tǒng),實現(xiàn)了php語言和java語言開發(fā)web應(yīng)用單點(diǎn)登錄,Asp語言和.net語言開發(fā)web應(yīng)用本文沒有給出代碼,同樣也可以使用此項技術(shù)實現(xiàn)單點(diǎn)登錄,使用單點(diǎn)登錄系統(tǒng)減少了用戶的多次登錄認(rèn)證,減輕了維護(hù)人員數(shù)據(jù)維護(hù)工作量,提高了用戶便利性,具有一定的實用和推廣價值。下階段將對單點(diǎn)登錄系統(tǒng)功能、性能和安全性進(jìn)行深入研究。

      [1]劉峰,王崢,等.基于CAS的門戶單點(diǎn)登錄方案[J].計算機(jī)系統(tǒng)應(yīng)用,2011,30(6).

      [2]陳麗,于東海.Kerberos協(xié)議在單點(diǎn)登錄系統(tǒng)中的改進(jìn)及應(yīng)用[J].計算機(jī)系統(tǒng)應(yīng)用,2011,20(1).

      [3]單曙兵,孔磊.基于Acegi授權(quán)管理的高可用單點(diǎn)登錄系統(tǒng)的研究與設(shè)計[J].計算機(jī)應(yīng)用與軟件,2013,30(7).

      [4]高昊江,肖田元.基于 SAML改進(jìn)的單點(diǎn)登錄模型研究[J].計算機(jī)工程與設(shè)計,2011,32(3).

      猜你喜歡
      跨域服務(wù)器端單點(diǎn)
      跨域異構(gòu)體系對抗聯(lián)合仿真試驗平臺
      基于多標(biāo)簽協(xié)同學(xué)習(xí)的跨域行人重識別
      為群眾辦實事,嶗山區(qū)打出“跨域通辦”組合拳
      讀報參考(2022年1期)2022-04-25 00:01:16
      G-SRv6 Policy在跨域端到端組網(wǎng)中的應(yīng)用
      歷元間載波相位差分的GPS/BDS精密單點(diǎn)測速算法
      超薄異型坯連鑄機(jī)非平衡單點(diǎn)澆鑄實踐與分析
      山東冶金(2019年5期)2019-11-16 09:09:10
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      數(shù)字電視地面?zhèn)鬏斢脝晤l網(wǎng)與單點(diǎn)發(fā)射的效果比較
      16噸單點(diǎn)懸掛平衡軸的優(yōu)化設(shè)計
      在Windows中安裝OpenVPN
      聊城市| 通江县| 两当县| 桃源县| 沁水县| 兴海县| 新兴县| 华池县| 闸北区| 无棣县| 扎兰屯市| 枝江市| 项城市| 阳山县| 开封县| 娄烦县| 教育| 互助| 长子县| 长岛县| 武隆县| 会宁县| 巴林右旗| 彭泽县| 徐闻县| 余干县| 河南省| 梁河县| 从江县| 米林县| 贡觉县| 景东| 永登县| 普格县| 中山市| 元谋县| 合江县| 龙岩市| 河北区| 金乡县| 呼伦贝尔市|