999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單點登錄系統的設計與實現

2013-09-17 10:26:42杜歆文
電視技術 2013年24期
關鍵詞:頁面用戶系統

杜歆文

(蘇州廣播電視總臺 技術中心,江蘇 蘇州 215006)

單點登錄系統的設計與實現

杜歆文

(蘇州廣播電視總臺 技術中心,江蘇 蘇州 215006)

研究了單點登錄系統的設計與實現,利用每人唯一的賬號和密碼實現多個系統的登錄認證。討論了兩種單點登錄實現方式,一種為主站通過非對稱加密算法的私鑰生成憑證,分站認證登錄,另一種方式為主站模擬用戶登錄行為,采用POST參數的方式登錄分站。兩種實現方式各有利弊,適合不同情況。該系統對用戶使用感受、系統安全性有較好影響。

單點登錄;非對稱加密;授權;參數傳遞;跨域

【本文獻信息】杜歆文.單點登錄系統的設計與實現[J].電視技術,2013,37(24).

1 需求分析

隨著信息化的發展和全臺網的建設,越來越多的工作依賴網絡、計算機,工作人員需要記憶大量的用戶名、密碼,每天上班打開計算機登錄域,寫稿件,查詢媒資,收發郵件……每一項工作都需要輸入用戶名、密碼。由于系統開發使用時間不同,造成了用戶名不統一,有的使用拼音縮寫,有的使用中文名,還有的使用昵稱登錄;用戶為了使用方便,有的使用簡單密碼登錄,有的被強制設置為復雜密碼,造成用戶的困惑。因此需要簡化登錄過程,統一用戶名和密碼。

目前蘇州臺采用Windows域管理用戶和計算機,用戶必須擁有一個域賬號才能登錄計算機,接入網絡。因此,考慮把該賬號作為用戶統一且唯一的身份認證信息。

由于Web系統的便利性,以及越來越完善的功能,近年來,絕大多數應用系統都采用了B/S架構,因此,本文主要考慮Web系統的用戶管理、登錄問題。

將現有系統分成兩大類:一類系統是由臺內自行開發研制,比如固定資產管理、技術客服系統等;還有一類是由第三方廠商進行開發部署,比如媒資、文稿、郵箱等。對于前者,可以對登錄模塊進行修改,以適應單點登錄模塊的需求,同時,在以后開發的系統中,可以省略登錄模塊,依靠單點登錄系統對用戶進行管理。對于后一類系統,無法進行定制開發,也沒辦法做任何修改,只能去適應現有系統,依賴各系統原有的登錄模塊來實現單點登錄。考慮到用戶習慣的延續和系統切割的平滑,計劃保留原有各系統登錄模塊,用戶可以完全保持原有習慣,再逐步向單點登錄引導。

2 設計與實現

2.1 系統設計

為了方便描述,先約定幾個概念:1)總站,也可稱為主站、中心站點,單點登錄系統中驗證用戶登錄,并向分站跳轉;2)分站,也可稱子系統,原有的業務系統需要接入單點登錄;3)憑證,英文token,子系統以此識別授權用戶。

原登錄過程為用戶打開所需登錄系統首頁,輸入用戶名、密碼,登錄系統。現在考慮以下登錄過程:用戶訪問未授權頁面時被轉向到總站登錄頁,或者用戶直接打開該登錄頁,輸入用戶名、密碼,自動判斷或手動選擇需要登錄的子系統,主站驗證通過后發送憑證給分站,并轉向分站驗證通過后允許用戶登錄。

該登錄過程對于自行開發的網站只需要稍作修改即可實現,整個過程符合用戶使用習慣,并能夠保證安全可靠。但需要考慮兩個問題:

1)對于以后開發的站點,是延續以前的方式擁有獨立的登錄模塊,還是可以省略,完全依賴單點登錄。筆者認為分站是可以完全信任主站的,對于主站傳到分站的憑證,如果可以完全證實用戶身份的話,分站將允許用戶登錄。在這種情況下,分站可以省略用戶登錄驗證過程,完全依賴單點登錄系統。但是由于各系統的功能不同,子系統還需要自己的權限管理。

2)面對不可修改的分站,要想實現這種登錄過程就一籌莫展了。為了使用戶體驗統一,同樣輸入用戶名、密碼,選擇登錄子系統后,總站模擬用戶行為,去分站提交對應的用戶名、密碼,完成登錄后,總站轉向分站登錄后頁面。對于用戶來說,需要做的只是輸入必需信息,體驗完全一樣。

