單點登錄系統CAS服務端部署與配置

什麼是單點登錄?

單點登錄(Single Sign On),簡稱爲 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。

我們目前的系統存在諸多子系統,而這些子系統是分別部署在不同的服務器中,那麼使用傳統方式的session是無法解決的,我們需要使用相關的單點登錄技術來解決。

什麼是CAS

CAS 是 Yale 大學發起的一個開源項目,旨在爲 Web 應用系統提供一種可靠的單點登錄方法,CAS 在 2004 年 12 月正式成爲 JA-SIG 的一個項目。CAS 具有以下特點:

  • 開源的企業級單點登錄解決方案。
  • CAS Server 爲需要獨立部署的 Web 應用。
  • CAS Client 支持非常多的客戶端(這裏指單點登錄系統中的各個 Web 應用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

下圖是 CAS 最基本的協議過程:

從結構上看,CAS 包含兩個部分: CAS Server CAS ClientCAS Server 需要獨立部署,主要負責對用戶的認證工作;CAS Client 負責處理對客戶端受保護資源的訪問請求,需要登錄時,重定向到 CAS Server

SSO單點登錄訪問流程主要有以下步驟:

  1. 訪問服務:SSO客戶端發送請求訪問應用系統提供的服務資源。
  2. 定向認證:SSO客戶端會重定向用戶請求到SSO服務器。
  3. 用戶認證:用戶身份認證。
  4. 發放票據:SSO服務器會產生一個隨機的Service Ticket
  5. 驗證票據:SSO服務器驗證票據Service Ticket的合法性,驗證通過後,允許客戶端訪問服務。
  6. 傳輸用戶信息:SSO服務器驗證票據通過後,傳輸用戶認證結果信息給客戶端。

CAS服務端部署:

環境準備:

CentOS-7-x86_64-Minimal-1908 、apache-maven-3.5.4-bin 、apache-tomcat-8.5.46 、cas-overlay-template-5.1.zip

java version  1.8.0_221

首先解壓cas-overlay-template-5.1.zip 到指定目錄[ -d參數表示安裝到指定目錄下,與tar包不同的是,zip的解壓的目標路徑在前]。

unzip -d /usr/local/software/ cas-overlay-template-5.1.zip

若提示沒有unzip,則通過以下命令安裝unzip

yum install unzip

解壓完成後進入目錄,執行 

[root@master cas-5.1]# ./build.sh run
-bash: ./build.sh: Permission denied
[root@master cas-5.1]# 

若出現這種情況表明執行權限不夠,我們查看操作權限

發現確實沒有執行權限,加權:

chmod +x build.sh

加權成功,再次運行  ./build.sh run    該過程需要些時間。。。

完成後會在當前目錄下出現一個target目錄,進入該目錄,會發現有個cas.war文件。

複製cas.war文件到Tomcat目錄下的webapps目錄下,然後開啓Tomcat。(因爲我的機器上之前已經開啓一個tomcat7了,而cas5.x版本需要Tomcat8,再次我將Tomcat8的服務端口改爲了8081,在瀏覽器中訪問)

http://192.168.139.100:8081/cas/login

默認用戶名密碼爲:casuser    Mellon

 

CAS服務端配置

首先修改默認登錄賬號和密碼

首先進入到CAS部署的目錄下,依次進入到以下目錄下,

tomcat8-cas/webapps/cas/WEB-INF/classes

打開改目錄下的application.properties文件

修改默認用戶名和密碼

保存退出,重新啓動tomcat

再次試用默認  casuser  Mellon登錄後提示認證信息無效

用admin登錄成功

去除https認證

首先繼續在aplication.properties文件匯中加入如下配置

cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true

其次在進入到 tomcat8-cas/webapps/cas/WEB-INF/classes/services目錄下

編輯HTTPSandIMAPS-10000001.json文件

修改serviceId的內容爲(爲了支持http協議的客戶端,我在裏面加了個http,代表所有URL符合這個正則表達式的服務都會被當成已經註冊的服務

保存退出,重新啓動tomcat

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章