單點登錄是我比較喜歡的一個技術解決方案,一方面他能夠提高產(chǎn)品使用的便利性,另一方面他分離了各個應用都需要的登錄服務,對性能以及工作量都有好處。自從上次研究過JWT如何應用于會話管理,加之以前的項目中也一直在使用CAS這個比較流行的單點登錄框架,所以就一直在琢磨如何能夠把JWT跟單點登錄結合起來一起使用,盡量能把兩種技術的優(yōu)勢都集成到項目中來。本文介紹我從CAS思考得出的SSO的實現(xiàn)方案。
前言
其實CAS這個方案很好,非常強大,它最新的版本已經(jīng)集成JWT了,所以要是不想自己開發(fā)單點登錄的服務的話,完全可以考慮使用CAS。但是我認為,我們在做項目的時候,也許一開始并不需要這么強大的產(chǎn)品,CAS提供的登錄形式有很多,而我們只需要應用其中的一種;而且它這個框架正是因為強大,所以也會比較復雜,簡單上手容易,但是遇到一些特殊的需求,比如我們想在CAS里面加入微信登錄,那就需要對它的原理以及API有比較深入的了解才行。綜合考慮,還是弄清楚CAS的原理,自己來實現(xiàn)一個基本的SSO服務比較放心。
本文的內容需要對JWT和SSO有一個基本的了解,你可以從這兩篇文章來了解JWT的用途:3種web會話管理的方式JWT實現(xiàn)token-based會話管理,還可以從下面的資料來了解SSO的內容:SSO_百度百科。