轻松搭建CAS 5.x系列(8)-在CAS Server增加双因素认证(DUO版)
概述说明
为了让系统更加安全,很多登录会加入双因素认证。何为双因素,如果把登陆作为开一扇门的话,那就是在原来的锁上再加一把锁,第二锁用新的钥匙,这样安全系数就更加高了。
CAS是通过账号名和密码来认证的,那如果账号名和密码泄密就会造成信息泄露。所以为了安全,CAS在账号名密码认证通过后,再给用户的手机发送消息验证码,用户输入验证码后才能真正的登录完成。
本章就是讲解怎么在CAS增加手机验证的双因素,需要特殊说明的是,CAS自身是不支持的,是将第三方的双因素认证系统整合进来的。本章是使用的是Duo Secret
搭建步骤
`1. 首先,您需要有个CAS Server端
如果您没有,可以按照我之前写的文章《轻松搭建CAS 5.x系列文章》系列的前3篇文章搭建好CAS Server。
`2. 在pom.xml增加依赖包
<!-- Duo Security Authentication Begin -->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-duo</artifactId>
<version>${cas.version}</version>
</dependency>
<!-- Duo Security Authentication End -->
<!-- Duo Security Authentication Begin -->
<repository>
<id>duo-unicon</id>
<url>https://dl.bintray.com/uniconiam/maven</url>
</repository>
<repository>
<id>duo-jitpack</id>
<url>https://jitpack.io</url>
</repository>
<!-- Duo Security Authentication End -->
·3 在Duo网站上注册管理账号
网站地址:https://signup.duo.com/ (需要翻墙)

·4. 登录到Duo后台,增加application
点击菜单:protect an application - 选择cas

并增加登录策略

