当前位置:网站首页 > 技术博客 > 正文

cas单点登录跨域怎样解决



大家好,又见面了,我是你们的朋友全栈君。

文章目录

1.1 单点登录定义

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以。

1.2 单点登录角色

单点登录一般包括下面三种角色:

①用户(多个);

②认证中心(一个);

③Web应用(多个)。

PS:这里所说的web应用可以理解为SSO Client,认证中心可以说是SSO Server。

1.3 单点登录分类

因为http协议是无状态的协议,所以要保持登录状态,必须要存储登录信息,按照存储方式,单点登录实现方式主要可以分为两种。

2.1 CAS简单定义

CAS(Center Authentication Service)是耶鲁大学研究的一款开源的单点登录项目,主要为web项目提供单点登录实现,属于Web SSO

2.2 CAS体系结构

CAS体系结构分为CAS Server和CAS Client。

CAS Server就是Cas开源的,需要去github下载,然后进行修改;Cas Client 可以是App或者web端的或者PC端,CAS支持多种开发语言,java、php、C#等等

PS:图来自官网,这里简单介绍一下,从图可以看出,CAS支持多种方式的认证,一种是LDAP的、比较常见的数据库Database的JDBC,还有Active Directory等等;支持的协议有Custom Protocol 、 CAS 、 OAuth 、 OpenID 、 RESTful API 、 SAML1.1 、 SAML2.0 等

2.3 CAS原理

下面给出一张来自CAS官方的图片

CAS登录等系统分为CAS Server和CAS Client,下面,我根据我的理解稍微解释一下:

1、用户访问CAS Client请求资源

2、客户端程序做了重定向,重定向到CAS Server

3、CAS Server会对请求做认证,验证是否有TGC(Ticket Granted Cookie,有TGC说明已经登录过,不需要再登录,没有就返回登录页面

4、认证通过后会生成一个Service Ticket返回Cas Client,客户端进行Ticket缓存,一般放在Cookie里,我们称之为TGC(Ticket Granted Cookie)

5、然后Cas Client就带着Ticket再次访问Cas Server,CAS Server进行Ticket验证

6、CAS Server对Ticket进行验证,通过就返回用户信息,用户拿到信息后就可以登录

看到这个过程,我们大概就能理解CAS是怎么实现的,看起来过程挺多的,不过这些过程都是CAS在后台做的。CAS Service和CAS Client通讯基于HttpUrlConnection

注意要点:

现在博客简单介绍一下,CAS Server简单部署实现,CAS是一款开源框架,目前应用比较广泛。下面简单介绍一下: cas开源到github上,不过只有几个版本有cas release服务端,其它大部分版本都只有source源码而已,所以其它版本都需要自己编译,不想自己编译的可以下载V4.0.0版本的。 https://github.com/apereo/cas/releases/tag/v4.0.0

下载cas server之后,我们就可以简单部署一下,中间件可以用Tomcat cas的安全机制是依靠SSL实现的,所以一般的http非安全链接不支持的,虽然是这么说,不过学习练习的话,也可以去掉https要求,下面介绍说一下:

可以先将cas-server-4.0.0-release.zip解压到Tomcat的webapp目录下面,然后需要修改一个配置文件 (1)、先修改一下cas-server-4.0.0-release的WEB-INF下面的deployerConfigContext.xml 修改前:

修改后,PS:加上p:requireSecure=“false”

(2)、修改WEB-INF下面的spring-configuration文件夹下面的ticketGrantingTicketCookieGenerator.xml 修改前:

修改后,PS:改为p:cookieSecure=“false”

(3)、修改WEB-INF下面的spring-configuration文件夹下面的warnCookieGenerator.xml 修改前:

修改后,PS:改为p:cookieSecure=“false”

(4)、修改CAS默认登录jsp页面 可以注释WEB-INFviewjspdefault䗊sLoginView.jsp页面如下代码

去掉Https支持要求后,就可以通过http的链接登录cas server了,用户名是casuser,密码是Mellon PS:可以在deployerConfigContext.xml里看到配置,正规项目是实现jdbc支持

单点登录

单点登出

参考教程:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133724.html原文链接:https://javaforall.cn

  • 上一篇: testdisk怎么用
  • 下一篇: 怎样看mysql版本
  • 版权声明


    相关文章:

  • testdisk怎么用2025-03-01 14:01:04
  • 结构体嵌套结构体数组2025-03-01 14:01:04
  • opengl缓冲区对象详解2025-03-01 14:01:04
  • js获取class选择器2025-03-01 14:01:04
  • php parse error2025-03-01 14:01:04
  • 怎样看mysql版本2025-03-01 14:01:04
  • usb写入保护工具2025-03-01 14:01:04
  • js原型和原型链作用2025-03-01 14:01:04
  • js基本数据类型与引用数据类型2025-03-01 14:01:04
  • 软件安全性测试应该从哪些方面考虑2025-03-01 14:01:04