搭建 CAS Server

一、CAS单点登录-简介

1.1 CAS 简介

CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。

1.2 SSO 简介

单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要 登录一次 就可以访问所有相互信任的应用系统。

1.3 CAS 的基本原理

从结构体系看, CAS 包括两部分: CAS Server 和 CAS Client 

  • CAS Server 负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 / 密码等凭证(Credentials) 。
  • CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。CAS Client 负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。(原则上,客户端应用不再接受任何的用户名密码等 Credentials )。

基于CAS的SSO访问流程步骤:

  1. 访问服务: CAS Client 客户端发送请求访问应用系统提供的服务资源。
  2. 定向认证: CAS Client 客户端会重定向用户请求到 CAS Server 服务器。
  3. 用户认证: 用户在浏览器端输入用户验证信息,CAS Server服务端完成用户身份认证。
  4. 发放票据: CAS Server服务器会产生一个随机的 Service Ticket 。
  5. 验证票据: CAS Server服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。
  6. 传输用户信息: CAS Server 服务器验证票据通过后,传输用户认证结果信息给客户端。

下面是 CAS 最基本的协议过程:

二、搭建CAS Server

2.1 下载cas-overlay

进入cas的git项目,选择5.1版本,下载zip包。

git地址:https://github.com/apereo/cas-overlay-template/tree/5.1

下载完成,解压出来目录结构如下:

2.2 打包运行

我们可以直接在里面打开命令行(cmd)运行build.cmd run来进行编译,因为我们这个编译出来的是war包,等pom的jar包下载完后以及编译成功后就会多出一个target文件夹,里面就是我们需要部署的内容。

其实,在运行build.cmd run命令的打包完成之后就可以启动我们的Cas server了,但是我们发现在运行命令期间,我们虽然看到了打包成功,但是启动服务却报错了。

打包完成:

报错日志:

经过分析得知,其实是找不到指定文件\etc\cas\thekeystore, 这是因为Cas server 配置证书路径是基于linux的,而我们是在windows环境下部署,目录结构不一致导致无法找到相应的文件,如果是linux环境的话就可以成功启动了。

这一节先使用外部tomcat来部署,我们只需要将cas.war(或者直接使用cas的文件夹)放到tomcat的webapp并启动tomcat,看到下图READY字样,说明启动成功了:

这时候我们访问127.0.0.1:8080/cas/login就能看到如下的页面:

2.3登录测试

默认用户名/密码为:casuser/Mellon,由于目前为静态配置用户,后面我们会接入数据库,采用默认用户登录即可 
登录后结果:

    登录页的模板是layout.html,其中有几个js是从谷歌CDN上下载的,而谷歌我们国内又访问不了,这就会导致登录页加载非常慢,建议先把这几个js本地化。

参考:https://www.cnblogs.com/gy19920604/p/6029210.html

CAS统一登录认证(1): 搭建 CAS Server相关推荐

  1. CAS统一登录认证(1):系统安装

    这一周在研究cas统一登录认证系统,参考网上大量文章,基本调试可用了,做个笔记. 安装环境:ubuntu16.04  +  mysql5.7.23 + java1.8.0_181 + maven3.5 ...

  2. CAS统一登录认证(6):SSO集成架构

    cas单点登录架构的形成,理解,实践是个过程,整个实现有一定的复杂,网上的基本架构图如下: 但在实施的时候,并不一定各项技术都需要用到,比如,我的实施整理了一下,是以下改进和简化的架构: 1. 通过L ...

  3. CAS统一登录认证(14): 定制自己的sso登录界面

    1. cas允许定制自己的登录界面,并绑定到某个客户登录,不同的cas客户可以绑定不同的登录界面: 2.  定制界面相关文件: /webapps/cas/WEB-INF/classes/templat ...

  4. CAS统一身份认证(四):集成MySQL用户验证

    本文主要介绍CAS统一身份认证服务器JDBC密码管理,并以FreeBSD环境下的MySQL数据库为例实现CAS 6.6版的数据库用户验证.主要包括以下几个方面: JDBC密码管理 MySQL数据库准备 ...

  5. CAS client 登录认证 报不允许使用CAS来认证您访问的目标应用。

    CAS client 登录认证 报不允许使用CAS来认证您访问的目标应用. .. 解决方案: 修改src/main/resources/services目录下的HTTPSandIMAPS-100000 ...

  6. 【统一登录认证】企业微信统一认证系统流程整理 流程图 时序图

    [统一登录认证]企业微信统一认证系统流程整理 流程图 / 时序图

  7. shiro实现APP、web统一登录认证和权限管理

    先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP(包括Android和IOS),三个系统共用一个后端,在后端使用shiro进行登录认证和权限控制.好的,那么问题来了w ...

  8. Linux统一登录认证之 --- 客户端配置

    写在前面 本文主要介绍如何通过使用OpenLDAP进行Linux的登录验证, 纯干货 本文环境 Centos 7.5 OpenLdap 2.4.44 部署 安装环境 openldap 安装见Linux ...

  9. springmvc--sso单点登录cas统一身份认证器

    开发环境 maven idea Windows 10 JDK 1.8+ 域名解析的配置 这里通过SwitchHosts来实现:以管理员身份打开 前两个:两个客户端应用的域名 后一个:是服务端的域名. ...

最新文章

  1. 一种解决启动进程传递参数过长的方法
  2. 电路交换和报文交换和分组交换的概念和区别
  3. 细说 Lambda 表达式
  4. boost::mpl::less_equal相关的测试程序
  5. Shell编程——shell常用命令
  6. Your shell has not been properly configured to use 'conda activate'
  7. 使用 Raspberry Pi 远程桌面
  8. patch请求_SpringMVC源码学习(三) 请求处理的流程
  9. OpenLayers图层
  10. 用网站(WebSite而不是WebProject)项目构建ASP.NET MVC网站
  11. 带滤镜拍照的app_这8款拍照修图APP,简直就是逼格神器
  12. NOIP2017小凯的疑惑
  13. My Seventy-first Page - 目标和 - By Nicolas
  14. 装出一个好的WIN2000最经典的步骤
  15. 微信小程序引用外部文件找不到文件报错问题
  16. 【JSON数据】中国各省份省会城市经纬度 JSON
  17. 魅族便签,是否能成为国内便签应用的No.1?
  18. (六)Activiti之实现学生请假流程
  19. Egret的eui的使用
  20. 3ds-Max2016 安装 无法正常打开win10

热门文章

  1. nhibernate mysql配置_NHibernate 连接多数据库怎么配置?
  2. vmware_虚拟机文件组成
  3. 隐形的桌面股票小程序 STK 2.0.3.1
  4. 应用程序无法正常启动解决方法
  5. ACM/ICPC 金牌进阶之路
  6. 网站 压力 测试软件,网站压力测试软件
  7. 计算机英语mask,英语单词mask怎么读,mask的音标是什么,mask是什么意思 - 音标网
  8. Flutter 项目实战 架构模式四
  9. 七牛利用JavaScript 上传图片到个人空间,并限制图片类型
  10. 基于ssm框架家教中介服务网站