单点登录

CAS集群解决方案

拟墨画扇 提交于 2020-12-09 03:06:53
1. 总体方案 本方案的目的是搭建一个高可用,高可伸缩的中心认证服务。环境是 CAS 服务器是可任意扩展的,任意一个 CAS 服务节点均是等效的, CAS 服务器的状态信息是集中存储的; CAS 服务的客户端应用也是集群的环境,客户端应用服务器也是可任意扩展的,客户端应用的 session 状态信息是集中存储的,任意两个应用服务节点都是等效的; CAS 服务器和客户端应用的状态信息集中存储在缓存服务器 Memcached 上。该方案具有以下特性。 l 只支持 Tomcat6.x 和 Tomcat7.x 。 l 无单点故障。 l 能够应对 Tomcat 故障转移。 l 能够应对 memcached 故障转移。 注意:上述方案中有一个问题是如果 cas 服务端应用程序或者客户端应用程序将某些状态数据直接存储在 jvm 本地对象中的时候,则节点会出现不等效的情况,甚至出现不稳定的故障。该问题的解决办法是: 1. 避免这样的情况。 2. 同步各 jvm 实例之间的所有对象。 1.1. 正常登录流程(未单点登录)讨论 讨论用户的浏览器里无 TGT cookie值,即未曾登录过 CAS 服务器。 1. 用户浏览器访问必联网受保护的资源,假设用户未登录必联网应用,由于必联网各节点的 session 状态集中存储,则任意一个节点都是等效的。 2. 用户浏览器被转发请求到 cas 服务器

简单的四种方式单点登录实现(SSO)

假装没事ソ 提交于 2020-04-18 04:01:55
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 在做单点登录之前观察了很多网站,比如微软中国登录跳转到微软美国统一登录页面再跳转过来,淘宝天猫登录,京东登录。 方法1 登录成功之后通过 url带token参数跳转 比如阿里云登录万网的方式 方法2 在js里获取登录服务器的token jQuery.getScript("http://localhost:8081",function(){console.log(token);}); 方法3 登录成功之后 跳转到 (一站登录把全站都登录上) <script src='b.com/login?uid=xxxx&token=xxxxx'></script> <script src='c.com/login?uid=xxxx&token=xxxxx'></script> 方法4 登录成功之后 跳转到 (一站登录把全站都登录上) <iframe src="http://www.baidu.com"/> 思路: 比如A应用 使用 公共SSO登录 A应用先判断自个session是否为空,为空再用方法2js跨域获取SSO的信息,获取到之后再调用 A应用自己存session方法,登录成功刷新。

IAM身份识别与访问管理

此生再无相见时 提交于 2020-04-06 00:00:41
IAM(Identity and Access Management 的缩写),即“身份识别与访问管理”,简称“大4A”,具有单点登录、强大的认证管理、基于策略的集中式授权和审计、动态授权、企业可管理性等功能。 IAM定义 IAM是一套全面的建立和维护数字身份,并提供有效地、安全地IT资源访问的业务流程和管理手段,从而实现组织信息资产统一的身份认证、授权和身份数据集中管理与审计。 身份和访问管理是一套业务处理流程,也是一个用于创建和维护和使用数字身份的支持基础结构。 通俗地讲:IAM是让合适的自然人在恰当的时间通过统一的方式访问授权的信息资产,提供集中式的数字身份管理、认证、授权、审计的模式和平台。 关键功能 单点登录 (SSO) 通过对跨多种不同Web 应用程序、门户和安全域的无缝访问允许单点登录,还支持对企业应用程序(例如,SAP、Siebel、PeopleSoft 以及Oracle应用程序)的无缝访问。 强大的认证管理 提供了统一的认证策略,确保Internet 和局域网应用程序中的安全级别都正确。这确保高安全级别的应用程序可受到更强的认证方法保护,而低安全级别应用程序可以只用较简单的用户名/密码方法保护。为许多认证系统(包括密码、令牌、X.509 证书、智能卡、定制表单和生物识别)及多种认证方法组合提供了访问管理支持。 基于策略的集中式授权和审计 将一个企业Web

