sso

单点登陆SSO(一)原理、多客户端登陆

混江龙づ霸主 提交于 2020-01-11 06:49:22
单点登陆 单点登陆项目GitHub 单点登陆的原理 客户端一拦截器 感谢coding老师的课程,让我能很好的学习,掌握单点登陆的相关知识,所有的代码都来自或者修改coding老师的视频,简单总结一下 单点登陆项目GitHub github: https://github.com/Handoking/Single-Sign-on 单点登陆的原理 单点登陆最主要保证的就是一处登陆,处处登陆,也就是我们登陆taobao后,访问账号相通的另一个应用时,只需要刷新页面就登陆了。单点登陆的设计合理性就是认证中心的存在,不可能让taobao的服务器通知其他产品矩阵中的应用。 本博文的单点登陆是一个比较传统的实现方式-CAS原理,使用全局会话,局部会话完成。多客户端实现单点登陆的步骤: 用户第一次访问taobao,认证中心发现用户未登录,先登录 登陆成功后,生成唯一token,并存入认证中心(现在很多自动完成认证,不需要存入),生成全局会话 访问tianmao时,先从全局会话中获得token,携带token访问 认证中心验证token是否存在 验证成功,重定向到tianmao首页。 原理 : 认证中心(授权服务器)保存一份全局的session(一般用cache中间件比如redis等实现),多个客户端保存本地局部session。 用户访问时,客户端先查看本地session是否登陆,如果没有登陆

SOS系列之-单点登录原理

岁酱吖の 提交于 2020-01-06 20:41:46
一.单点登录介绍 单点登录(Single Sign On),简称为 SSO,是比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 二.技术实现机制 当用户第一次访问应用系统的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。 要实现SSO,需要以下主要的功能: 1.所有应用系统共享一个身份认证系统。   统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。    2.所有应用系统能够识别和提取ticket信息。   要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过

使用xxl-sso实现单点登录

房东的猫 提交于 2020-01-03 03:31:39
XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性。 以下是它的 github地址 以及 文档地址 。 话不多说,先将该项目的代码从github上clone下来。 git clone https://github.com/xuxueli/xxl-sso.git 代码整体结构如下 如图中所示,xxl-sso-core是整个项目的核心,是由它来实现整个单点登录的过程,XxlSsoWebFilter,代码如下: package com . xxl . sso . core . filter ; import com . xxl . sso . core . conf . Conf ; import com . xxl . sso . core . entity . ReturnT ; import com . xxl . sso . core . login . SsoTokenLoginHelper ; import com . xxl . sso . core . path . impl . AntPathMatcher ; import com . xxl . sso . core . user . XxlSsoUser ; import org .

CAS做单点登陆(SSO)——集成BIEE 11g

狂风中的少年 提交于 2020-01-01 05:13:28
BIEE 11G和CAS集成零代码编写,只需配置。 更改BIEE analytics应用的web.xml 将analytics.war解包(使用7-zip或者Win-rar就可以),然后修改WEB-INF下的web.xml 注:analytics.ear可以从$MV_HOME/Oracle_BI1/bifoundation/jee下找到,将analytics.ear解压之后得到analytics.war和analytics-ws.war 修改过的web.xml,添加内容,如下: [html] <!-- ======================== 单点登录开始 ======================== --> <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置--> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <!-- 该过滤器负责用户的认证工作,必须启用它 --> <filter> <filter-name>CASFilter</filter-name> <filter-class>org.jasig.cas.client.authentication

统一用户认证和单点登录解决方案

拜拜、爱过 提交于 2019-12-29 13:16:12
本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理、认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题。 随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多。比如在媒体行业,常见的应用系统就有采编系统、排版系统、印刷系统、广告管理系统、财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等。由于这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,统一用户认证、单点登录等概念应运而生,同时不断地被应用到企业应用系统中。 统一用户管理的基本原理 一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式、命名与存储方式也多种多样。当用户需要使用多个应用系统时就会带来用户信息同步问题。用户信息同步会增加系统的复杂性,增加管理的成本。 例如,用户X需要同时使用A系统与B系统,就必须在A系统与B系统中都创建用户X,这样在A、B任一系统中用户X的信息更改后就必须同步至另一系统。如果用户X需要同时使用10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他9个系统

sso方案

情到浓时终转凉″ 提交于 2019-12-29 13:16:04
http://www.josso.org/confluence/display/JOSSO1/JOSSO+-+Java+Open+Single+Sign-On+Project+Home 1 概述 随着企业应用系统的迅速发展和完善,规模变得越来越大,用户如果要登录多个应用系统,不仅要面对多个登录界面,可能还要记忆不同的用户名和口令。每个应用系统都有各自的账号管理系统,互不信任。系统管理员不得不维护多个系统中的用户信息,数据的一致性很难保证。随着用户登录系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会降低。 为了满足企业不断增长的用户对不断增加的业务系统的访问需求,减少用户的账号管理工作,避免重复登陆,实现一个账号多个系统同时登录的统一单点登录迫在眉睫! 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 1.1 传统独立系统带来的问题 每个单独的系统都会有自己的安全体系和身份认证系统。整合以前,进入每个系统都需要进行登录,这样的局面不仅给管理上带来了很大的困难,在安全方面也埋下了重大的隐患。 1.2 统一认证和单点登录平台的优势 l 简化用户的账号、密码管理,避免了多个业务系统和功能模块的重复登录。 l 安全性好