2.2 數據結構

該系統數據結構簡單,主要需要保存兩類數據,一種是用戶信息,記錄總站用戶名和分站用戶名的對應關系;還有一種是站點信息,記錄分站的地址、登錄頁、登錄方式等信息。

2.3 系統實現

2.3.1 主站登錄頁

主站登錄頁用于接收用戶的輸入,包括用戶名、密碼、選擇登錄分站,當用戶允許保存cookie時,在用戶本地保存加密后的用戶名。用戶訪問主站登錄頁,頁面檢測到cookie,并提交給服務器,服務器對cookie信息進行檢查、解密,確認用戶信息完整后提供快速登錄功能,用戶只需要選擇登錄分站名稱,而不需要重復輸入用戶名、密碼,可以直接訪問分站。

2.3.2 可修改的站點登錄

總站將憑證傳給分站,分站驗證憑證后允許登錄,在這個過程中關鍵問題在于建立憑證,能夠保證憑證的安全性,使分站能夠完全信任。

此處需要用到非對稱加密算法。通常接觸較多的是對稱加密算法:發送方將需要發送的明文信息使用密鑰,通過一系列運算產生密文發送,接收方收到密文后使用同樣的密鑰通過運算還原出明文,所謂對稱,就是指采用這種方式,使加、解密雙方的密鑰是相同的。

對于非對稱算法,顯而易見,即加密、解密過程中的密鑰不同。非對稱加密算法又稱公開密鑰加密算法,該算法需要兩個密鑰——公開密鑰和私有密鑰,這兩個密鑰是一對。如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。甲方生成一對密鑰并將其中的一把作為公用密鑰向其他方公開,得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方,甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。除了傳輸數據,非對稱密鑰還用來進行數字簽名:發送方A對發送的報文M生成一個摘要X1并用自己的私鑰加密這個摘要X1,接收方B對使用A的公鑰解開這個加密摘要,得到X1并對比接收到的報文M重新生成的摘要X2,如果一樣,說明報文M在傳遞過程沒有被修改,的確是A發送的[1]。

在本系統中采用了常用的非對稱加密算法——RSA,并對非對稱加密算法兩種常規的使用方法稍作修改,使其更符合本系統的應用。

對于每個分站,需要建立一對密鑰——一個公鑰和一個私鑰。私鑰由主站妥善保管,公鑰對分站公開。主站登錄頁驗證用戶登錄后,根據用戶選擇分站查找該分站對應用戶名,如果不存在,則轉向一個頁面,要求用戶輸入需要登錄分站的用戶名、密碼,將這一過程稱之為授權。授權頁去分站數據庫驗證用戶名和密碼,驗證通過后將主站用戶名和分站用戶名建立對應關系并保存,授權過程只有第一次登錄分站時需要進行,目的是建立兩個站點用戶名之間的對應關系,密碼不需要保存。授權成功后主站對分站用戶名用對應私鑰進行加密,并將加密后的結果傳遞給分站,分站用自己的公鑰解密,正確解密將得到需要登錄的分站用戶名。

通常情況,如果篡改加密后密文是無法正常解密的,但不排除特殊情況,因此加入校驗機制(此處使用最簡單的長度校驗),將用戶名和校驗碼一起使用私鑰加密,分站使用公鑰解密后檢查用戶名和校驗碼,符合則認為解密成功。在傳輸過程中,還需要防止惡意攻擊,如果主站、分站以外的第三者截取到加密信息,不需要輸入密碼就可以登錄系統。因此,在用戶名、校驗碼之外,再加上時間戳,這三個信息一起加密傳輸,分站得到信息解密,先檢查校驗碼,判斷是否正確解密,確認密鑰的正確性,再檢查時間戳,超過有效時間則認為該信息無效,不允許登錄。這樣即使加密信息被截取重放,由于超過了有效時間,也無法正常登錄系統。

2.3.3 不可修改的站點登錄

該類站點登錄,需要主站模擬用戶登錄行為,達到單點登錄的目的。

如前所述,這里同樣需要“授權”這一過程建立主站用戶名和分站用戶名的關聯。不同的是對于一些數據庫加密保存密碼的系統,主站還需要保存用戶的明文密碼。

表單(form)有兩種方法GET和POST把數據提交給服務器。GET請求的數據會附在URL之后,以“?”分割URL和傳輸數據,參數之間以“&”相連,如login.aspx?name=xxx&password=yyy。POST則是把提交的數據放置在HTTP包的包體中。絕大多數登錄頁面都是通過POST方式把相關參數提交到后臺進行驗證。因此,需要程序模擬這個POST的過程登錄。

