天天看点

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

                                 搭建 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统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

二、搭建CAS Server

2.1 下载cas-overlay

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

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

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

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

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

2.2 打包运行

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

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

打包完成:

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

报错日志:

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

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

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

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

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

CAS统一登录认证(1): 搭建 CAS Server                                 搭建 CAS Server

2.3登录测试

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

登录后结果: 

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

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

继续阅读