单点登录

CAS SSO实践中,目前解决的问题和有待解决的问题

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 19:09:51
a) Web 应用,非 CAS server登录,不好用。 现有 CAS 示例中,用 Spring 开发。并且用了 spring 深入延伸功能。不易看懂。给的登录界面,必须有动态验证,无法去掉,故暂时不能支持首页登录单点登录兼容支持。 b) 可匿名访问页面,已登录提示 在正常登录之后,各应用之间,是统一约定登录了的。但在有些时候,可能并不会很明确的提示用户已经登录的信息。示例如: A 应用的 xx 页面,是不需要登录就可以访问的。客户在 B 网站登录之后,可以访问 A 网站的所有授权资源,但如果先访问公共资源 xx 页面的情况下,并不会提示这个用户在 A 网站已经登录过了。如果此用户访问 A 网站受限资源 cc, 然后在访问 xx 的情况下,会提示客户已经登录过了。 c) 解决的问题 以下解决的问题,是指同时满足并解决的,而不是一个一个独立满足。我们搞东西,需要一系列的,断断续续的,没法用的。 l 所有 WEB 应用,统一身份认证,统一登录,要到CAS server登录(烦,在某些层面上不友好)。 l 登录后,权限处理 . 这里界定权限处理在各应用中加载 . l 登录要方便,易理解、易操作。避免弹出过多提示,包含安全验证。当然也不能要求客户必须安装东西。对于可匿名访问的页面,如果客户已经登录过之后,也有比较好的登录提示。 l 退出一个应用时,单点登录相关各应用都需要退出

1.请求安全-- 一个简单的 单设备登录 单点登录

淺唱寂寞╮ 提交于 2019-12-03 10:49:26
##一个简单的 SSO 单点登录 单设备登录 解决方案 SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 实现SSO的技术主要有: (1)基于cookies实现; (2) Broker-based(基于经纪人),例如Kerberos等; (3) Agent-based(基于代理人)在这种解决方案中例如SSH等; (4) Token-based,例如SecurID,WebID,现在被广泛使用的口令认证; (5) 基于网关Agent and Broker-based; (6) 基于安全断言标记语言(SAML)实现; ####但是本文今天不会用到以上方法,但是我们使用方法类似于Token; 写本次文章的起初是为了解决链接捕获访问服务器的问题,但是单凭单点登录和单设备登录是解决不了这个问题的,要配合上(加密,MD5校验,请求唯一性验证,单点登录,单设备登录)来组成一个比较完善的安全验证机制.(后面文章会一一说道) 下面开始说正题,对于API来说一般需要单点登录的系统都需要进行登录的操作,那登录操作我们会做下面几件事情. 1.获取用户名密码进行登录验证用户是否有效作判断. 2

服务安全-IAM:百科

橙三吉。 提交于 2019-12-03 01:41:01
ylbtech-服务安全-IAM:百科 IAM(身份识别与访问管理(简称大4A)) IAM(Identity and Access Management 的缩写),即 “身份识别与访问管理” ,具有 单点登录 、强大的认证管理、基于策略的集中式 授权 和审计、动态授权、企业可管理性 等功能。 1. 返回顶部 1、 中文名:身份识别与访问管理 外文名:IAM(Identity and Access Management) 功 能:企业可管理性等功能 作 用:业务流程和管理手段 目录 1 IAM的定义 2 IAM 功能 ▪ 对您 AWS 账户的共享访问权限 ▪ 精细权限 ▪ 对 AWS 资源的安全访问权限 ▪ 多重验证 (MFA) ▪ 联合身份 ▪ 实现保证的身份信息 ▪ PCI DSS 合规性 ▪ 已与很多 AWS 服务集成 ▪ 最终一致性 ▪ 免费使用 3 关键功能 4 与4A的关系 2、 2. 返回顶部 1、 IAM的定义 AWS Identity and Access Management (IAM) 是一种 Web 服务,可以帮助您安全地控制对 AWS 资源的访问 。您可以使用 IAM 控制 对哪个用户进行身份验证 (登录) 和授权 (具有权限) 以使用资源 。 当您首次创建 AWS 账户时,最初使用的是一个对账户中所有 AWS 服务和资源有完全访问权限的单点登录身份

Redis+Spring Session 实现单点登录