在JavaScript中,有一個很重要的安全性限制,被稱為同源策略(Same-Origin Policy),即JavaScript只能訪問與它的文檔在同一域下的內容。比如www.a.com站點下的頁面元素或腳本和www.b.com站點是無法互相訪問的。顯然,總站和分站并不能保證都在同一個域名下,因此,這里產生了一個跨域POST的問題,解決方法有一些,本系統中使用的是一種比較簡單的方法:在分站的網站主目錄下放置一個靜態頁面,取名為SSOLogin.htm,中心站點將用戶名、密碼、登錄頁地址通過GET方式傳遞給這個 頁 面 ,如 SSOLogin.htm?username=aaa&password=bbb&posturl=ccc,該頁面得到參數信息后,按約定格式將用戶名、密碼等必需信息POST到登錄頁,登錄成功后轉向登錄后頁面。由于SSOLogin.htm是純靜態頁面,不需要服務器交互,可以做到與分站服務器環境無關、與分站后臺編寫語言無關,只要把一個通用的SSOLogin.htm頁面放到主目錄下即可。在這個登錄過程中需要注意幾個問題:1)為了避免GET方式傳遞用戶名、密碼過于暴露,可以采用隱藏iframe的方式,在跳轉頁動態產生一個不可見的iframe,iframe的src指向分站的SSOLogin.htm,登錄成功后 SSOlogin.htm 通過 parent.location.href修改父頁面的路徑以跳轉到登錄后頁面,當然不采用這種方式也可以,因為用戶需要登錄中心站點以后才會向分站傳遞用戶名和密碼,可以保證只有登錄者本人可以看到GET參數內容;2)某些分站的用戶名可能是中文,這樣會產生中文編碼問題,需要根據分站登錄頁的GBK和UTF-8等編碼方式對中文進行編碼,然后POST,否則不能成功登錄[2]。

某些第三方的網站登錄會要求輸入驗證碼,由于該系統在臺內應用沒有遇到這種情況所以沒有過多處理,可以考慮將驗證碼圖片從分站抓取到主站登錄頁手動輸入。

3 使用方法

1)用戶打開主站登錄頁輸入用戶名密碼,選擇需要登錄的分站進行登錄。授權管理在這里被當作一個分站,用戶登錄后可以進行授權管理,如圖1所示。

圖1 單點登錄授權管理(截圖)

2)當檢測到本地cookie存在并有效時,可以不輸入用戶名密碼快速登錄,也可以選擇其他用戶登錄,如圖2所示。

3)當用戶第一次登錄某個分站時,要求驗證分站對應用戶名密碼,記錄對應關系,以后登錄不需要這個過程,直接進入分站,如圖3所示。

圖2 檢測到已經登錄的賬戶(截圖)

圖3 驗證分站對應用戶名密碼(截圖)

4)可以對分站登錄頁進行改造,在分站登錄頁檢測到有單點登錄cookie存在,即用戶使用過單點登錄系統時,提醒用戶使用快速登錄,如圖4所示。

圖4 提醒用戶使用快速登錄(截圖)

4 使用效果

系統上線后,大大方便了用戶對于各信息系統的使用,用戶不再需要記憶很多用戶名和密碼,在一個頁面完成多個系統的登錄;同時,可以設置一個比較復雜的密碼,較原來提高了安全性。但同時也存在一些弊端,原來有用戶習慣借出自己的域賬號或借用別人的域賬號,在單點登錄的情況下,信息泄露的風險就比較大。可以引導用戶妥善保管自己賬號或者另建一套用戶名密碼獨立于域賬號。總而言之,單點登錄對于系統管理、用戶使用利大于弊。

5 創新點

1)HTTP Referer是header的一部分,當瀏覽器向Web服務器發送請求時,一般會帶上Referer,告訴服務器這是從哪個頁面鏈接過來的。分站登錄頁上一般會放置單點登錄鏈接,用戶可以使用原有方式登錄,也可以點擊鏈接跳轉到主站登錄頁,主站登錄頁根據HTTP Referer判斷來源分站,主動替用戶選擇登錄分站,減少用戶操作,提升體驗[3]。

