CAS单点登录(SSO)实战(一)

栏目: Java · 发布时间: 6年前

内容简介:在工作中,随着接触的项目越来越多,不同的开发语言,不同的部署系统,不同的项目都要维护自己的用户认证系统,有没有一种好的解决方案来解决这个痛点呢?答案肯定是有的,那就是业界鼎鼎有名的sso单点登录系统,也许你很早就听过这个词,但是只闻其声,不知其意,下面我们就将一起实战一次cas单点登录系统话不多说,我们开始吧。在浏览器中输入https//ip:8443测试端口地址

在工作中,随着接触的项目越来越多,不同的开发语言,不同的部署系统,不同的项目都要维护自己的用户认证系统,有没有一种好的解决方案来解决这个痛点呢?答案肯定是有的,那就是业界鼎鼎有名的sso单点登录系统,也许你很早就听过这个词,但是只闻其声,不知其意,下面我们就将一起实战一次cas单点登录系统话不多说,我们开始吧。

环境准备

  • jdk1.8
    CAS单点登录(SSO)实战(一)
  • maven3.x
    CAS单点登录(SSO)实战(一)
  • centos7.x
    CAS单点登录(SSO)实战(一)
  • tomcat8.0
    CAS单点登录(SSO)实战(一)

HTTPS证书准备

  • 生成server.keystore

    alias: 别名 这里起名tomcat

    keyalg: 证书算法,RSA

    keystore:证书生成的目标路径和文件名

    keypass:密钥保护密码

    storepass:存储密码

keytool -genkey -alias tomcat -keyalg RSA -keypass 123456 -storepass 123456 -keystore tomcat.keystore -validity 3600
复制代码
  • 生成证书server.cer
keytool -export -trustcacerts -alias tomcat -file server.cer -keystore tomcat.keystore -storepass 123456
复制代码
CAS单点登录(SSO)实战(一)
  • 导入证书

    看到下面的提示Certificate was added to keystore导入成功 其中-storepass changeit中 changeit即为默认密码和前面设置的密码没有关系

keytool -import -trustcacerts -alias tomcat -keystore "/home/jdk1.8.0_171/jre/lib/security/cacerts" -file "/root/software/server.cer" -storepass changeit
复制代码
  • 删除证书(如果需要)
keytool -delete -alias tomcat -keystore "/home/jdk1.8.0_171/jre/lib/security/cacerts" -storepass changeit
复制代码
CAS单点登录(SSO)实战(一)

Tomcat配置Https

  • 编辑
vi /root/software/apache-tomcat-8.5.37/conf/server.xml
加入配置项
 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
     clientAuth="false" sslProtocol="TLS" keystoreFile="tomcat.keystore" keystorePass="123456"  />
复制代码
  • 启动tomcat测试8443端口
./bin/startup.sh 
复制代码

在浏览器中输入https//ip:8443测试端口

CAS单点登录(SSO)实战(一)

下载CAS系统

地址 github.com/apereo/cas-…

这里选择5.3版本,因为从6.0版本开始项目改用的gradle编译了,个人对maven比较熟悉所以选择了5.3版本,另外没有科学上网的话,gradle依赖的jar是没法下载的

CAS单点登录(SSO)实战(一)

下载、解压

wget https://github.com/apereo/cas-overlay-template/archive/5.3.zip
unzip 5.3.zip 
复制代码

如果没有安装unzip命令 使用如下命令安装

yum install -y unzip zip
复制代码
CAS单点登录(SSO)实战(一)

进入解压后的文件,编译打包文件,等待完成

mvn package 
复制代码

打包完成后

CAS单点登录(SSO)实战(一)

启动cas项目

将编译好的war包放到tomcat下的webapps下启动tomcat

cd /root/software/cas-overlay-template-5.3/target
cp cas.war /root/software/apache-tomcat-8.0.53/webapps/
cd /root/software/apache-tomcat-8.0.53
 ./bin/startup.sh  
复制代码
CAS单点登录(SSO)实战(一)

使用默认的账号/密码 casuser/Mellon

登录成功

CAS单点登录(SSO)实战(一)

注销成功

CAS单点登录(SSO)实战(一)

另外还可以采用http方式访问 ip:8080/cas

CAS单点登录(SSO)实战(一)

原理:

当我们第一次访问系统时,客户端浏览器进程所占用的内存中不存在TGC Cookie,所以CAS Server认为用户未进行登录,因此将请求转发到登录页面,当登录后再次访问登录处理时,将会直接转发到已登录页面.

CAS Server根据Cookie(TGC是否能匹配TGT)来判断用户是否已登录过,默认情况下TGC Cookie位于浏览器进程所占用的内存中,因此当关闭浏览器时Cookie失效(TGC失效),此时再访问CAS登录页面将需要重新登录,当CAS服务器重启时,TGT将会失效(位于服务器内存),此时也需要重新进行登录.

当用户登录后,CAS Server会维护TGT与用户身份信息的关系,所有CAS Client可以从CAS Server中获取当前登录的用户的身份信息.

在已登录的状态下访问注销地址将会提示注销成功,其经过以下步骤:

1.清除保存在客户端浏览器的TGC Cookie(设空).

2.清除保存在服务器的TGT.

3.销毁所有CAS Client的Session对象.

当注销成功后,此时再访问登录页面时需重新登录.

总结

经过我们自己动手亲自搭建,已经完成了一个基本的cas认证服务系统,了解了其中的认证原理,但是如何跟我们的业务系统整合在一起呢?下一篇我们将动手实战这一系统。


以上所述就是小编给大家介绍的《CAS单点登录(SSO)实战(一)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Music Recommendation and Discovery

Music Recommendation and Discovery

Òscar Celma / Springer / 2010-9-7 / USD 49.95

With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具