最強SSO單點登錄教程(六)CAS-簡介&配置https

作者:藍雄威,叩丁狼教育高級講師。原創(chuàng)文章,轉載請注明出處。

一、什么是什么是CAS

CAS(Central Authentication Service) 是 Yale (耶魯)大學發(fā)起的開源的企業(yè)級單點登錄系統(tǒng)。它的特點:

  • Java (Spring Webflow/Spring Boot) 服務組件
  • 可插拔身份驗證支持(LDAP,Database,X.509,MFA)
  • 支持多種協(xié)議(CAS,SAML,OAuth,OpenID,OIDC)
  • 跨平臺客戶端支持(Java,.Net,PHP,Perl,Apache等)
  • 與uPortal,Liferay,BlueSocket,Moodle,Google Apps等集成

分為CAS Server服務端和CAS Client客戶端:

CAS Server:
CAS Server 負責完成對用戶的認證工作, CAS Server 需要獨立部署,有不止一種 CAS Server 的實現, Yale CAS Server 和 ESUP CAS Server 都是很不錯的選擇。
CAS Server 會處理用戶名 / 密碼等憑證 (Credentials) ,它可能會到數據庫檢索一條用戶帳號信息,也可能在 XML 文件中檢索用戶密碼,對這種方式, CAS 均提供一種靈活但同一的接口 / 實現分離的方式, CAS 究竟是用何種認證方式,跟 CAS 協(xié)議是分離的,也就是,這個認證的實現細節(jié)可以自己定制和擴展.

CAS Client:
CAS Client 負責部署在客戶端(注意,我是指 Web 應用),原則上, CAS Client 的部署意味著,當有對本地 Web 應用的受保護資源的訪問請求,并且需要對請求方進行身份認證, Web 應用不再接受任何的用戶名密碼等類似的 Credentials ,而是重定向到 CAS Server進行認證。
目前, CAS Client 支持(某些在完善中)非常多的客戶端,包括 Java 、 .Net 、 ISAPI 、 Php 、 Perl 、 uPortal 、 Acegi 、 Ruby 、VBScript 等客戶端,幾乎可以這樣說, CAS 協(xié)議能夠適合任何語言編寫的客戶端應用。

二、https的配置

為了提高安全性,要求和CAS服務器的所有通信必須發(fā)生在一個安全的通道.所以服務端的數據傳輸需要使用https協(xié)議.
https能做什么同學們可以百度一下,在此就不做過多延伸.
步驟如下:
1.生成服務器的密匙文件wolfcode.keystore

keytool -genkey -alias wolfcode -keyalg RSA -keysize 2048 -validity 36500 -keystore D:/keys/wolfcode.keystore

參數說明:

  • genkey 生成密鑰
  • keyalg 指定密鑰算法,這時指定RSA,
  • keysize 指定密鑰長度,默認是1024位,這里指定2048,長一點,比較難破解,
  • validity 指定證書有效期,這里指定36500天.
  • alias 指定別名,這里是wolfcode
  • keystore 指定密鑰庫存儲位置,這里存在 D:/keys/目錄下

注意:您的名字與姓氏www.sso.com是CAS服務器使用的域名,不是隨便亂定的,其他的隨意.

2.導出證書:

keytool -export -alias wolfcode -storepass 123456 -file D:/keys/wolfcode.cer -keystore D:/keys/wolfcode.keystore

參數說明:

  • alias指定別名為wolfcode ;
  • storepass指定私鑰為123456;
  • file指定導出證書的文件名為wolfcode.cer;
  • keystore指定之前生成的密鑰文件的文件名。

注意:-alias-storepass必須為生成wolfcode .keystore密鑰文件時所指定的別名和密碼,否則證書導出失敗.


3.導入證書導入到jdk信任庫

keytool -import -alias wolfcode -keystore C:/"Program Files"/Java/jdk1.8.0_144/jre/lib/security/cacerts -file D:/keys/wolfcode.cer -trustcacerts

注意:
1.原來的$JAVA_HOME/jre/lib/security/cacerts文件要先刪掉,否則會報出java.io.IOException: Keystore was tampered with, or password was incorrect錯誤.
2.如果路徑有空格或特殊字符,像我上面一樣加上引號.

如果到這步都沒問題,說明https配置好了.接下來就搭建CAS Server服務端

?

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,688評論 19 139
  • 【環(huán)境說明】:本文演示過程在同一個機器上的(也可以在三臺實體機器或者三個的虛擬機上),環(huán)境如下: windows7...
    黃海佳閱讀 9,070評論 2 15
  • 【環(huán)境說明】: 本文演示過程在同一個機器上的(也可以在三臺實體機器或者三個的虛擬機上),環(huán)境如下: windows...
    yljava閱讀 9,523評論 3 8
  • 服務器https配置 配置https操作說明文檔 1、查看服務器環(huán)境配置(tomcat和apache合并使用) 2...
    南京楊小兵閱讀 9,255評論 0 9
  • 來來來,各位醒醒,又有故事可以聽了 昨天晚上我和一哥們喝酒,這哥們長得不錯,也挺浪的,年紀輕輕才89年。結果追求刺...
    靈搭閱讀 740評論 0 1

友情鏈接更多精彩內容