单点登录SSO:概述与示例

谁说胖子不能爱 提交于 2020-03-30 08:43:37
/*--> */ /*--> */ 目录 概述 演示一:零改造实施单点登录 演示二: 单点注销 演示三:集成AD认证 演示四:客户端单点登录 演示五:移动端单点登录 单点登录SSO概述 本系列将由浅入深的,带大家掌握最新单点登录SSO方案选型,以及架构开发实战。系列将结合示例、源码以及演示视频,让大家能够直观、深入学习。 文末附5个满足不同单点登录场景的gif动画演示。本系列后继文章会深入它们的实现方式以及适用场景,大家也可以先观看揣摩其实现。 零改造实施单点登录 单点注销 集成AD认证 客户端单点登录 移动端单点登录 单点登录即Single Sign On(SSO)。它是大型政府OA、企事业单位OA的标配解决方案。它概言之就是在多个Web、桌面或移动应用系统中,用户只需要登录一次,就可以访问所有的应用系统。 从业十多年,为政府、电信、跨国公司顾问和实施的单点登录解决方案无数,深谙其痛点与关键。 和很多人直观猜测相反,单点登录方案的定制性很强。很多企业的单点登录,实施是有问题的。尤其是被一些软件产品的销售人员牵着走的企业,它的单点登录方案实施,从产品方案选型起就存在根本性问题。这些方案常常要求大量现有业务系统的改造(基于统一身份认证服务,采用OpenId,OAuth,SAML等技术创建和传递认证凭据),或者只是体验较差的类似浏览器自动填充账号密码的功能(如Oracle的ESSO)

什么是单点登录