匿名 (未验证) 提交于 2019-12-03 00:44:02
Spring Session 实现单点登录 此种方式相对于上节( https://blog.csdn.net/sinat_25295611/article/details/80406172 )所说使用原生 Jedis+Jackson+Cookie+Filter 的方式实现起来更加简便,同时对业务代码的侵入性也十分之小,其原理与原生方式类似,并通过对HttpServletRequest和HttpServletResponse的包装来实现cookie的读写,序列化采用JDK原生的方式,故用户对象(User)需要实现Serializable接口, < dependency > < groupId > org.springframework.session </ groupId > < artifactId > spring-session-data-redis </ artifactId > < version > 1.3.1.RELEASE </ version > </ dependency > <!-- spring session 的过滤器--> < filter > < filter-name > springSessionRepositoryFilter </ filter-name > < filter-class > org.springframework.web

cookie redis 实现单点登录

匿名 (未验证) 提交于 2019-12-03 00:43:02
功能:拦截UserController下的除了登录请求以外所有关于用户的请求(可修改添加拦截注册请求以及其他请求) (单点登录的具体认证过程在此AOP中) pom.xml需添加依赖: <!--Jedis客户端--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.2.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> spring-mvc.xml需配置开启aop注解: <!--开启基于注解的aop功能 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> 三、单点登录认证过程以及原理 1、原理 ①一次登录,同一浏览器内,无需重复登录 ②单session原理:同一浏览器,同一域名下,只存储一个session,session存储在服务器上,默认关闭浏览器失效,客户端利 用cookie存储sessionId

浅谈架构之路:单点登录 SSO

匿名 (未验证) 提交于 2019-12-03 00:40:02
前言:SSO 单点登录   “半吊子”的全栈工程师又来了,技术类的文章才发表了两篇,本来想先将主攻的几个系列都开个头(Nodejs、Java、前端、架构、全栈等等),无奈博客起步太晚,写博文的时间又没有很多,只好不按顺序乱发一通,请大家见谅。   本篇文章介绍一下单点登录,不像上一篇博文介绍的前后端分离,SSO 并不能算是一种架构吧,只能说是一个解决方案。由于笔者参与过医院集成平台项目,负责其中单点登录的设计研发工作,将经验总结分享一下,也不一定是最优方案,正确与否那就“仁者见仁智者见智”了。   单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,即用户只需要记住一组用户名和密码就可以登录所有有权限的系统。   文章导读:开篇先介绍一下笔者从事医疗行业出现单点登录的项目需求,毕竟是需求驱动研发;再将整理的通用版的单点登录知识进行分享;接着介绍一下笔者当前采用集成平台单点登录方案,最后是一些相关扩展。 单点登录背景介绍    【医疗行业的需求】      随着医院信息化建设的深入,信息化系统越来越多,五花八门多种多样,初步统计目前医院信息化子系统数量已经多达几十个。这些系统的安装维护不仅让信息中心花费大量心血,也让多角色的用户在使用系统时头疼不已

单点登录与IOS11

匿名 (未验证) 提交于 2019-12-03 00:39:02
本文翻译自 https://www.pingidentity.com/en/company/blog/2017/08/08/single_sign-on_and_ios_11.html 嗨,认证服务架构师们,你们是否察觉到即将到来的新版iOS和macOS中的一些变化?这些变化发生在2017年7月份并且可能会影响到你所在的公司单点登录(SSO)系统的用户体验。 当前(博客发布时间是2017年8月,译者注)safari的最新beta版本已经加强了对跨域用户信息追踪(cross-domain tracking of users)的限制。这是通过在浏览器状态机制中添加额外的限制(restrictions)――特别是cookies和HTML5 local storage机制――来完成的。而大多数机构正是通过以上的机制来实现单点登录(SSO)。 单点登录(SSO),是指这样一种能力:仅需进行一次认证即可使用户的认证状态被多个网站或手机应用识别,期间不需要用户再次提供登录凭证,在技术上也可称为一种“跨域追踪系统”(cross-domain tracking system)。 在本文中,我们将谈及这些即将到来的safari的变化,以及原生应用将会有哪些影响。 行业推荐的方案是由基于web的认证服务器来完成认证工作,而不是由App自己去获取用户认证凭证。这样做有以下好处: -

CAS5.2x单点登录(一)――搭建cas服务器

匿名 (未验证) 提交于 2019-12-03 00:20:01
单点登录的介绍 在5.0版本之前,cas使用的是ssh的那套框架来搞的,网上关于使用xml来配置的资料也是很多。前端也是使用jsp来弄的。所有的东西(连接数据库,自定义加密等等)一系列的东西都是通过写代码,然后在deployerConfigContext.xml里面进行bean的注入,这些我就不讲了,我主要讲的就围绕着5.0版本之后来讲吧,5.0版本之后的最大改变就是引入了现在比较流行的微服务架构也就是spring boot这套,他将之前使用bean注入的换成了spring boot的配置来弄了,以及增加了容器(docker)。网上对于5.0后的内容也是少之又少,因为最近公司让我做这块,然后研究了一阵子,将自己遇到的坑以及怎么一步步的完成设计的过程分享给大家。 工具 cas-overlay-template-5.2.1 首先还是从生成证书开始把,因为cas是需要域名的,而我们可以通过jdk中的keytool生成证书。 使用第一个命令: keytool -genkey -alias cas -keyalg RSA -validity 999 -keystore c:/etc/cas/thekeystore 会出现如图界面 ,这时候会在c盘生成thekeystore文件。 继续下一个命令: keytool -export -file /etc/cas/config/cas.crt

单点登录CAS的前端知识

匿名 (未验证) 提交于 2019-12-02 23:57:01
概述 主要讲述cas服务端(认证中心)和cas客户端(子系统)如何利用cookie及session来判断用户是否已进行单点登录的过程 详解CAS CAS 1.0 协议定义了一组术语,一组票据,一组接口。 下文用产品 a/b来表示cas客户端,即子系统。 术语: Client:用户。 Server:中心服务器,也是 SSO 中负责单点登录的服务器。 Service:需要使用单点登录的各个服务,相当于上文中的产品 a/b。 接口: /login:登录接口,用于登录到中心服务器。 /logout:登出接口,用于从中心服务器登出。 /validate:用于验证用户是否登录中心服务器。 /serviceValidate:用于让各个 service 验证用户是否登录中心服务器。 票据 TGT 是 CAS 为用户签发的登录票据,拥有了 TGT,用户就可以证明自己在 CAS 成功登录过。TGT 封装了 Cookie 值以及此 Cookie 值对应的用户信息。当 HTTP 请求到来时,CAS 以此 Cookie 值(TGC)为 key 查询缓存中有无 TGT ,如果有的话,则相信用户已登录过。 TGC:Ticket Granting Cookie CAS Server 生成TGT放入自己的 Session 中,而 TGC 就是这个 Session 的唯一标识(SessionId),以 Cookie