偷懒小工具 - SSO单点登录通用类(可跨域)

邮差的信 提交于 2019-12-29 03:45:48
写在前面的话 上次发布过一篇同样 标题的文章 。但是因为跨域方面做得不太理想。我进行了修改,并重新分享给大家。 如果这篇文章对您有所帮助,请您点击一下推荐。以便有动力分享出更多的“偷懒小工具” 目的 目的很明确,就是搭建单点登录的帮助类,并且是一贯的极简风格(调用方法保持5行以内)。 并且与其他类库,关联性降低。所以,不使用WebAPI或者WebService等。 思路 因为上次有朋友说,光看见一堆代码,看不见具体思路。所以,这次分享,我把思路先写出来。 懒得看实现代码的朋友,可直接查看 “思路” 这个子标题。 同时如果有好的想法, 请修改后在github上推给我。Talk is cheap,Show me the code 同域 同域需要考虑的问题比较少。只需要考虑,MVC和WebForm的Request如何获取即可。 实现流程图如下 1. 因为是使用同样的Cookie所以名称和加密方式必须一致。 2. 需要设置登录成功后,回跳的网址。因为Forms身份认证的ReturnURL不能获得请求原网址。 3. 剩下的就如图所示了。不明白的可以追问,我就不细说了。 跨域 跨域除了需要考虑同域的问题外,还需要考虑状态共享。因为同源策略问题,故此使用 JSONP 。 1. 因为不是Cookie共享,所以只需要设置相同的加密方法即可。 2. 需要在认证网站,添加可登录的其他网站集合

MySQL基础篇(02):从五个维度出发,审视表结构设计

断了今生、忘了曾经 提交于 2019-12-27 18:08:31
本文源码: GitHub·点这里 || GitEE·点这里 一、数据场景 1、表结构简介 任何工具类的东西都是为了解决某个场景下的问题,比如Redis缓存系统热点数据,ClickHouse解决海量数据的实时分析,MySQL关系型数据库存储结构化数据。数据的存储则需要设计对应的表结构,清楚的表结构,有助于快速开发业务,和理解系统。表结构的设计通常从下面几个方面考虑:业务场景、设计规范、表结构、字段属性、数据管理。 2、用户场景 例如存储用户基础信息数据,通常都会下面几个相关表结构:用户信息表、单点登录表、状态管理表、支付账户表等。 用户信息表 存储用户三要素相关信息:姓名,手机号,身份证,登录密码,邮箱等。 CREATE TABLE `ms_user_center` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', `user_name` varchar(20) NOT NULL COMMENT '用户名', `real_name` varchar(20) DEFAULT NULL COMMENT '真实姓名', `pass_word` varchar(32) NOT NULL COMMENT '密码', `phone` varchar(20) NOT NULL COMMENT '手机号', `email` varchar

SpringBoot系列——i18n国际化

不打扰是莪最后的温柔 提交于 2019-12-27 08:19:16
  前言   作为分布式项目,单点登录是必不可少的,文本基于之前的的博客(猛戳: SpringCloud系列——Zuul 动态路由 , SpringBoot系列——Redis )记录Zuul配合Redis实现一个简单的sso单点登录实例   sso单点登录思路:   1、访问分布式系统的任意请求,被Zuul的Filter拦截过滤   2、在run方法里实现过滤规则:cookie有令牌accessToken且作为key存在于Redis,或者访问的是登录页面、登录请求则放行   3、否则,将重定向到sso-server的登录页面且原先的请求路径作为一个参数;response.sendRedirect("http://localhost:10010/sso-server/sso/loginPage?url=" + url);   4、登录成功,sso-server生成accessToken,并作为key(用户名+时间戳,这里只是demo,正常项目的令牌应该要更为复杂)存到Redis,value值存用户id作为value(或者直接存储可暴露的部分用户信息也行)设置过期时间(我这里设置3分钟);设置cookie:new Cookie("accessToken",accessToken);,设置maxAge(60*3);、path("/");   5、sso

SSO CAS 探究

怎甘沉沦 提交于 2019-12-27 08:18:07
CAS的官网: http://www.jasig.org/cas CAS Server wiki: https://wiki.jasig.org/display/CASUM/Home CAS Client wiki: https://wiki.jasig.org/display/CASC/Home http://blog.csdn.net/haydenwang8287/article/details/5765941 http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/ http://yuzhwe.iteye.com/blog/830143 获取更多用户信息 http://www.doc88.com/p-598933477220.html http://toplchx.iteye.com/blog/1013001 cas 与spring security整合 CAS 基础配置 1JDK环境变量设置 2 安全证书配置 3 部署CAS-Server相关的Tomcat 4 部署CAS-Client相关的Tomcat 5 不使用HTTPS配置 6 Client端获取Server 登陆信息 7 Clinet 获取更多用户信息配置 1 环境变量 set JAVA_HOME=D:\sso\jdk1.6.0_13 set TOMCAT