学习
实践
活动
工具
TVP
写文章

sso单点登录解决方案 java_实现单点登录

目录 什么是单点登录 单点登录的凭证 父域 Cookie 方式 用户认证中心方式 localstorage方式 什么是单点登录 单点登录: SSO(Single Sign On) 用户只需登录一次 单点登录原理图 单点登录的凭证 由单点登录的原理,可以看出来,最重要的就是这个通用的登录凭证 ticket 如何获得 而实现 ticket 多应用共享主要有三种方式:父域加密 Cookie、用户认证中心 本身并不安全 这种加密算法只有服务端才可以知道,服务端的解密算法不能暴漏 放在父域中,主要是因为 Cookie 不能跨域实现免登,放到父域中可以解决跨域的问题 父域也就是 domain 要设置成主域名 用户中心不处理业务逻辑,只是处理用户信息的管理以及授权给第三方应用 第三方应用需要登录的时候,则把用户的登录请求转发给用户中心进行处理,用户处理完毕返回凭证,第三方应用验证凭证,通过后就登录用户。 ,后端仅仅需要将用户登录成功后的 Ticket 返回给前端处理即可 这样其实也实现了,多应用下单点登录的问题,并且支持跨域 localstorage方式 发布者:全栈程序员栈长,转载请注明出处:https

8320

单点登录(SSO)及实现方案

