SSO統(tǒng)一身份認(rèn)證——利用原版頁面修改一個簡潔的登錄頁面(十八)
背景
單點登錄(SingleSignOn矛绘,SSO)蛆楞,就是通過用戶的一次性鑒別登錄敌卓。當(dāng)用戶在身份認(rèn)證服務(wù)器上登錄一次以后班缎,即可獲得訪問單點登錄系統(tǒng)中其他關(guān)聯(lián)系統(tǒng)和應(yīng)用軟件的權(quán)限原茅,同時這種實現(xiàn)是不需要管理員對用戶的登錄狀態(tài)或其他信息進行修改的寓娩,這意味著在多個應(yīng)用系統(tǒng)中叛氨,用戶只需一次登錄就可以訪問所有相互信任的應(yīng)用系統(tǒng)。這種方式減少了由登錄產(chǎn)生的時間消耗棘伴,輔助了用戶管理寞埠,是目前比較流行的。
單點登錄的使用場景有很多焊夸,C/S仁连、B/S架構(gòu)的系統(tǒng)均可使用,通常是支持快速配置使用阱穗。
業(yè)內(nèi)目前實現(xiàn)SSO的方式有很多種饭冬,在ToC場景下互聯(lián)網(wǎng)公司通常使用的是OAuth2協(xié)議,而ToB場景下大家通常是囊括百家揪阶,既支持OAuth2又支持CAS昌抠,還滴支持LDAP。其造成的原因主要是因為在ToB場景下需要對接SSO的系統(tǒng)通常僅支持某個協(xié)議鲁僚,而這類系統(tǒng)又不是同一個協(xié)議導(dǎo)致炊苫。
而我當(dāng)前境況下就是既有ToC場景又有ToB場景裁厅,在該種情況下,我開始對其業(yè)內(nèi)的各種協(xié)議進行整合集成劝评,這一系列文章將對其業(yè)內(nèi)各個協(xié)議從基礎(chǔ)到深入姐直、從搭建到二次開發(fā)進行記錄,同時將其整理出來分享給大家蒋畜。
本節(jié)簡介
本節(jié)我將繼續(xù)對于登錄頁面進行改造声畏,改造的原則是在原有基礎(chǔ)上進行去除或修改部分樣式,從而達到我們需要的效果姻成,同時保留CAS Server一些其他方面的設(shè)置功能插龄,便于我們后續(xù)章節(jié)進行嘗試其他登錄方式時還能繼續(xù)使用這些頁面。
環(huán)境
主要使用的環(huán)境如下
服務(wù)器系統(tǒng):windows 10
環(huán)境:OpenJDK 11
web中間件:tomcat9
CAS Server:6.3.x
數(shù)據(jù)庫:MariaDB 或 PostgreSQL
正文
下面開始我們的實現(xiàn)科展。
1均牢、在原有l(wèi)ayout.html頁面中去掉頂部header頁面的引用。27-31行
<!--<div th:replace="fragments/header :: header">
<a href="fragments/header.html">Header</a> fragment will go here
</div>
<div class="mdc-drawer-scrim"></div>-->
2才睹、關(guān)閉一些我們不使用的頁面功能徘跪。
在application-dev.properties配置文件中增加如下配置。
#######
# 頁面配置
#
# 是否啟用側(cè)邊抽屜菜單
cas.drawer-menu.enabled=false
# 頂部顯示名稱
cas.theme.name=SSO
# 頂部logo
cas.logo.file=
# 是否啟用通知
cas.notifications-menu.enabled=false
3琅攘、去除登錄頁面中那個小盾牌圖標(biāo)
注釋掉頁面loginform.html文件中31行
<!--<i class="mdi mdi-security"></i>-->
并修改messages_zh_CN.properties文件中的screen.welcome.instructions屬性
screen.welcome.instructions=統(tǒng)一身份認(rèn)證
3垮庐、修改登錄頁面下面的忘記密碼和安全提示文字部分
去除loginform.html頁面中298行出于安全考慮,一旦您訪問過那些需要您提供憑證信息的應(yīng)用時...
相關(guān)的提醒坞琴。
<!--<div th:replace="fragments/loginsidebar :: loginsidebar"/>-->
暫時去除忘記密碼功能
修改頁面pmlinks.html中的31-35行
<!--<div th:unless="${passwordManagementEnabled}">
<br />
<span class="fa fa-question-circle"></span>
<span th:utext="#{screen.pm.button.forgotpwd('https://sso.cnhuashao.com/sso/updatePwd')}">忘記密碼?</span>
</div>-->
注:后續(xù)我們進行編寫忘記密碼時也需要使用這里哨查。
4、進行編譯剧辐,并運行查看效果寒亥。
到這里,我們的登錄頁面看起來更舒服一些了荧关,下一節(jié)我們將學(xué)習(xí)如何設(shè)置默認(rèn)的跳轉(zhuǎn)頁面溉奕,這樣便于我們快速使用到我們的實際系統(tǒng)中。
本文聲明:
知識共享許可協(xié)議
本作品由 cn華少 采用 知識共享署名-非商業(yè)性使用 4.0 國際許可協(xié)議 進行許可忍啤。