SSO之CAS单点登录实例演示

转载 2016年06月02日 09:45:28

原文链接:http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/

本文目录:

  • 一、概述
  • 二、演示环境
  • 三、JDK安装配置
  • 四、安全证书配置
  • 五、部署CAS-Server相关的Tomcat
  • 六、部署CAS-Client相关的Tomcat
  • 七、 测试验证SSO

一、概述

此文的目的就是为了帮助初步接触SSO和CAS 的人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录。

CAS的官网:http://www.jasig.org/cas

二、演示环境

本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下:

  • windows7 64位,主机名称:michael-pc
  • JDK 1.6.0_18
  • Tomcat 6.0.29
  • CAS-server-3.4.11、CAS-client-3.2.1
根据演示需求,用修改hosts 文件的方法添加域名最简单方便(这个非常重要),在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条

  • demo.micmiu.com  =>> 对应部署cas server的tomcat,这个虚拟域名还用于证书生成
  • app1.micmiu.com  =>>  对应部署app1 的tomcat
  • app2.micmiu.com   =>> 对应部署app2 的tomcat

三、JDK安装配置

这个详细过程就不在描述,如果是免安装版的,确保环境变量配置正确。

本机环境变量:JAVA_HOME=D:\jdk,如果看到以下信息则表示安装成功:

四、安全证书配置

有关keytool工具的详细运用见:http://www.micmiu.com/lang/java/keytool-start-guide/

4.1. 生成证书:

ps:

  • 截图中需要输入的姓名和上面hosts文件中配置的一致;
  • keypass 和 storepass 两个密码要一致,否则下面tomcat 配置https 访问失败;

4.2.导出证书:

4.3.客户端导入证书:

ps:该命令中输入的密码和上面输入的不是同一个密码;如果是多台机器演示,需要在每一台客户端导入该证书

五、部署CAS-Server相关的Tomcat

5.1. 配置HTTPS

解压apache-tomcat-6.0.29.tar.gz并重命名后的路径为 G:\sso\tomcat-cas,在文件 conf/server.xml文件找到:

修改成如下:

参数说明:

  • keystoreFile 就是4.1中创建证书的路径
  • keystorePass 就是4.1中创建证书的密码

5.2. 验证HTTPS配置
其他按照默认配置不作修改,双击%TOMCAT_HOME%\bin\startup.bat 启动tomcat-cas 验证https访问配置:


如果看到上述界面表示https 访问配置成功。

5.3 部署CAS-Server
CAS-Server 下载地址:http://www.jasig.org/cas/download
本文以cas-server-3.4.11-release.zip 为例,解压提取cas-server-3.4.11/modules/cas-server-webapp-3.4.11.war文件,把改文件copy到 G:\sso\tomcat-cas\webapps\ 目下,并重命名为:cas.war.
启动tomcat-cas,在浏览器地址栏输入:https://demo.micmiu.com:8443/cas/login ,回车

CAS-server的默认验证规则:只要用户名和密码相同就认证通过(仅仅用于测试,生成环境需要根据实际情况修改),输入admin/admin 点击登录,就可以看到登录成功的页面:

看到上述页面表示CAS-Server已经部署成功。

六、部署CAS-Client相关的Tomcat

6.1Cas-Client 下载

CAS-Client 下载地址:http://downloads.jasig.org/cas-clients/

以cas-client-3.2.1-release.zip 为例,解压提取cas-client-3.2.1/modules/cas-client-core-3.2.1.jar

借以tomcat默认自带的 webapps\examples 作为演示的简单web项目

6.2 安装配置 tomcat-app1

解压apache-tomcat-6.0.29.tar.gz并重命名后的路径为 G:\sso\tomcat-app1,修改tomcat的启动端口,在文件conf/server.xml文件找到如下内容:

修改成如下:

启动tomcat-app1,浏览器输入 http://app1.micmiu.com:18080/examples/servlets/ 回车:

看到上述界面表示tomcat-app1的基本安装配置已经成功。

接下来复制 client的lib包cas-client-core-3.2.1.jar到 tomcat-app1\webapps\examples\WEB-INF\lib\目录下, 在tomcat-app1\webapps\examples\WEB-INF\web.xml 文件中增加如下内容:

有关cas-client的web.xml修改的详细说明见官网介绍:

https://wiki.jasig.org/display/CASC/Configuring+the+Jasig+CAS+Client+for+Java+in+the+web.xml

6.3 安装配置 tomcat-app2

解压apache-tomcat-6.0.29.tar.gz并重命名后的路径为 G:\sso\tomcat-app2,修改tomcat的启动端口,在文件 conf/server.xml文件找到如下内容:

修改成如下:

启动tomcat-app2,浏览器输入 http://app2.micmiu.com:28080/examples/servlets/ 回车,按照上述6.2中的方法验证是否成功。

同6.2中的复制 client的lib包cas-client-core-3.2.1.jar到 tomcat-app2\webapps\examples\WEB-INF\lib\目录下, 在tomcat-app2\webapps\examples\WEB-INF\web.xml 文件中增加如下内容:

七、 测试验证SSO

启动之前配置好的三个tomcat分别为:tomcat-cas、tomcat-app1、tomcat-app2.