蓝咒 提交于 2020-03-18 17:59:11
单点登录 (Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 我们目前的系统存在诸多子系统,而这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。 来源: https://www.cnblogs.com/coder-wf/p/12518704.html

什么是CAS

偶尔善良 提交于 2020-03-18 17:52:13
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为JA-SIG 的一个项目。CAS 具有以下特点: 【1】开源的企业级单点登录解决方案。 【2】CAS Server 为需要独立部署的 Web 应用。 【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。 从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。下图是 CAS 最基本的协议过程: SSO单点登录访问流程主要有以下步骤: 1. 访问服务:SSO客户端发送请求访问应用系统提供的服务资源。 2. 定向认证:SSO客户端会重定向用户请求到SSO服务器。 3. 用户认证:用户身份认证。 4. 发放票据:SSO服务器会产生一个随机的Service Ticket。 5. 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。 6. 传输用户信息:SSO服务器验证票据通过后

CAS单点登录(一)——初识SSO

对着背影说爱祢 提交于 2020-03-18 15:50:07
某厂面试归来,发现自己落伍了!>>> 前言:其实好早就想把CAS的这一套知识整合一下,在工作上也应用到了这块,只是最近才在工作上接触到CAS,所以刚好把这些知识总结一下。这块可能是一个比较大的模块知识点,所以会有多篇文章进行逐一展开,笔者会尽量抽空更新,当然如果文章中存在错误,期望大家指出。 一、初识CAS 首先我们来说一下CAS,CAS全称为Central Authentication Service即中央认证服务,是一个企业多语言单点登录的解决方案,并努力去成为一个身份验证和授权需求的综合平台。 CAS是由Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。 CAS协议至少涉及三方:客户端Web浏览器,请求身份验证的Web应用程序和CAS服务器。 它也可能涉及后端服务,如数据库服务器,它没有自己的HTTP接口,但与Web应用程序进行通信。 主要特征: 多种的协议的支持,包括CAS (v1、v2、v3)、SAML(v1、v2)、OAuth、OpenID、OpenID Connect和WS-Federation Passive Requestor 多种认证机制,可以通过JAAS,LDAP,RDBMS,X.509,Radius,SPNEGO,JWT,Remote,Trusted,BASIC,Apache Shiro

前后端分离基于Oauth2的SSO单点登录怎样做?

淺唱寂寞╮ 提交于 2020-03-17 12:55:11
一、说明 单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼;本文主要介绍 跨域 间的 前后端分离 项目怎样实现单点登录,并且与 非前后端分离 的差异在那里?需要解决什么问题?。 前后端分离 的核心概念是后端仅返回前端所需的数据,不再渲染HTML页面,前端HTML页面通过AJAX调用后端的RESTFUL API接口并使用JSON数据进行交互 PS :关于 单点登录 主流的实现思路和原理请看文章《 Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定 》 二、实现差异 跨域 间的 前后端分离 项目也是基于共享统一授权服务(UAA)的 cookie 来实现 单点登录 的,但是与 非前后分离 不一样的是存在以下问题需要解决 没有过滤器/拦截器,需要在前端判断登录状态 需要自己实现 oauth2 的 授权码模式 交互逻辑 需要解决安全性问题, oauth2 的 clientSecret 参数放在前端不安全 三、实现架构 下面是 前后端分离 项目的三个角色(前端WEB工程、后端API工程、授权中心UAA)间进行 登录 / 单点登录 时的交互逻辑架构图 跨域的单点登录原理 在《 Spring Security基于Oauth2的SSO单点登录怎样做?一个注解搞定 》中已经介绍过了这里就不展开说明了

搭建单点登录环境

主宰稳场 提交于 2020-03-12 11:36:02
前言 不了解单点登录的可以看我的另一个文章 “单点登录整合方案” 都是自己的理解,欢迎各位指正。 大概结构如下: JDK1.7 + CAS SERVER 3.5 + ORACLE + JAVA WEB 1.安装JDK1.7 由于我的cas-tomcat是基于JDK1.7,所以首先必须要有JDK1.7环境 2.生成证书   1)生成密钥库     keytool -genkey -alias tomcat -keyalg RSA -keypass 123456 -storepass 123456 -keystore /usr/java/key/server.keystore -validity 3600       tomcat 为我本地的域名,这里不能输入IP,所以这里记得在host文件里配置下。     server.keystore 为生成的密钥。     这里对应的6个问题:     1.单点登录服务器的域名     2.公司名称     3.单点登录服务名称     4.剩下的就是所在地信息   2)导出证书     keytool -export -trustcacerts -alias tomcat -file /usr/java/key/server.cer -keystore /usr/java/key/server.keystore -storepass

单点登录与权限管理本质:session和cookie介绍

送分小仙女□ 提交于 2020-03-12 01:50:55
本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念、抽象的处理过程、常见的实现框架。通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关概念、处理流程、常见实现有个基本的认识。 本篇文章介绍下session和cookie,它是登录实现的基础,主要从下面几个方面介绍: session和cookie基本概念 session的生命周期 cookie的作用域 cookie的跨域问题会在后续文章单独介绍。 基本概念 大部分系统都需要识别用户的身份,有些功能只有特定的用户能使用,有些功能需要根据用户身份显示不同的内容,一般使用唯一编号标识用户的身份。 就像我们的×××,×××号是每个人唯一的,根据所在的省市区、出生年月、性别等规则生成,我们去政府机构办事时,都需要带着×××,他们通过×××验证我们的身份。 session和cookie主要用来识别登录者身份的,默认通过JSESSIONID唯一编号进行验证。session是在服务端保存的一个数据结构,用来跟踪用户的状态,也可以保存用户相关的一些数据,可以保存在内存、缓存、数据库等存储结构中。cookie是客户端保存用户信息的一种机制。 servlet session javax.servlet.http包中是session的主要API接口,主要有以下几种接口: HttpSession