單點登錄係統(SSO)詳細設計說明書(下篇)
單點登錄係統(SSO)詳細設計說明書(下篇) 收藏
3.3輸入輸出要求
解釋各輸入輸出數據的類型,並逐項對格式、數值範圍、精度等作出準確定義。對軟件的數據輸出及必須標明的控製輸出量進行解釋並舉例,包括對硬拷貝報告(正常結果輸出、狀態輸出及異常輸出)以及圖形或顯示報告的描述。
3.4 流程邏輯
3.4.1注冊流程圖
3.4.2會員登錄流程圖
3.4.3 會員登出流程圖
3.4.4 會員修改密碼流程圖
3.4.5 會員找回密碼流程圖
3.4.6 成員網站間跳轉流程
假設從成員網站A跳轉到成員網站B,網站A提供網站B的入口鏈接即可。導航到網站B後,其流程與會員登錄流程一樣。
流程圖使用Visio製作,瀏覽不方便。特別生產了HTML格式的文檔,請從這裏下載https://files.cnblogs.com/david-weihw/passport.rar,到本地查看。
3.5對性能的規定
3.5.1精度
3.5.2靈活性
設計時需要充分考慮功能的擴展,使功能模塊具有很強的靈活性。
靈活性因素:
a.操作方式上的變化;
b.運行環境的變化;
c.同其他軟件的接口或其他軟件對該模塊的集成;
d.精度和有效時限的變化;
e.計劃的變化或改進。
3.6 數據管理
3.6.1數據管理能力要求
說明需要管理的文卷和記錄的個數、表和文卷的大小規模,要按可預見的增長對數據及其分量的存儲要求做出估算。比如,在數據庫中設計中會員ID時,若采用自增型變量要估算會員的數量級,確定采用(int)數據類型,還(bigint)數據類型。
3.6.2數據庫設計(Passport服務器)
1).Pass_Member(會員表)
字段名稱
數據類型
說明
備注
mPassID
Bigint
會員ID號
自增型,PK(主鍵)
mName
Nvarchar(64)
會員名
Email作為會員名(創建索引)
mPwd
Nvarchar(32)
會員密碼
數據庫中保存MD5運算的結果
mGBPwd
Nvarchar(32)
會員找回密碼
會員找回密碼時,生成的密碼,會員激活後覆蓋會員密碼
mWake
Tinyint
會員喚醒
當和成員網站建立映射關係後,喚醒該會員
mMapWebsite
Nvarchar(128)
會員映射的成員站點
建立會員映射關係的成員網站串
mRegDT
Datetime
會員注冊時間
mAreaCode
Nvarchar(8)
區域代號
mBack
Nvarchar(64)
預留字段
預留擴展
注意:成員網站的會員表,需要通過mPassID字段建立與Pass_Member表中會員的映射關係。
備注:60-11-20添加兩個字段(紅色高亮)
2).Member_WebSite(成員網站表)
字段名稱
數據類型
說明
備注
mWebID
int
成員網站ID編號
PK(主鍵)
mWebName
Nvarchar(32)
成員網站名稱
mWebURL
Nvarchar(32)
成員網站URL
mWebIP
Nvarchar(16)
成員網站IP
mWebManager
Nvarchar(16)
成員網站管理員
成員網站故障時,便於維護
mWMTel
Nvarchar(16)
成員管理員電話
mBack
Nvarchar(64)
預留字段
預留擴展
3).Member_Ticket(會員票據表)
字段名稱
數據類型
說明
備注
mTicketID
Nvarchar(240)
驗證票編碼
PK(主鍵)
mPassID
Bigint
會員ID號
FK(關聯Pass_Member表mPassID)
issueDT
Datetime
票簽發日期時間
availDT
datetime
票有效日期時間
digitalSign
Nvarchar(32)
票的數字簽名
用於保證票的安全
mBack
Nvarchar(64)
預留字段
預留擴展
4).Member_SignRecord(會員登錄記錄表)
字段名稱
數據類型
說明
備注
ID
Bigint
記錄ID號
PK(主鍵)
mPassID
Bigint
會員ID號
FK(關聯Pass_Member表mPassID)
signinDT
Datetime
登錄日期時間
signinWebID
int
登錄網站ID編號
FK(關聯Member_WebSite表)
signoutDT
Datetime
登出日期時間
signoutWebID
int
登出網站ID編號
FK(關聯Member_WebSite表)
mBack
Nvarchar(64)
預留字段
預留擴展
3.6.3數據處理
創建作業
1、定時把驗證票的記錄導入的備份表中,供統計分析使用。
2、定時把一天以上沒有激活的會員刪除
3.7 Passport服務器與成員網站接口規範
3.7.1 Passport服務器入口及調用接口
a.注冊入口
重定向規範:
成員網站注冊重定向地址:https://passport.david.cn/register.aspx
成員網站入口參數:AppID 成員網站ID號
Redirect Passport重定向地址
Passport回傳參數: Ticket cookie驗證票加密串
PassID 會員ID號
UserName 會員名稱(Email)
舉例:
假設AppID=1;Redirect=https://www.woall.com/index.aspx
Ticket= 53D2FD484DC6FAD75E82; UserName=david@gmail.com
PassID=1234
則 成員網站重定向地址為:
https://passport.david.cn/register.aspx?AppID=1&Redirect=https://www.woall.com/register.aspx
Passport重定向地址為:
https://www.woall.com/index.aspx?Ticket=53D2FD484DC6FAD75E82&PassID=1234&UserName=david@gmail.com
Web Service通信規範:
若用戶從成員網站A重定向到Passport服務器注冊會員時,Passport調用成員網站Web Service接口,建立Passport數據庫與網站A數據庫中會員的關聯,關聯字段為Pass_Member表中的mPassID。
Web Service名稱: pass_user_related
所有者:成員網站
調用者:Passport服務器
輸入參數:PassID:字符串,表示會員ID號
輸出參數:Flag:布爾型,表示是否成功建立關聯
b.登錄接口
驗證cookie票Web Service規範:成員網站本地域存在cookie驗證票時,使用的接口。
Web Service名稱:web_ticket_auth
所有者:Passport服務器
調用者:成員網站
輸入參數:TicketCode 字符串 驗證票字符串
AppID 字符串 成員網站ID
輸出參數:Flag:布爾型,表示驗證票是否合法
驗證邏輯:隻要數據庫中存在該驗證票,且在有效期內,即合法。
HTTP[本接口改為了重定向的方式,請參考下麵的部分] 請求通信接口規範:成員網站域不存在cookie驗證票,查看Passport域是否存在。
Passpport提供的URL:https://passport.david.cn/pass_ticket_exist.aspx
輸入參數:無
輸出參數:XML格式的文本(符合RSS2.0標準),XML包含節點
Flag:表示是否存在合法的驗證票
Ticket:表示驗證票字符串
PassID:表示會員ID號
UserName:表示Email地址
備注:Http請求,從成員網站域,向Passport域發送請求時,並不能訪問到在Passport域中向客戶端寫的cookie值。現改成重定向的方式
重定向接口規範:
Passport提供的重定向地址:https://passport.david.cn/pass_ticket_exist.aspx
輸入參數:Redirect 字符串 Passport重定向到成員網站的地址
AppID 字符串 成員網站ID號
回傳參數:Ticket 字符串 驗證票編號
PassID 字符串 會員ID號
UserName 字符串 會員名稱
舉例:
假設: Redirect= https://www.woall.com/Public/Login_State.aspx
AppID=1
Ticket=53D2FD484DC6FAD75E82
PassID=1234
UserName= david@gmail.com
則:則 成員網站重定向地址為:
Passport重定向地址為:
https://www.woall.com/Public/Login_State.aspx? Ticket=53D2FD484DC6FAD75E82&PassID=1234&UserName=david@gmail.com
登錄框提交接口規範:成員網站輸入Email和密碼提交到Passport的地址。
提交到Passport的地址:https://passport.david.cn/pass_login.aspx
成員網站入口參數:Email 會員名
Pwd 會員密碼
AppID 成員網站ID
Redirect Passport重定向地址
Passport回傳參數: Ticket 字符串,cookie驗證票加密串
PassID 字符串,會員ID號
UserName 字符串,會員名稱(Email)
Flag 登錄成功與否標識 2-成功(會員存在)3-失敗(會員名不存在)4-密碼不正確,5-數據庫錯誤
舉例:
假設:Passport重定向地址為https://www.woall.com/default.aspx
則,Passport服務器重定向到成員網站的地址是
c.登出接口
重定向規範:
成員網站登出重定向地址:https://passport.david.cn/Public/logout.aspx
成員網站入口參數:AppID 字符串,成員網站ID號
Ticket 字符串,cookie驗證票
Redirect 字符串,Passport重定向地址
Passport回傳參數: Flag 字符串,1-表示成功從Passport登出;0-票不合法;-1-失敗(數據庫錯誤)
舉例:
假設AppID=1;Redirect=https://www.woall.com/index.aspx
Ticket= 53D2FD484D
Flag=1
則,成員網站重定向到Passport的地址為
Passport服務器重定向到成員網站的地址為:
https://www.woall.com/index.aspx?Flag=1
d.修改密碼接口
重定向規範:
成員網站修改密碼重定向地址:https://passport.david.cn/Public/pwd_mod.aspx
成員網站入口參數:AppID 字符串,成員網站ID號
Ticket 字符串,cookie驗證票
Redirect 字符串,Passport重定向地址
Passport回傳參數: Flag 字符串,1-成功;0-驗證票不合法;-1-數據庫錯誤
舉例:
假設AppID=1;Redirect=https://www.woall.com/index.aspx
Ticket= 53D2FD484D
Flag=1
則,成員網站重定向到Passport的地址為
Passport服務器重定向到成員網站的地址為:
https://www.woall.com/index.aspx?Flag=1
e.找回密碼接口
重定向規範:
成員網站找回密碼重定向地址:https://passport.david.cn/Public/getback_pwd.aspx
成員網站入口參數:AppID 字符串,成員網站ID號
Ticket 字符串,cookie驗證票
Passport回傳參數: Passport服務器發送密碼激活地址(其中有驗證票字符串)到會員郵箱,供激活密碼。
激活地址:
https://passport.david.cn/pwd_awake.aspx?Ticket=53D2FD484D
舉例:
假設AppID=1;Ticket= 53D2FD484D
則,成員網站重定向到Passport的地址為
https://passport.david.cn/getback_pwd.aspx?AppID=1&Ticket=53D2FD484D
3.8故障處理要求
列出可能的軟件、硬件故障以及對各項性能而言所產生的後果和對故障處理的要求。
3.9其他專門要求
如用戶單位對安全保密的要求,對使用方便的要求,對可維護性、可補充性、易讀性、可靠性、運行環境可轉換性的特殊要求等。
4、運行環境規定
4.1設備
列出運行該軟件所需要的硬設備。
說明其中的新型設備及其專門功能,包括:
a.處理器型號及內存容量;
b.外存容量、聯機或脫機,設備的型號及數量;
c.輸入及輸出設備的型號和數量,聯機或脫機;
d.數據通信設備的型號和數量;
e. 功能鍵及其他專用硬件
4.2支持軟件
暫時不采用第三方插件或其它軟件。
4.3控製
說明控製該軟件的運行的方法和控製信號,並說明這些控製信號的來源。
【總結】
按照係統的說明書,本人已經實現了該係統,並且實施過程的修改都作了說明。
平台環境:
1、win2003, IIS6.0, MS SQL 2000,VS.NET C# 1.1
2、wind2003,Apache2.2.4, MySql5.0, PHP5.1
重點:
驗證票的生成,在各個網站所在的域中共享驗證票,驗證票的安全(3DES,數字簽名,驗證票時間戳)
本文來自CSDN博客,轉載請標明出處:https://blog.csdn.net/YongJava/archive/2008/09/29/2994098.aspx
最後更新:2017-04-02 06:51:20