1、引言數據庫
1.1編寫目的瀏覽器
爲了單點登陸系統(SSO系統)的可行性,完整性,並能按照預期的設想實現該系統,特編寫需求說明書。安全
同時,說明書也發揮與策劃和設計人員更好地溝通的做用。 服務器
1.2背景cookie
a.鑑於集團運營的多個獨立網站(稱爲成員站點),每一個網站都具備本身的身份驗證機制,這樣勢必形成:生活中的性能
一位用戶,若是要以會員的身份訪問網站,須要在每一個網站上註冊,而且經過身份驗證後,才能以會員的身份訪問網學習
站;即便用戶以一樣的用戶名與密碼在每一個網站上註冊時,雖然能夠在避免用戶名與密碼的忘記和混淆方面有必定的測試
做用,可是用戶在某一段時間訪問多個成員站點或在成員站點間跳轉時,仍是須要用戶登陸後,才能以會員的身份訪 網站
問網站。這樣不只給用戶帶來了不便,並且成員網站爲登陸付出了性能的代價; 加密
b.若是全部的成員網站,可以實現單點登陸,不只在用戶體驗方面有所提升,並且真正體現了集團多個網站的兄弟
性。經過這種有機結合,能更好地體現公司大平臺,大渠道的理念。同時,這樣作也利於成員網站的相互促進與相互
宣傳。
正是出於上面的兩點,單點登陸系統的開發是必須的,是迫在眉睫的。
1.3定義
單點登陸系統提供全部成員網站的「單一登陸」入口。本系統的實質是含有身份驗證狀態的變量,
在各個成員網站間共用。單點登陸系統,包括認證服務器(稱Passport服務器),成員網站服務器。
會員:用戶經過Passport服務器註冊成功後,就具備了會員身份。
單一登陸:會員第一次訪問某個成員網站時,須要提供用戶名與密碼,一旦經過Passport服務器的身份驗證,
該會員在必定的時間內,訪問任何成員網站都不須要再次登陸。
Cookie驗證票:含有身份驗證狀態的變量。由Passport服務器生成,票含有用戶名,簽發日期時間,
過時日期時間和用戶其它數據。
2、任務概述
2.1目標
SSO系統,是集團統一的Passport,SSO系統分兩個階段實施。第一階段對於新註冊的用戶提供單點登陸的功能。
第二階段,整合各個成員網站已有會員到單點登陸系統中。
Passport服務器做爲各個成員網站的唯一身份驗證入口,須要考慮其性能,擴展性,穩定性,安全性和維護成本。尤爲
要注意第二階段的開發,作到統籌考慮。
2.2最終用戶的特色
最終用戶是數以萬計網民。這就肯定了用戶使用電腦的水平是良莠不齊的,在開發單點登陸系統時,力爭作到界面友
好,措詞簡單明瞭。用戶不用學習,就能使用該系統。
3、需求規定
3.1 需求概述
1) 註冊:
a.成員網站重定向到Passport服務器的註冊頁面,而且帶有返回URL和成員網站ID。
b.經過Passport註冊頁面建立會員後,保存會員驗證票到數據庫和passport服務器所在域cookie中。同時,在成員網站
的數據庫上建立與Passport服務器數據庫中會員的映射關係。
c. 重定向到成員網站,填寫會員個性信息。
d. 保存會員個性信息,並把重定向傳入的驗證票保存到本地cookie和建立Session狀態變量。
2)登陸:
a、 SSO系統要實現各個成員網站的無縫結合,只要會員通過了認證服務器的登陸驗證(Passport服務器),該會員訪
問其它任何的網站時,都不須要再次登陸。
b、 會員在第一次登陸時,Passport服務器驗證身份以後,生成的cookie驗證票,只需保存到Passport服務器所在域的
cookie中,不能採用向每一個成員網站所在的域中寫cookie,防止響應時間太長,給會員帶來不友好的瀏覽體驗。同
時,把下發給會員的cookie票保存到Passport服務器的數據庫中,方便驗證方式和會員行爲統計的擴展。
c、 會員一經經過身份驗證,成功登陸了某個成員網站(假設爲網站A),須要利用Session和cookie兩種方式保存會員已經登
錄的狀態。
d、 同一個瀏覽器進程中,會員在網站A的頁面間跳轉時,只須要根據Session中的狀態變量加載登陸框。不須要再與
Passport服務器通訊驗證會員的身份。
e、 會員經過驗證登陸了網站A,若會員從網站A跳轉或從新打開瀏覽器登陸其它成員網站(假設網站B),都須要與Passport
服務器通訊驗證會員的票。可是,此次驗證不要Passport服務器與數據庫中保存的驗證票進行比較驗證,只須要驗證
Passport服務器域中的cookie驗證票據有效便可。
f、 對於驗證cookie票,可以實現加密和數字簽名保證cookie的機密性,完整性和不可抵賴性。
g、 若果Passport服務器Down掉後,仍能夠直接登陸成員網站。
說明:上面高亮顯示的表示二期開發功能。
3)登出、修改密碼、找回密碼和成員網站間的跳轉,請查看IPO圖表中相應的模塊描述。
-
3.2對功能的規定
SSO系統包括註冊、登陸、登出、密碼修改、密碼找回、成員網站間跳轉與用戶管理模塊。本說明書使用HIPO圖描述
系統機構和模塊內部處理功能,它主要包括層次結構圖和IPO圖兩個部分。層次結構圖描述了整個系統的結構以及各個
模塊之間的關係;IPO圖則描述了在某個特定模塊內部的輸入(I)、處理過程(P)、輸出(O)思想。
A、系統結構圖
圖1 SSO系統結構圖
B、層次結構圖
圖2系統層次結構圖
C、IPO圖表
備註:紅色高亮部分,表示修改的邏輯
模塊名稱:會員註冊 |
使用者:Passport服務器與各成員網站 |
||
輸入部分 I |
處理描述 P |
輸出部分 O |
|
1. 重定向到Passport服務器,帶 有返回URL和成員網站ID 2. 輸入信息:郵箱、密碼、區域(暫時沒有使用驗證碼)。 3 3.提交註冊信息,發出註冊請求。 4.註冊用戶從郵件中得到驗證碼,利用驗證號激活用戶,此時用戶將成爲合法會員。 5.會員個性信息(在成員網站填寫) |
1.郵箱是否可用的實時檢查,及時提示郵箱是否可用(這裏的可用僅僅是表示符合郵箱的規範,而且該郵箱沒有被註冊,不表示真正的可用)。 2.密碼安全級別實時提示。根據字符長度、含有字符的種類,計算安全級別,並實時提示用戶。安全級別分爲:過短,差,良,優四個等級。 3.根據區域數據庫,得到區域信息下拉框,結合會員區域IP,實現區域自動篩選,在容許的偏差範圍內不需手動選擇區域。 4. 創建新會員 (1)驗證會員提交的註冊信息,若合法,把用於激活賬號的驗證碼發送到會員測試使用的郵箱中。 (2)會員使用驗證碼激活賬號,若激活成功,保存會員信息和會員驗證票到數據庫(Passport服務器數據庫),而且驗證票也保存到cookie中。同時調用成員網站的Web Service接口,把剛纔產生的Passid保存到成員網站數據庫中(創建映射關係)。 (3)重定向到成員網站。 (4)成員網站接收數據,提示會員填寫個性信息,並提交到成員網站服務器。 (5)保存個性信息與接收的會員驗證信息到成員網站數據庫與cookie中,同時在Session中保存會員已驗證的狀態信息。 (5)導航會員到某個頁面。 |
1. Passort服務器保存新會員信息和會員驗證票到數據庫中。 2. 成員網站Web Service,在成員網站數據庫中添加會員信息,利用Passid創建與Passport服務器上會員的映射關係,並返回操做成功或失敗狀態信息。 3. 修改爲員網站數據庫中會員的個性信息。 4.保存會員驗證票到cookie中,同時保存會員經過驗證的狀態到Session中。 |