单点登录

sso单点登录实现

你。 提交于 2019-12-07 05:01:43
一、sso单点登录原理 单点登录全称Single Sign On(简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 结合本项目案例,画了下SSO单点登录原理图,如下: 二、sso单点登录实现 1.sso-server单点登录服务端 1.sso-server服务端包含三个模块: sso-common通用模块 sso-entity实体类模块 sso-web核心web模块 其中sso-common和sso-entity作为sso-client的依赖 2.核心代码 /** * Created by wly on 2018/11/19. */ @Controller @RequestMapping("/sso") public class SsoController extends BaseController{ @Autowired private UserService userService; @Autowired private RedisTemplate redisTemplate; @Autowired private SpringSsoAutoConfig ssoAutoConfig; @RequestMapping("/login") public String login(@RequestParam

基于Oauth2,springsecurity单点登录SSO,前后端分离和SPA方式实现方式。

做~自己de王妃 提交于 2019-12-07 05:01:14
文章目录 基于Oauth2,springsecurity单点登录SSO,前后端分离和SPA方式实现方式。 发展历史 OAuth2涉及角色 协议流程 授权模式 代码解读 在我们系统的中设计 SSO实现流程分析 参考文献 具体代码 基于Oauth2,springsecurity单点登录SSO,前后端分离和SPA方式实现方式。 在接到需求要做SPA方式的单点登录的需求,发现好多的坑,之前我们接触的只是浏览器的单点登录,基于session的或者是基于app的基于token的,app类似SPA方式,但是有个不同点,就是在多个app或者多个SPA下怎么做单点登录。一开始以为很容易。但是在搞一段时间啊后发现自己越走越黑,越走越远,总结下来自己对协议理解还是不够透彻,对之前理解的前后端分离的SSO还是止步于session的交互方式。在涉及到多个域之间换取token还是有一些问题。 废话不说了。希望对现在在做了前后端分离的你有所帮助。 发展历史 从OAuth1到OAuth2 1.0协议每个token都有一个加密,2.0则不需要。这样来看1.0似乎更加安全,但是2.0要求使用https协议,安全性也更高一筹。 1.0只有一个用户授权流程。2.0可以从多种途径获取访问令牌 a)授权码 b)客户端私有证书 c)资源拥有者密码证书 d)刷新令牌 e)断言证书 2.0的用户授权过程有2步,1.0的授权分3步,

单点登录(一)-----理论-----单点登录SSO的介绍和CAS+选型

百般思念 提交于 2019-12-07 05:00:29
什么是单点登录(SSO) 单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 web系统如何实现单点登录 目前已经有了成熟的单点登录实现方案,比如CAS,我们只要在web系统中应用单点登录方案CAS即可。(主要涉及到注册登录验证等模块的改动) 什么是CAS CAS (Central Authentication Service) 是耶鲁 Yale 大学发起的一个java开源项目,旨在为 Web应用系统提供一种可靠的 单点登录 解决方案( Web SSO ), CAS 具有以下特点: 1、 开源的企业级单点登录解决方案; 2、 CAS Server 为需要独立部署的 Web 应用----一个独立的Web应用程序(cas.war)。 ; 3、 CAS Client 支持非常多的客户端 ( 指单点登录系统中的各个 Web 应用 ) ,包括 Java, .Net, PHP, Perl, 等。 CAS在2004年12月成为Jasig项目,所以也叫JA-SIG CAS。 官网1: https://apereo.github.io/cas

单点登录 SSO

家住魔仙堡 提交于 2019-12-07 04:59:57
单点登录 SSO 一、单点登录概述 1.什么是单点登录 2.SSO体系结构 重要构成: 2.1认证中心 2.2 用户与账号系统、用户数据获取接口 2.3 客户端模块 2.4 令牌(token) 3.SSO认证流程 重点:token存在?Token有效?用户授权?生成token 二、SSO相关核心技术 三、同域下单点登录系统分析与设计 四、同域下单点登录系统服务端实现 五、同域下单点登录系统客户端实现 六、跨域单点登录系统面临的问题与解决 来源: CSDN 作者: 心灵技艺 链接: https://blog.csdn.net/qq_43330631/article/details/101283696

单点登录SSO的实现原理

痞子三分冷 提交于 2019-12-07 04:59:39
单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下几个: 存储信任 验证信任 只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。最简单实现SSO的方法就是用Cookie,实现流程如下所示: 不然发现以上的方案是把信任存储在客户端的Cookie里,这种方法虽然实现方便但立马会让人质疑两个问题: Cookie不安全 不能跨域免登 对于第一个问题一般都是通过加密Cookie来处理,第二个问题是硬伤,其实这种方案的思路的就是要把这个信任关系存储在客户端,要实现这个也不一定只能用Cookie,用flash也能解决,flash的Shared Object API就提供了存储能力。 一般说来,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示: 以上方案就是要把信任关系存储在单独的SSO系统(暂且这么称呼它)里

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

