1、單點登錄簡介
單點登錄(Single SignOn),簡稱為SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO 的定義是在多個應(yīng)用系統(tǒng)中,用戶只需要進行一次登錄就可以訪問所有建立了相互信任關(guān)系的應(yīng)用系統(tǒng)。它的目標(biāo)是方便用戶,簡化管理,提供統(tǒng)一的一站式服務(wù)。
使用單點登錄主要有以下幾個方面的好處:
1.1 統(tǒng)一管理、維護用戶公共信息、提供多種接口標(biāo)準(zhǔn),保證其他應(yīng)用系統(tǒng)通過直接訪問或同步復(fù)制的方式,從統(tǒng)一用戶中心獲取一致的用戶信息。
1.2 方便管理,減少管理員管理多個應(yīng)用系統(tǒng)用戶的壓力,管理員只需要維護好統(tǒng)一用戶中心的用戶信息即可,其他應(yīng)用系統(tǒng)可按一定的規(guī)則從統(tǒng)一用戶中心同步用戶信息。
1.3 為終端用戶提供便捷的一站式服務(wù),用戶只需要記住一個用戶名及密碼即可訪問其有權(quán)限的所有應(yīng)用系統(tǒng),也可以減少因用戶忘記密碼而為管理員增加的工作量。
1.4 具有良好的兼容性、可擴展性,一方面能兼容新開發(fā)的業(yè)務(wù)系統(tǒng)也能支撐現(xiàn)有的應(yīng)用系統(tǒng)的訪問;另一方面,系統(tǒng)中用戶信息的屬性可以擴充,以適應(yīng)未來業(yè)務(wù)的變化。
1.5 提高開發(fā)人員的效率。SSO 為開發(fā)人員提供了一個通用的身份驗證框架。實際上,如果SSO 機制是獨立的,那么開發(fā)人員就完全不需要為身份驗證操心。他們可以假設(shè),只要對應(yīng)用程序的請求附帶一個用戶名,身份驗證就已經(jīng)完成了。
2、單點登錄系統(tǒng)設(shè)計
本文作者負責(zé)一所高校信息門戶開發(fā)及維護,由于目前所用的門戶系統(tǒng)沒有單點登錄服務(wù),但又經(jīng)常需要跟其他應(yīng)用系統(tǒng)之間進行單點登錄,因此設(shè)計此方案,大致的思路如下:
2.1 設(shè)計思路。我校的信息門戶使用活動目錄進行用戶管理,通過LDAP 協(xié)議進行統(tǒng)一身份驗證,因此本方案也使用AD作為統(tǒng)一用戶中心,在門戶上建立單點登錄服務(wù)用于跟其他應(yīng)用系統(tǒng)之間的單點登錄。
用戶首先登錄門戶,SSO 服務(wù)獲取到用戶信息后將用戶有權(quán)訪問的資源列表展現(xiàn)給用戶,用戶點擊到某個應(yīng)用的鏈接后自動登錄到相應(yīng)的應(yīng)用程序;用戶點擊的鏈接不包含任何敏感信息,只有應(yīng)用服務(wù)器ID;SSO 服務(wù)會根據(jù)應(yīng)用服務(wù)器ID 自動根據(jù)憑證生效時間、過期時間、用戶ID、Key(SSO服務(wù)器與應(yīng)用服務(wù)器之間約定的加密字符串)等信息自動生成憑證并將憑證提供給應(yīng)用服務(wù)器驗證,當(dāng)應(yīng)用服務(wù)器收到登錄請求后會首先驗證用戶的合法性,然后到SSO服務(wù)器驗證憑證的合法性,驗證成功后允許用戶登錄,且該過程必須要在既定的時間內(nèi)完成。
該過程中每個應(yīng)用與SSO 服務(wù)器之間約定共同的Key(密匙),根據(jù)密匙、用戶ID、用戶IP、憑證生成時間及失效時間根據(jù)一定的規(guī)則使用Hash 算法生成憑證,因此相同用戶在不同時間登錄某個應(yīng)用時生成的憑證是不相同的。
服務(wù)器之間通過SSL 協(xié)議加密信息傳輸,用戶通過使用https 的方式訪問。
SSO服務(wù)器根據(jù)單點登錄類型判斷應(yīng)用系統(tǒng)中的用戶信息與統(tǒng)一用戶中心的用戶信息是一致的還是需要進行用戶映射,如果需要進行用戶映射且用戶是第一次登錄,則將用戶重定向到用戶映射頁面要求用戶填寫相關(guān)信息后進行登錄。
SSO 服務(wù)器應(yīng)具有的功能:
(1)可以添加多個應(yīng)用,添加應(yīng)用時可添加應(yīng)用服務(wù)器名稱、通信密匙、應(yīng)用服務(wù)器單點登錄地址等信息。
(2)可將所有應(yīng)用以合適的方式展現(xiàn)給用戶,并能獲取用戶登錄ID,并根據(jù)應(yīng)用服務(wù)器ID、通信密匙按照一定的加密算法生成憑證信息及憑證信息的Hash 值。
(3)提供用于驗證應(yīng)用服務(wù)期憑證的WebService,該Web-Service 應(yīng)檢查憑證的時效性(是否為過期憑證)及正確性,防止憑證被篡改,同時將校驗的結(jié)果反饋給應(yīng)用服務(wù)器。應(yīng)用服務(wù)器功能:
(4)應(yīng)用服務(wù)期只需要校驗SSO 服務(wù)器提供的用戶ID 及憑證的有效性即可。
2.2 單點登錄流程。
2.2.1 用戶首先登錄門戶,并打開單點登錄(SSO)應(yīng)用列表,點擊相應(yīng)的應(yīng)用系統(tǒng)鏈接。
2.2.2 SSO服務(wù)器根據(jù)APPID找到對應(yīng)的應(yīng)用、與應(yīng)用服務(wù)器約定的key,在SSO 服務(wù)器上生成一條包含APPID、用戶ID、用戶IP、憑證生效時間、憑證失效時間、憑證信息的Hash 值等的記錄。憑證信息根據(jù)APPID、用戶ID、用戶IP、憑證生效時間、憑證失效時間及與應(yīng)用服務(wù)期之間約定的key 按照一定的規(guī)則生成。
2.2.3 SSO 服務(wù)器根據(jù)步驟2 中的信息采用Hash 加密算法生成的憑證信息,并將用戶ID 及憑證傳遞到應(yīng)用服務(wù)器。
2.2.4 應(yīng)用服務(wù)器根據(jù)SSO 服務(wù)器傳遞過來的用戶ID,校驗該用戶的有效性,同時調(diào)用SSO 服務(wù)器提供的WebService 校驗憑證的有效性及時效性,如果校驗成功,則允許用戶登錄。
2.2.5 如果用戶登錄的應(yīng)用系統(tǒng)與統(tǒng)一用戶中心使用不同的用戶信息,則用戶第一次登錄時需要首先進行用戶映射,第二次登錄時執(zhí)行步驟1 到步驟4。
2.2.6 用戶登錄其他應(yīng)用系統(tǒng)時重新執(zhí)行以上過程。
從以上流程可以看出,本文設(shè)計的單點登錄方案跟其他單點登錄方案有所不同,用戶無論登錄那個應(yīng)用系統(tǒng)均需由SSO服務(wù)器代替用戶自動登錄。
2.3 具體數(shù)據(jù)表設(shè)計。
首先我們需要一張表用于存放各種應(yīng)用服務(wù)器的相關(guān)信息,包含應(yīng)用服務(wù)器名稱、應(yīng)用服務(wù)器單點登錄地址等信息,數(shù)據(jù)表字段及設(shè)計說明如下:
除了上面數(shù)據(jù)表之外我們還需要一張表用于存放用戶登錄時自動生成的信息,同時這張表中的數(shù)據(jù)也作為應(yīng)用服務(wù)器向SSO服務(wù)器驗證時用。
如果統(tǒng)一用戶中心與應(yīng)用系統(tǒng)使用兩套不同的用戶信息,則還需要設(shè)計統(tǒng)一用戶中心與應(yīng)用系統(tǒng)中用戶信息對應(yīng)表。
3、方案評估
3.1 通用性。
該設(shè)計方案可以使用各種編程語言實現(xiàn),因此具有跨平臺、跨應(yīng)用的特點。用戶在登錄其他應(yīng)用系統(tǒng)時由于不需要輸入任何密碼,因此用戶可自由修改其在其他應(yīng)用系統(tǒng)中的密碼,只要用戶名或登錄ID 不變,用戶即可通過單點登錄服務(wù)登錄到相應(yīng)的應(yīng)用,應(yīng)用系統(tǒng)原有登錄方式不受影響。
由于各應(yīng)用系統(tǒng)之間保持獨立,因此一臺應(yīng)用服務(wù)器受攻擊后其他服務(wù)器不受影響。通常情況下各業(yè)務(wù)系統(tǒng)都會有自己的業(yè)務(wù)操作賬戶,而這些賬戶是不需要進行單點登錄的,且各應(yīng)用服務(wù)器可以有自己獨有的用戶信息。比如,財務(wù)系統(tǒng)及人力資源系統(tǒng)可以單獨為領(lǐng)導(dǎo)設(shè)置帳號專門用于報表的查看。
3.2 安全性。
本方案從以下幾個方面加強系統(tǒng)的安全:
3.2.1 SSO 服務(wù)器與應(yīng)用服務(wù)器之間約定的密匙不同。
3.2.2 生成的憑證具有時效性和隨機性,會自動過期,過期后不能再次使用。
3.2.3 憑證的加密采用Hash 算法加密保證憑證傳遞過程中不被截取或篡改,并防止兩個應(yīng)用系統(tǒng)相互截取或偽造對方的憑證。
3.2.4 SSO 服務(wù)器與應(yīng)用服務(wù)器使用SSL 傳輸協(xié)議,可確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中不會被截取及竊聽。
3.2.5 每個系統(tǒng)都有自己的應(yīng)用系統(tǒng)ID 及密匙。
3.2.6 進行單點登錄的用戶都需要首先通過LADP 協(xié)議到AD服務(wù)器進行驗證,這就保證了單點登錄服務(wù)地址只有門戶系統(tǒng)中的用戶可以訪問而其他非門戶用戶必須首先通過門戶的驗證后才能訪問相應(yīng)資源。
3.2.7 整個單點登錄過程不進行用戶密碼的傳遞。
3.3 方案優(yōu)點。
3.3.1 由于每個應(yīng)用跟SSO服務(wù)器約定的密匙不相同,各應(yīng)用服務(wù)器相互隔離,可有效避免相互之間的惡意篡改憑證。
3.3.2 用戶每一次登錄都使用隨機憑證,并有一定的時效性,可以加強系統(tǒng)的安全性。
3.3.3 該方案在技術(shù)上實現(xiàn)的難度不大又具有較強的安全性,因此比較適合自主開發(fā),從而降低成本。
3.3.4 由于單點登錄服務(wù)具有統(tǒng)一的接口及接口規(guī)則,降低了應(yīng)用系統(tǒng)接入時開發(fā)的難度
3.4 方案缺點。
3.4.1 該方案適合應(yīng)用及用戶較小的組織,若應(yīng)用數(shù)量多、用戶基數(shù)大則建議將門戶與SSO服務(wù)器分開,從而降低服務(wù)器壓力。
3.4.2 由于用戶登錄門戶后即可訪問所有經(jīng)過授權(quán)的應(yīng)用系統(tǒng),一旦用戶門戶密碼泄露,則所用應(yīng)用系統(tǒng)均受影響,因此要加強門戶安全,避免門戶密碼泄露。
4、結(jié)論
單點登錄的方式有很多種,最終的目標(biāo)就是簡化管理、方便用戶,盡可能加強系統(tǒng)的安全性,但每種方案都有自身的特點,本文實現(xiàn)的單點登錄方案仍有可完善的地方,如果運用于生產(chǎn)環(huán)境,還需要進一步加強系統(tǒng)安全性設(shè)計及靈活性設(shè)計。比如:可考慮通過服務(wù)器之間端口過濾或防火墻技術(shù)限制只有這些應(yīng)用服務(wù)器能與SSO 服務(wù)器之間進行用戶認證;只允許互相信任的應(yīng)用服務(wù)器訪問SSO 服務(wù)器的WebService等。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:基于門戶單點登錄系統(tǒng)的設(shè)計與實現(xiàn)
本文網(wǎng)址:http://www.guhuozai8.cn/html/consultation/1083938097.html