7.1  基本的测试

预期流程: 打开app1 url —-> 跳转cas server 验证 —-> 显示app1的应用 —-> 打开app2 url —-> 显示app2应用 —-> 注销cas server —-> 打开app1/app2 url —-> 重新跳转到cas server 验证.

打开浏览器地址栏中输入:http://app1.micmiu.com:18080/examples/servlets/servlet/HelloWorldExample,回车:

跳转到验证页面:

验证通过后显示如下:

此时访问app2就不再需要验证:

地址栏中输入:https://demo.micmiu.com:8443/cas/logout,回车显示:

上述表示 认证注销成功,此时如果再访问 : http://app1.micmiu.com:18080/examples/servlets/servlet/HelloWorldExample 或 http://app2.micmiu.com:28080/examples/servlets/servlet/HelloWorldExample 需要重新进行认证。

7.2  获取登录用户的信息

修改类:webapps\examples\WEB-INF\classes\HelloWorldExample.java 后重新编译并替换 webapps\examples\WEB-INF\classes\HelloWorldExample.class文件。

 HelloWorldExample.java 修改后的代码如下:

再进行上述测试显示结果如下:

http://app1.micmiu.com:18080/examples/servlets/servlet/HelloWorldExample :

http://app2.micmiu.com:28080/examples/servlets/servlet/HelloWorldExample

从上述页面可以看到通过认证的用户名。

到此已经全部完成了CAS单点登录实例演示。

SSO 基于CAS实现单点登录 实例解析(二)

本文目录: 一、概述 二、演示环境               五、部署CAS-Server相关的Tomcat 六、部署CAS-Client相关的Tomcat 七、 测试验证SSO...
  • lishehe
  • lishehe
  • 2014年10月28日 21:49
  • 14367

CAS 实现单点登录(SSO)简单实例demo(二)

本文目的很明确,并不是要逐步讲清楚每一步的操作,具体的步骤网上有很多,那么整理本文的目的只是要梳理一下自己的知识点,帮助自己加深理解。   小知识点积累:   域名地址的修改:   根据演示需求,用修...
  • hejingyuan6
  • hejingyuan6
  • 2015年04月07日 16:55
  • 13093

单点登录之CAS SSO从入门到精通(第二天)

啊。。。。。。沙滩,阳光,笔记本往膝上一搁,开始写博客。第一次没在国内过年,避开了吃吃吃,感觉真好,人也觉得轻松多了。上次说到了CAS SSO最基本的使用方法,并且我们结合了一个数据库表来实现了我们自...
  • lifetragedy
  • lifetragedy
  • 2015年02月22日 20:20
  • 12153

SSO之CAS单点登录部署

项目之前用到单点登录,之前都是网上找了一些资料然后就用上了,中间也遇到了一些问题,这里总结一下,毕竟以后还是可能再用到这东西的。 这里摘抄下有关基本概念帮助后面理解CAS的实现1.基本概念:cook...
  • u012554102
  • u012554102
  • 2015年12月12日 16:27
  • 2300

基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo

基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo 作者:家辉,日期:2017-08-08 CSDN博客: http://blog.csdn.net/gobitan 摘要:经过对大量第三方...
  • gobitan
  • gobitan
  • 2017年08月28日 22:29
  • 790

单点登录之CAS SSO从入门到精通(第三天)

各位新年好,上海的新年好冷,冷到我手发抖。上次我们说到了CAS SSO的一些基本用法如:连数据库怎么用,连LDAP怎么用,这次我们要来讲一个网上几乎没有人去过多涉及到的一个问题即:在多租户的环境下我们...
  • lifetragedy
  • lifetragedy
  • 2015年03月09日 17:15
  • 15161

单点登录之CAS SSO从入门到精通(第一天)

啊。。。。。。it's quite a long time。好久没更新博客了,有一年之久了,一直在忙于公司的一些项目。2014年到2015年工作太忙,对于一些经常跟我博客的读者们深深说一声抱歉。同时,...
  • lifetragedy
  • lifetragedy
  • 2015年02月14日 20:05
  • 35235

CAS实现单点登录原理与实例解析

上几篇博客介绍了使用cookie实现同域和跨域系统的单点登录,本文将介绍通过CAS实现单点登录实例。 CAS是由耶鲁大学研发的单点登录服务器,主要分为服务端和客户端两个系统模块;本文将通过官网提供的实...
  • Daybreak1209
  • Daybreak1209
  • 2016年04月19日 11:24
  • 2151

CAS实现单点登录SSO执行原理探究(终于明白了)

一、不落俗套的开始1、背景介绍单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS框架:CAS(Central A...
  • javaloveiphone
  • javaloveiphone
  • 2016年09月05日 13:56
  • 63310

第三部分:shiro集成spring使用cas单点登录配置

第三部分 shiro集成spring使用cas单点登录配置(一)shiro单点登录  配置的主要目的在于将登录页面改为${cas.server}?service=${cas.client}/login...
  • zh350229319
  • zh350229319
  • 2016年01月13日 16:44
  • 12496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSO之CAS单点登录实例演示
举报原因:
原因补充:

(最多只允许输入30个字)