2)分站登錄頁檢測到有單點登錄cookie存在,提醒用戶使用快速登錄,經同意后跳轉到主站登錄頁,引導用戶盡量使用單點登錄。單點登錄cookie由主站創建,和分站很可能不在同一個域,跨域是不允許cookie讀寫的,因此采用變通手法:有分站b1.bbb.com的網頁,內嵌主站 a.aaa.com 的 iframe(命名為 iframeA),iframeA 再內嵌b2.bbb.com的iframe(命名為iframeB),iframeA取得主站*.aaa.com 的 域 的 cookie 值 ,通 過 URL 傳 遞 給 iframeB b2.bbb.com,iframeB b2.bbb.com 和 b1.bbb.com 屬于同一個域,可以通過javascript傳值,告訴分站登錄頁主站的cookie值,以此來實現*.aaa.com和*.bbb.com這樣跨域的cookie傳遞[4]。

3)通常單點登錄系統要求各分站用戶名統一,方便識別用戶;或者管理員后臺統一建立對應關系。本系統創新使用“授權”的方式,將用戶名映射這項工作交給用戶自己,既保證了安全,也更加靈活,用戶可以在某分站擁有多個用戶名,由自己選擇授權。

[1] 洪帆,崔國華,付小青.信息安全概論[M].武漢:華中科技大學出版社,2005.

[2]ZAKAS N C.JavaScript高級程序設計[M].李松峰,曹力,譯.北京:人民郵電出版社,2010.

[3]WALTHER S,HOFFMAN K,DUDEK N.ASP.NET4揭秘:卷1[M].譚振林,黎志,朱興林,等,譯.北京:人民郵電出版社,2010.

[4] 單東林,張曉菲,魏然.鋒利的jQuery[M].北京:人民郵電出版社,2009.

TN948

B

責任編輯:任健男

2013-08-20

猜你喜歡
頁面用戶系統
大狗熊在睡覺
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 波多野结衣一区二区三视频| 国产AV无码专区亚洲A∨毛片| 亚洲大尺码专区影院| 热热久久狠狠偷偷色男同| 国产精品综合色区在线观看| 中文字幕乱码二三区免费| 国产在线麻豆波多野结衣| 国产成人高清亚洲一区久久| 精品视频在线一区| 亚洲性一区| 国产农村妇女精品一二区| 在线播放91| 欧美一区二区自偷自拍视频| 97国产在线观看| 无码不卡的中文字幕视频| 91视频精品| 制服丝袜亚洲| 日本精品视频一区二区| 亚洲欧美成人在线视频| 亚洲日韩精品无码专区97| 日本人妻一区二区三区不卡影院| a在线亚洲男人的天堂试看| 在线国产综合一区二区三区| 亚洲日韩国产精品综合在线观看| 99热在线只有精品| 国产亚洲欧美在线视频| 亚洲无码电影| 极品尤物av美乳在线观看| 国产区在线观看视频| 欧美亚洲国产一区| 无码网站免费观看| 精品福利视频网| 无码人妻热线精品视频| 欧洲亚洲一区| 久久久久久久久久国产精品| 亚洲国产中文在线二区三区免| 亚洲第一成年网| 欧美精品亚洲精品日韩专区va| 欧美自慰一级看片免费| 伊人久综合| 国产在线观看一区二区三区| 久久婷婷色综合老司机| 91国内在线观看| 热热久久狠狠偷偷色男同| 亚洲美女视频一区| 日本精品一在线观看视频| 九九精品在线观看| 高h视频在线| 热思思久久免费视频| 婷婷色狠狠干| 多人乱p欧美在线观看| 一级爆乳无码av| 91人妻在线视频| 无码中文字幕乱码免费2| 欧美性精品| 欧美啪啪一区| 九九久久精品免费观看| 免费看美女毛片| 成人午夜视频网站| 国内精品久久人妻无码大片高| 日本91在线| 亚洲国产中文精品va在线播放 | 欧美日本激情| 国产福利小视频高清在线观看| 日本道综合一本久久久88| 香蕉视频国产精品人| 97成人在线观看| 伊人久久大香线蕉成人综合网| 中文毛片无遮挡播放免费| 欧美α片免费观看| 久久黄色小视频| 在线观看91精品国产剧情免费| 精品乱码久久久久久久| 无码区日韩专区免费系列| 99热这里只有精品免费| 亚洲欧洲日韩综合色天使| 无码区日韩专区免费系列| 成人国产免费| 91在线一9|永久视频在线| 综1合AV在线播放| 亚洲一道AV无码午夜福利| 999国产精品永久免费视频精品久久 |