1. 程式人生 > >CAS實現SSO單點登入-CAS Server搭建

CAS實現SSO單點登入-CAS Server搭建

        最近公司連續接了三四個單點登入整合的專案,由我們公司提供CAS Server端的,也有需要我們把Client與其他公司提供的Server端對接的,我負責把我們公司的一個Client與另外一個公司提供的Server端對接,由於我們需要.Net2.0的版本,而負責整合的公司只有.Net4.0的版本,趁他們在開發.Net2.0時,我順便研究了單點登入整合的客戶端與服務端,在此記錄一下自己的研究結果及中間碰到的坑,方便自己以後查閱。

        現在市場上大多數單點登入專案,都採用的是CAS(即Central Authentication Server),CAS 是 Yale 大學發起的一個開源專案,旨在為 Web 應用系統提供一種可靠的單點登入方法,CAS 在 2004 年 12 月正式成為 JA-SIG 的一個專案.

該專案具有如下特點:
1、開源的企業級單點登入解決方案。
2、CAS Server 為需要獨立部署的 Web 應用。
3、CAS Client 支援非常多的客戶端(這裡指單點登入系統中的各個 Web 應用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

軟硬體環境如下圖:
這裡寫圖片描述

        說一下為什麼CAS Server端會有CAS4.0與CAS5.3兩個版本,截止寫本部落格時,CAS現在最新的版本是5.3,要研究肯定是研究最新的版本了,為什麼要研究CAS4.0,兩個原因:

1、在研究CAS5.3時,CAS Server部署以後,客戶端一直除錯通過不過,登入成功以後,來回調整;由於網上CAS5.x以上的文章非常少,所以又部署了CAS4.0.
2、CAS4.0與CAS5.3在去除HTTPS時,修改的配置檔案大不一樣。

接下來我們進入本文的正題,部署CAS Server4.0
一、CAS Server的部署
1、下載CAS Server
cas官網:https://www.apereo.org/projects/cas
cas server的下載地址:https://github.com/apereo/cas
cas server4.0下載地址:https://github.com/apereo/cas/releases/tag/v4.0.0
注:cas只有很少的幾個版本有release版,如4.0.0與3.5.2,其他版本都是原始碼,需要自己編譯;cas自動化構建工具也有還原的Maven換成了gradle.

2、CAS安裝
解壓縮下載下來的“cas-server-4.0.0-release.zip”
在“modules”資料夾中找到“cas-server-webapp-4.0.0.war”,將其重新命名為“cas.war”,在將“cas.war”拷貝到“%TOMCAT_HOME%\webapps”資料夾下。稍等一會兒重新整理一下,就會看到Tomcat自動將“cas.war”解壓到“cas”資料夾中。如下圖:
這裡寫圖片描述

3、測試 CAS
在預設配置下,CAS認為只要使用者名稱密碼相同即登入成功,cas在配置檔案中配置了預設的賬號與密碼,以後,我們會通過修改配置以實現基於資料庫的身份驗證。不過目前我們先以預設配置進行測試。

輸入賬號與密碼,預設賬號:casuser,密碼:Mellon;如果使用者名稱與密碼相同,則系統顯示登入成功:
這裡寫圖片描述
使用者可以在瀏覽器中輸入網址“http://192.168.1.121:8080/cas/logout”,則系統自動完成登出操作,如下圖:
這裡寫圖片描述

至此,伺服器端配置全部完成,接下來我們會介紹一下怎麼去除服務全的HTTPS,讓使用HTTP協議可以訪問。

疑問:CAS4.0預設是使用HTTPS訪問的,需要修改配置項才可以去除HTTPS,但是我在測試的時候是可以直接使用http訪問的,如上圖,誰知道原因,幫忙解釋一下,謝謝大家了。

這裡寫圖片描述
個人微信公眾號,歡迎大家關注。