SSO(Single Sign-on)
簡介:單點(diǎn)登錄,SSO是在多個應(yīng)用系統(tǒng)中吸重,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng)厅各。它包括可以將這次主要的登錄映射到其他應(yīng)用中用于同一個用戶的登錄的機(jī)制母蛛。它是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一葛作。
理解:在多個系統(tǒng)中箭窜,只需要登錄一次膀篮,就可以訪問其他可以相互信任的系統(tǒng)嘹狞。解決了企業(yè)運(yùn)行多個服務(wù)而賬號需要統(tǒng)一管理終端用戶登陸一次,即可使用一個賬戶享受不同域名下的服務(wù)
體系結(jié)構(gòu):
當(dāng)用戶第一次訪問應(yīng)用系統(tǒng)1的時候誓竿,因?yàn)檫€沒有登錄磅网,會被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行登錄;
根據(jù)用戶提供的登錄信息筷屡,認(rèn)證系統(tǒng)進(jìn)行身份校驗(yàn)涧偷,如果通過校驗(yàn)簸喂,應(yīng)該返回給用戶一個認(rèn)證的憑據(jù)--token;
用戶再訪問別的應(yīng)用的時候就會將這個token帶上燎潮,作為自己認(rèn)證的憑據(jù)喻鳄,應(yīng)用系統(tǒng)接受到請求之后會把token送到認(rèn)證系統(tǒng)進(jìn)行校驗(yàn),檢查token的合法性确封。
如果通過校驗(yàn)除呵,用戶就可以在不用再次登錄的情況下訪問應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3了 。
單點(diǎn)登錄原理
會話管理的問題:
系統(tǒng)分割為多個子系統(tǒng)隅肥,獨(dú)立部署后竿奏,不可避免的會遇到會話管理的問題。一般可采用Session同步腥放,Cookies泛啸,分布式Session方式。
分布式Session方式流程說明:
用戶第一次登錄時秃症,將會話信息(用戶Id和用戶信息)候址,比如以用戶Id為Key,寫入分布式Session种柑;
用戶再次登錄時岗仑,獲取分布式Session,是否有會話信息聚请,如果沒有則調(diào)到登錄頁荠雕;
一般采用Cache中間件實(shí)現(xiàn),建議使用Redis驶赏,因此它有持久化功能炸卑,方便分布式Session宕機(jī)后,可以從持久化存儲中加載會話信息煤傍;
存入會話時盖文,可以設(shè)置會話保持的時間,比如15分鐘蚯姆,超過后自動超時五续;