创建完成后就有了 duoSecretKey、duoIntegrationKey、duoApiHost
`5. application.properties增加配置文件
cas.authn.mfa.globalProviderId=mfa-duo
cas.authn.mfa.duo[].duoSecretKey=BRuiDVVHnK9iolBzoy1QTTK4q38Qkw0blkAutm3m
cas.authn.mfa.duo[].rank=0
cas.authn.mfa.duo[].duoApplicationKey=6e846c1eec420786716015bbb7c1e207b77d781e
cas.authn.mfa.duo[].duoIntegrationKey=DIZSC3XXIQ4EWEAOGUPN
cas.authn.mfa.duo[].duoApiHost=api-4cfedbe7.duosecurity.com
cas.authn.mfa.duo[].trustedDeviceEnabled=false
cas.authn.mfa.duo[].id=mfa-duo
cas.authn.mfa.duo[].registrationUrl=https://registration.example.org/duo-enrollment
cas.authn.mfa.duo[].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)来瞅瞅

轻松搭建CAS 5.x系列(8)-在CAS Server增加双因素认证(DUO版)的更多相关文章
- 轻松搭建CAS 5.x系列(7)-在CAS Server使用第三方帐号做认证
概述说明 CAS除了使用自身数据库配置的帐号体系外,也可以使用第三方帐号来做认证. 比如实现如下类似的红色标注部分的登录效果: CAS自带了Facebook.GitHub.WordPress和CAS的 ...
- 轻松搭建CAS 5.x系列(6)-在CAS Server上增加OAuth2.0协议
概述说明 CAS Server默认搭建出来,客户端程序只能按照CAS自身的协议接入.CAS的强大在于,有官方的插件,可以支持其他的协议.本章节就让CAS Server怎么增加OAuth2.0的登录协议 ...
- 轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端
概要说明 cas的服务端搭建有两种常用的方式: 1. 基于源码的基础上构建出来的 2. 使用WAR overlay的方式来安装 官方推荐使用第二种,配置管理方便,以后升级也容易.本文就是使用第 ...
- 轻松搭建CAS 5.x系列文章
轻松搭建CAS 5.x系列(1)-使用cas overlay搭建SSO SERVER服务端 轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端 轻松搭建CAS 5.x系列(3)- ...
- 轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端
概要说明 CAS要求,必须使用HTTPS的服务,否则就只等实现登录,无法实现单点登录.科普下HTTPS,网站有HTTP和HTTPS两种协议.HTTP是浏览器到网站之间是明文传输,比如你输入帐号名和密码 ...
- 轻松搭建CAS 5.x系列(9)-登录后显示通知信息
概述说明 用户在账号名密码认证通过后,CAS可以跳转到登陆完成页面前,显示相关的通知页面. 搭建步骤 `1. 首先,您需要有个CAS Server端 如果您没有,可以按照我之前写的文章<轻松搭建 ...
- 轻松搭建CAS 5.x系列(5)-增加密码找回和密码修改功能
概述说明 CAS内置了密码找回和密码修改的功能: 密码找回功能是,系统会吧密码重置的连接通过邮件或短信方式发送给用户,用户点击链接后就可以重置密码,cas还支持预留密码重置的问题,只有回答对了,才可以 ...
- 轻松搭建CAS 5.x系列(4)-Java客户端程序接入CAS单点登录,Hello World版
概述说明 按照本系列的前3篇文章描述的步骤,我们已经搭建好cas sso server.那应用程序怎么接入到实现sso呢? (如果您还没有搭建cas server,可以到<轻松搭建CAS 5.x ...
- 轻松搭建CAS 5.x系列(3)-连接数据库,使用数据库表中的帐号做登录
概要说明 前面的CAS SEVER中的登录帐号名是配置中写死的,实际情况中不太可能用这些方法.通常情况下,数据库的帐号名密码都是在数据库表中的,这样可以对登录帐号进行增删改的处理. 如果您对搭建固定帐 ...
随机推荐
- osg fbx 绘制坐标轴、控制模型影藏与显示
int main() { osg::ref_ptr<osgViewer::Viewer> viewer1 = new osgViewer::Viewer; osg::ref_ptr< ...
- hue集成mysql找不到 libmysqlclient.so.16问题解决
首先我的配置文件如下,这个是没有问题的 但是在重启hue连接mysql时,却发生了如下问题: 这个错误的意思就是没有找到libmysqlclient_r.so.16这个文件,可能是我安装的mysql有 ...
- mysqlcheck修复工具
mysqlcheck工具可以检查.修复.优化和分析MyISAM引擎的表,实际上是集成了Mysql中的check.repair.analyze.tmpimize的功能. mysqlcheck共军存在于m ...
- 关于新小米盒子的Recovery模式如何进入
26日下的盒子订单,经过几经波折,终于在昨天来到了我的面前,新东西到手,难免少不了一些折腾:升级系统,安装软件等.一顿折腾之后,想完全恢复到出厂设置,给盒子清一下,想进入盒子的Recovery模式,按 ...
- iOS-objective-c产生随机数的方法
objective-c 中三种产生随机数的方法 //arc4random() 比较精确不需要生成随即种子 //通过arc4random() 获取0到x-1之间的整数的代码如下: int val ...
- Django:reverse反转URL并传递参数
需求: 假设在文章详情页评论文章后需要重新刷新显示该页面(原始方法,提交评论表单为form方式,未采用ajax方式), 提交评论后代码会走comment的视图函数,等数据入库之后需要将页面重新定位到文 ...
- Egret入门学习日记 --- 第二十篇(书中 9.1~9.3 节 内容 组件篇)
第二十篇(书中 9.1~9.3 节 内容 组件篇) 第八章中的内容. 以上都是基本的Js知识,我就不录入了. 直接来看 第9章. 开始 9.1节. 以上内容告诉你,Egret官方舍弃了GUI,使用了E ...
- VMware虚拟机中CentOS7的硬盘空间扩容
查看centos7系统挂载点信息 扩展VMWare-centos7硬盘空间 对新增加的硬盘进行分区.格式化 添加新LVM到已有的LVM组,实现扩容 1.查看centos7系统挂载点信息 df -h查看 ...
- leetcode1105 Filling Bookcase Shelves
思路: dp[i]表示摆放好前i本书所需要的最小代价. 实现: class Solution { public: int minHeightShelves(vector<vector<in ...
- vue-cli2和vue-cli3同时存在
https://blog.csdn.net/Jioho_chen/article/details/90455778 win下 vue-cli2 和 vue-cli3 并存,一起使用开局一张图,内容慢慢 ...