瘦欲@ 提交于 2019-12-07 04:59:05
基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo 作者:家辉,日期:2017-08-08 CSDN博客: http://blog.csdn.net/gobitan 摘要: 经过对大量第三方单点登录系统的调研,发现Apereo的CAS是做得最好的,因此,本系列文章将分析CAS。由于CAS涉及的东西较多,直接从CAS源码编译较为复杂。CAS提供了现成的部署包模板,本文以此为例快速搭建初步的CAS demo,环境适用于Mac OS或者Linux环境。 第一步:获取CAS部署包模板CAS Overlay Template git clone https://github.com/apereo/cas-overlay-template 备注:由于官方代码在持续更新,这里我将这个版本的代码在CSDN存了一份。链接为: http://download.csdn.net/download/gobitan/9947498 在获取下来的cas-overlay-template包中,查看README.md可以找到部署方法。 CAS的版本为5.1.x,要求JDK1.8+。 注意:由于maven官方库 https://mvnrepository.com/artifact/org.apereo.cas/cas-server-support-jdbc-drivers 中没有5.1.3版本

单点登录SSO:概述与示例

主宰稳场 提交于 2019-12-07 04:58:51
原文是一个系列: http://www.cnblogs.com/baibaomen/p/sso.html ,曾上博客园推荐榜首。建议看原文,此处排版全乱了。转载需注明原文链接。 单点登录SSO概述 本系列将由浅入深的,带大家掌握最新单点登录SSO方案选型,以及架构开发实战。系列将结合示例、源码以及演示视频,让大家能够直观、深入学习。 文末附5个满足不同单点登录场景的gif动画演示。本系列后继文章会深入它们的实现方式以及适用场景,大家也可以先观看揣摩其实现。单点登录即Single Sign On(SSO)。它是大型政府OA、企事业单位OA的标配解决方案。它概言之就是在多个Web、桌面或移动应用系统中,用户只需要登录一次,就可以访问所有的应用系统。 从业十多年,为政府、电信、跨国公司顾问和实施的单点登录解决方案无数,深谙其痛点与关键。 和很多人直观猜测相反,单点登录方案的定制性很强。很多企业的单点登录,实施是有问题的。尤其是被一些软件产品的销售人员牵着走的企业,它的单点登录方案实施,从产品方案选型起就存在根本性问题。这些方案常常要求大量现有业务系统的改造(基于统一身份认证服务,采用OpenId,OAuth,SAML等技术创建和传递认证凭据),或者只是体验较差的类似浏览器自动填充账号密码的功能(如Oracle的ESSO)。它们要么改动面大、周期长,要么服务端和客户端局限性多

单点登录SSO

江枫思渺然 提交于 2019-12-07 04:56:37
单点登录SSO 一.单点登录SSO(只提供思路,不提供实现) 什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分(类似在新浪微博与新浪博客那样子) 二. 思路 (以java web来讲解) 1.相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。 2.在web中怎么实现,也就是说在浏览器中怎么知道用户使用的多个系统是否是你的多个系统且是否登录了呢 ———————————————-cookie 3.使用cookie 来验证用户是否登录有3种情况, (1.)所有子系统与认证中心系统同域 (类似 www.a.com/sso1 www.a.com/case1 www.a.com/case2 ) (2.)所有子系统与认证中心系统同父域 (类似 case.a.com/sso1 case1.a.com/case1 case2.a.com/case2 )

CAS环境下的AJAX跨域

泄露秘密 提交于 2019-12-06 05:59:48
情况说明: 在单点登录的环境下,所有的文件上传都是通过webuploader上传到文件管理服务器。而webuploader的上传可以参考ajax的请求,相当于是跨域操作。 首先,跨域请求访问的问题,可以通过在文件服务器增加拦截器,修改请求头来解决。 package com.util; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class SimpleCORSFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

单点登录、无状态登录、有状态登录

谁说我不能喝 提交于 2019-12-06 05:40:58
单点登录:多个application只要有一个登录模块登录,其他的application都不用登录了。 无状态登陆:非对称加密,保存把公钥返回给token买次访问不容的服务都要验证。服务器不保存用户状态信息。 有状态登录:服务器保存用户的转台信息。会开辟session返回序列号,每次验证序列号。 来源: https://www.cnblogs.com/macht/p/11964378.html