概述說明
為了讓系統更加安全,很多登錄會加入雙因素認證。何為雙因素,如果把登陸作為開一扇門的話,那就是在原來的鎖上再加一把鎖,第二鎖用新的鑰匙,這樣安全系數就更加高了。
CAS是通過賬號名和密碼來認證的,那如果賬號名和密碼泄密就會造成信息泄露。所以為了安全,CAS在賬號名密碼認證通過后,再給用戶的手機發送消息驗證碼,用戶輸入驗證碼后才能真正的登錄完成。
本章就是講解怎么在CAS增加手機驗證的雙因素,需要特殊說明的是,CAS自身是不支持的,是將第三方的雙因素認證系統整合進來的。本章是使用的是Duo Secret
搭建步驟
`1. 首先,您需要有個CAS Server端
如果您沒有,可以按照我之前寫的文章《輕松搭建CAS 5.x系列文章》系列的前3篇文章搭建好CAS Server。
`2. 在pom.xml增加依賴包
1 <!-- Duo Security Authentication Begin -->
2 <dependency>
3 <groupId>org.apereo.cas</groupId>
4 <artifactId>cas-server-support-duo</artifactId>
5 <version>${cas.version}</version>
6 </dependency>
7 <!-- Duo Security Authentication End -->
8 <!-- Duo Security Authentication Begin -->
9 <repository>
10 <id>duo-unicon</id>
11 <url>https://dl.bintray.com/uniconiam/maven</url>
12 </repository>
13 <repository>
14 <id>duo-jitpack</id>
15 <url>https://jitpack.io</url>
16 </repository>
17 <!-- Duo Security Authentication End -->
·3 在Duo網站上注冊管理賬號
網站地址:https://signup.duo.com/ (需要翻牆)
·4. 登錄到Duo后台,增加application
點擊菜單:protect an application - 選擇cas
並增加登錄策略
創建完成后就有了 duoSecretKey、duoIntegrationKey、duoApiHost
`5. application.properties增加配置文件
1 cas.authn.mfa.globalProviderId=mfa-duo 2 cas.authn.mfa.duo[0].duoSecretKey=BRuiDVVHnK9iolBzoy1QTTK4q38Qkw0blkAutm3m 3 cas.authn.mfa.duo[0].rank=0
4 cas.authn.mfa.duo[0].duoApplicationKey=6e846c1eec420786716015bbb7c1e207b77d781e 5 cas.authn.mfa.duo[0].duoIntegrationKey=DIZSC3XXIQ4EWEAOGUPN 6 cas.authn.mfa.duo[0].duoApiHost=api-4cfedbe7.duosecurity.com 7 cas.authn.mfa.duo[0].trustedDeviceEnabled=false 8 cas.authn.mfa.duo[0].id=mfa-duo 9 cas.authn.mfa.duo[0].registrationUrl=https://registration.example.org/duo-enrollment 10 cas.authn.mfa.duo[0].name=duoname
其中cas.authn.mfa.duo[0].duoApplicationKey是自行生成的,這個是不少於40位的字符串
-6. 打包
mvn package
效果演示
-1. 首先需要手機下載Duo Mobile (APP)
-2. 啟動tomcat,訪問登錄
需要特殊說明的,
在視頻中點擊按鈕“Send Me a Push" ,是在手機Duo APP顯示登錄確認,這個跟電腦登錄微信端類似,具體見下圖
OK 大功告成
參考文章
2. Duo Docuents#Central Authentication Server (CAS) (需要翻牆訪問)
最后,大家想更多CAS了解的話,可以來CAS中文文檔站點(http://www.cassso-china.cn)來瞅瞅