SSO統一身份認證——CAS Server6.3.x配置服務存儲(十)
背景
單點登入(SingleSignOn,SSO),就是通過使用者的一次性鑒别登入。當使用者在身份認證伺服器上登入一次以後,即可獲得通路單點登入系統中其他關聯系統和應用軟體的權限,同時這種實作是不需要管理者對使用者的登入狀态或其他資訊進行修改的,這意味着在多個應用系統中,使用者隻需一次登入就可以通路所有互相信任的應用系統。這種方式減少了由登入産生的時間消耗,輔助了使用者管理,是目前比較流行的。
單點登入的使用場景有很多,C/S、B/S架構的系統均可使用,通常是支援快速配置使用。
業内目前實作SSO的方式有很多種,在ToC場景下網際網路公司通常使用的是OAuth2協定,而ToB場景下大家通常是囊括百家,既支援OAuth2又支援CAS,還滴支援LDAP。其造成的原因主要是因為在ToB場景下需要對接SSO的系統通常僅支援某個協定,而這類系統又不是同一個協定導緻。
而我目前境況下就是既有ToC場景又有ToB場景,在該種情況下,我開始對其業内的各種協定進行整合內建,這一系列文章将對其業内各個協定從基礎到深入、從搭建到二次開發進行記錄,同時将其整理出來分享給大家。
簡介
我們的統一身份認證建設後勢必會給第三方應用提供相關的認證對接,這時我們就需要對于應用進行授權管理,在CAS中該項是以服務形式進行使用,下面我們就開始對于CAS進行配置服務存儲邏輯,本次存儲采用的方式是JSON的方式,後續我們再進行JPA嘗試。
上一節我們搭建了一個cas client,本章節我們就基于上一節的用戶端在其服務端中增加服務注冊配置,使其不再提示下圖這種無權限的錯誤。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuATNmVjZmdDZyEWNwE2Y5I2Y3QjYkZ2NwIGOjZGMlVjNvwVN2gDMyITMtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
image-20210727170411130
環境
主要使用的環境如下
伺服器系統:windows 10
環境:OpenJDK 11
web中間件:tomcat9
CAS Server:6.3.x
資料庫:MariaDB 或 PostgreSQL
快速軟體包openjdk11+tomcat9+CASServer.tar
谷歌CAS社群郵件清單
正文
1、修改配置檔案application-dev.properties,增加服務配置
# 啟動服務注冊設定 JSON格式
cas.service-registry.init-from-json=true
# 服務系統資料庫存儲目錄
cas.service-registry.json.location=classpath:/services
複制
2、修改build.gradle檔案,在dependencies中增加一個json包。
// 添加服務注冊依賴JSON
implementation "org.apereo.cas:cas-server-support-json-service-registry"
複制
注:在我編寫本篇教程時發現官方的覆寫模闆檔案再次疊代,是以我進行了項目更新,是以我們這裡使用org.apereo.cas下的包時不需要後面追加版本号了,當你進行使用時一定要觀察目前你使用版本的寫法,以免造成一些包沒有有效引用進來。
3、在src/main/resourcess/services目錄下建立一個json檔案,這裡我使用的檔案名稱為:Test-10000002.json
官方檔案提到該檔案的名稱是由name-id組成,是以隻要符合該規則即可。
其内容如下:
{
"@class": "org.apereo.cas.services.RegexRegisteredService",
"serviceId": "^(https|http|imaps)://.*",
"name": "Test",
"id": 10000002,
"description": "這是一個測試授權的位址配置",
"accessStrategy" : {
"@class" : "org.apereo.cas.services.RemoteEndpointServiceAccessStrategy",
"endpointUrl" : "http://localhost:8080",
"acceptableResponseCodes" : "200,202"
}
}
複制
4、啟動CAS Server服務,并啟動上一節我們建立的CAS 用戶端,進行通路用戶端位址
顯示如上頁面,表示着我們已經成功在服務中注冊了我們的新CAS用戶端。
下一節,我們将配置服務存儲至mariaDB中。
本作品由 cn華少 采用 知識共享署名-非商業性使用 4.0 國際許可協定 進行許可。