单点登录 单点登录:Single Sign On,简称SSO。用户只要登录一次,就可以访问所有相关信任应用的资源。企业里面用的会比较多,有很多内网平台,但是只要在一个系统登录就可以。 实现方案 单一域名:可以把 cookie 种在根域名下实现单点登录 多域名:常用 CAS来解决,新增一个认证中心的服务。 CAS(Central Authentication Service)是实现SSO单点登录的框架 CAS实现单点登录的流程: 用户访问系统A,判断未登录,则直接跳到认证中心页面 在认证中心页面输入账号 具体的可以下面的文章,讲解的很详细 CAS实现单点登录SSO执行原理探究(终于明白了) 一张图看明白CAS单点登录原理 关键点 下面是举例来详细说明CAS实现单点登录的流程: 一、第一次访问系统A 用户访问系统 A (www.app1.com),跳转认证中心 client(www.sso.com),然后输入用户名,密码登录,然后认证中心 serverSSO 把 cookieSSO 种在认证中心的域名下 (

9340
  • 广告
    关闭

    11.11云上盛惠

    万元礼包限时领取,百款云产品特惠助力上云,云服务器2核2G低至4.2元/月

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    单点登录方案[学习]

    我们公司用的就是CAS单点登录系统,我们抛开CAS这种成熟的单点登录系统,从头开始思考和设计一下单点登录如何实现。 用户关闭浏览器后,再次打开,不能继续访问其他业务系统 实现方案 根据上述需求,我们可以考虑出很多套实现方案,这些方案各有优缺点,根据各个方案的比较,选出实现最简单、功能最完善、性能最优化的方案,作为最终的实现方案 只要浏览器支持基本的重定向功能,就可以按照本方案实现 缺点 1. 要实现上述需求,需要修改业务系统的代码,对于.net和java编写的业务系统,需要两套不同的代码 安全性 1. 总结 上述方案二,是借鉴CAS单点登录系统的实现进行描述的。 对于第一章节提到的那种对于现有业务系统不进行任何修改的方案,个人认为没有太好的实现方法,可能可以通过简单修改业务系统的asp,php或jsp代码实现,但是一点不修改,目前没有太好的方案可以做到。

    751150

    java jwt 单点登录_JWT实现单点登录

    org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; /** * * 会员表 服务实现类 ServiceImpl implements UcenterMemberService { //注入 @Autowired private RedisTemplate redisTemplate; //登录的方法 if (StringUtils.isEmpty(mobile) || StringUtils.isEmpty(password)){ throw new GuliException(20001,”登录失败 密码错误”); } //判断用户是否禁用 if (mobilMenber.getIsDisabled()){ throw new GuliException(20001,”用户名已被禁用”); } //登录成功 PostMapping(“login”)publicR loginUser(@RequestBody UcenterMember member) {//member对象封装手机号和密码//调用service方法实现登录

    8720

    单点登录性能测试方案

    项目登录系统升级,改为单点登录:英文全称Single Sign On。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 之前有的统一登录方式被废弃,由于单点登录比较之前的登录系统复杂很多。之前的方案请求一个接口即可获得用户校验令牌。 先分享一下单点登录的技术方案的时序图: ? 单点登录时序图 然后发一下我梳理的前端调用接口的时序图: ? 单点登录时序图 性能测试分成了两个场景: 性能压测场景分析: 跳过不必要的302响应状态请求,只测试业务逻辑相关接口,不处理页面相关接口(资源文件等),登录完成请求额外接口完成登录验证。 因为之前性能测试方案都是使用jmeter作为解决方案,这次架构变更的测试用例难以实现,故才用了脚本。

    71910

    单点登录sso的实现原理(单点登录原理)

    什么是单点登录 一个账户在多个系统上实现单一用户的登录 为什么用单点登录 单点登录可以做到在不记录用户密码的情况下,实现不同系统之间的资源共享,自动登录不安全,单点登录,一处登录,处处都可用,不用做多余的登录操作 引用一个很经典的案例 比如现在有OA系统、门户系统、人力资源管理系统、档案管理系统、生产管理系统、xx系统等,这么多个系统在一个公司里面,如果一个用户需要使用这么多个系统,那每天都要登录N多系统,太浪费时间了 (其他还有统一用户、统一权限的问题,这里先不谈这个)所以单点登录就是,如果用户在门户系统登录了,那么他打开OA系统、生产管理系统的时候就不用再登录了,因为他已经在门户系统登录过一次 单点登录的原理 图片好像有点小,以下是过程 1、用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 2、sso认证中心发现用户未登录,将用户引导至登录页面 3、用户输入用户名密码提交登录申请

    14120

    单点登录实现思路及自定义实现方案

    单点登陆概念: single sign on 又称SSO,设计目标就是用户只需要登录一次即可在无需再次登录的情况下访问相关联的其它系统, 同时也是现在SOA架构中将功能模块微服务化中,统一登陆模块关键点 常见实现思路:       用户登录成功后,将登录成功的用户信息存放到session或者缓存中,并返回与登录结果一对一关联的sessionId或者Token或自定义的信息到客户端, 客户端将返回的token 自定义实现思路: 1. 定义登录系统白名单: 将需要使用单点登录的服务域名保存到数据库,在系统启动时增加到缓存,并在对白名单修改时刷新缓存 2.定义登录返回信息: 返回系统中唯一的token,还有像用户id,用户名,登录ip( 安全考虑,后面会说明用处)等 3.登录: 在登录界面输入用户名、密码,验证码等后,进行登录验证, 4.生成token并缓存用户信息及关系:用户登录成功后生成第2步需要的对象,生成token并缓存用户信息及关系

    82530

    使用JWT实现单点登录(完全跨域方案

    授权:这是最常见的使用场景,解决单点登录问题。因为JWT使用起来轻便,开销小,服务端不用记录用户状态信息(无状态),所以使用比较广泛; 信息交换:JWT是在各个服务之间安全传输信息的好方法。 拦截器中校验JWT有效性,并在response中重新设置JWT的新值; 最后在JWT服务端,依赖JWT工具包,在登录方法中,需要在登录校验成功后调用生成JWT方法,生成一个JWT令牌并且设置到response ]-客户端浏览器信息与JWT中存的浏览器信息不一致,重新登录。 ,操作方便,能够快速实现。 由于服务端不存储用户状态信息,因此大用户量,对后台服务也不会造成压力; 缺点:跨域实现相对比较麻烦,安全性也有待探讨。

    13210

    单点登录系统实现

    单点登录系统实现基于SpringBoot 今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。 通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClient,整合SolrJ ,HttpClient简易教程。还在等什么? 源码:见文章底部 SpringBoot基础入门:http://www.cnblogs.com/itdragon/p/8047132.html 单点登录系统简介 ? 这时候需要通过单点登录系统(Single Sign On)将用户信息存在Redis数据库中实现Session共享的效果。从而实现一次登录就可以访问所有相互信任的应用系统。 单点登录系统实现 Maven项目核心配置文件 pom.xml 需要在原来的基础上添加 httpclient和jedis jar包 <dependency> <!

    2.4K130

    单点登录实现

    从第三方系统单点登录到目标系统,第三方系统会发送token进行验证,通过解析token,获取相应的用户信息的json串。将其set到自己系统的session中。 public class sessionFilter extends OncePerRequestFilter{ // 登录页面 private String LoginPage = Configure.getInstance * = true; } */ if (doFilter) { // 执行过滤 // 从session中获取登录者实体 goto=" + url); } } // 如果session中不存在登录者实体,则弹出框提示重新登录 ; return; } } else { // 如果session中存在登录者实体

    72140

    单点登录简单实现

    简述 单点登录系统是用来实现用户能够在多个系统中同时处于登录状态或者未登录状态。 下面展示同一级域名和不同一级域名这两种情况下的单点登录实现方案,这两种情况下实现的方法差不多,前面一种情况相对后面来说略微简单一点,所以我们将先展示如何在同一级域名下实现单点登录,最后再展示不同一级域名下的情况 单点登录同一级域.jpg 登录功能 要实现单点登录不免需要先实现一个普通的登录系统,如下登录接口的实现的核心代码: // controller 层 ... async login() { const 不同一级域名实现单点登录和同一级域名实现的方式大体相同,不同的点在于 setCookie 和 统一登出上面的操作有所不同,后面将只会展示不同点的实现。 如下是不同一级域名下实现单点登录的思维导图: ?

    72350

    单点登录Windows实现

    -- ======================== 单点登录开始 ======================== --> <! -- 用于单点退出,该过滤器用于实现单点登出功能,可选配置--> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener -- 该过滤器用于实现单点登出功能,可选配置。 -- ======================== 单点登录结束 ======================== --> <! -- 自动根据单点登录的结果设置本系统的用户信息 --> <filter> <filter-name>authValidateFilter</filter-name>

    22620

    单点登录系统实现

    单点登录系统实现基于SpringBoot 今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。 通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClient,整合SolrJ ,HttpClient简易教程。还在等什么? 这时候需要通过单点登录系统(Single Sign On)将用户信息存在Redis数据库中实现Session共享的效果。从而实现一次登录就可以访问所有相互信任的应用系统。 单点登录系统实现 Maven项目核心配置文件 pom.xml 需要在原来的基础上添加 httpclient和jedis jar包 Spring4 Java配置方式 这里,我们需要整合httpclient 总结 1 单点登录系统通过将用户信息放在Redis数据库中实现共享Session效果。

    1.1K70

    单点登录-基于Redis+MySQL实现单点登录(SSO)

    为什么要用单独登录? 主要便于公司内部多系统统一认证授权管理,一次登录可访问多个跨域系统,也同时更加方便统一管理用户登录(员工离职需要拿掉登录权限、统计所有用户对系统的登录请求)。 2. 单点登录原理图 登录: ? 注销: ? 3. xxl-sso开源项目实现单点登录原理图(个人看源码总结) ? 4. 总结 xxl-sso 开源项目,有源码可Fork后根据自己的需求扩展开发、轻量、简单易用,现支持token或cookie的方式实现;这项目用于理解单点登录原理挺好,开源地址:https://gitee.com

    1.7K40

    单点登录系列之tomcat会话共享实现单点登录

    在开发中的开源项目JeePlatform:https://github.com/u014427391/jeeplatform 欢迎start(s收藏),打算集成单点登录到自己的开源项目里,所以先搭建环境 【集群简介】 使用nginx作为负载均衡,使用redis存储tomcat session,来实现集群中tomcat session的共享,使用redis作为cas ticket的仓库,来实现集群中cas /nginx -s reload 这时就可以实现nginx反向代理了 访问Tomcat1:http://ip1:8080/www/index.jsp 访问Tomcat2:http://ip2:8081 参考教程: 单点登录集群:https://www.cnblogs.com/zhengbin/p/5488415.html Redis安装教程:http://blog.csdn.net/ludonqin Tomcat+Nginx+Redis实现负载均衡、会话共享: https://www.cnblogs.com/zhrxidian/p/5432886.html

    14540

    单点登录原理与简单实现(单点登录原理与简单实现)

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 无论web系统内部多么复杂,对用户而言,都是一个统一的整体,也就是说,用户访问web系统的整个应用群与访问单个系统一样,登录/注销只要一次就够了   虽然单系统的登录解决方案很完美,但对于多系统应用群已经不再适用了 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器与服务器之间维护会话状态。 因此,我们需要一种全新的登录方式来实现多系统应用群的登录,这就是单点登录 三、单点登录   什么是单点登录单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录单点注销两部分 1、登录   相比于单系统登录,sso

    20040

    面试官:说说单点登录实现方案吧?

    注:单点登录原理是一个重要知识点,也常被问及,很多童鞋照葫芦画瓢搭建过单点登录,但是被问到原理时可能说不出来,下面简单介绍,抛砖引玉,希望对大家有所帮助。 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求。 一、共享Session 共享Session可谓是实现单点登录最直接、最简单的方式。 将用户认证信息保存于Session中,即以Session内存储的值为用户凭证,这在单个站点内使用是很正常也很容易实现的,而在用户验证、用户信息管理与业务应用分离的场景下即会遇到单点登录的问题,在应用体系简单 四、B/S多域名环境下的单点登录处理 在多个顶级域名的情况下,我们将无法让各个子系统的OpenId共享。处理B/S环境下的跨域问题,我们首先就应该想到JSONP的方案

    8030

    SpringBoot+Vue 前后端分离实现单点登录方案

    二、搭建客户端系统 引入CAS 客户端后端搭建 总结 前言 什么是单点登录单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录单点注销两部分,如图(不标准,只是方便理解)。 CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的 Web 应用。 : 点击客户端1超链接 登录成功 点击客户端2超链接,直接进入,无需登录 退出 总结 网上有很多CAS单点登录的demo,但是对于前后端分离讲的比较详细的很少,前后端分离,必定会出现跨域,导致 CAS登录无法重定向等等原因,结合和网上一些想法和部门代码后,大致做了一个比较完善,但很基础的单点登录系统,当然单点登录不光有CAS,还有JWT(1.所有服务靠约定来生成token,2.要么集中生成集中判断

    12320

    SpringBoot实现Jwt单点登录

    SpringBoot实现Jwt单点登录 安全管理是应用系统不可缺少的功能. 本文主要分享借助JWT的token技术实现分布式系统的安全管理. JWT提供下述功能: ▷ 某种程度的用户身份验证 ▷ 使用密钥签名 ▷ 客户端每个请求都带有JWT ▷ 服务器使用密钥分析和检查claims 代码实现 项目地址 https://github.com/cayzlh * successfulAuthentication :用户成功登录后,这个方法会被调用,我们在这个方法里生成token。 Security @Override protected void configure(HttpSecurity httpSecurity) throws Exception { // jwt登录拦截器 "; } } 使用Posman访问 可以看到, 直接抛出Unauthorized错误 登录获取token 访问 http://localhost:8080/login, 这是security自带的登录接口

    29430

    单点登录实现原理

    作者:一叶知秋 dwz.cn/d90vKSJE 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求 一、共享Session 共享Session可谓是实现单点登录最直接、最简单的方式。 将用户认证信息保存于Session中,即以Session内存储的值为用户凭证,这在单个站点内使用是很正常也很容易实现的,而在用户验证、用户信息管理与业务应用分离的场景下即会遇到单点登录的问题,在应用体系简单 由上图可以看到,这套单点登录依赖于OpenId的传递,其验证的基础在于OpenId的存储以及发送。 四、B/S多域名环境下的单点登录处理 在多个顶级域名的情况下,我们将无法让各个子系统的OpenId共享。处理B/S环境下的跨域问题,我们首先就应该想到JSONP的方案。 ?

    30720

    扫码关注腾讯云开发者

    领取腾讯云代金券