Yii实现单点多登录

Yii实现单点多登录
Yii实现单点多登录

第一步:php.ini配置

session.save_handler = redis

session.save_path = "tcp://192.168.10.106:6379?auth=00000000"

https://www.360docs.net/doc/de5885258.html,e_strict_mode = 0

https://www.360docs.net/doc/de5885258.html,e_cookies = 1

https://www.360docs.net/doc/de5885258.html, = PHPSESSID

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain = 'https://www.360docs.net/doc/de5885258.html,'//制定域名

第二步:protected/config/bootstrap.php

'components' => array(

'user' => array(

// enable cookie-based authentication

'class'=>'WebUser',

'allowAutoLogin' => true,

'identityCookie'=>array('domain' => 'https://www.360docs.net/doc/de5885258.html,','path' => '/'),//配置用户cookie作用域

// enable cookie-based authentication

'stateKeyPrefix'=>'yourprefix',//你的前缀,必须指定为一样的

),

'session' => array(

'cookieParams' => array('domain' => 'https://www.360docs.net/doc/de5885258.html,', 'lifetime' => 0),//配置会话ID作用域生命期和超时

'timeout' => 3600,

),

'request'=>array(

'class'=>'HttpRequest',

'enableCsrfValidation'=>true,

'csrfTokenName'=>'cgtz_token',

'enableCookieValidation'=>true,

'csrfCookie'=>'123',

'noCsrfValidationRoutes'=>array('order/rechargesuccess',

'site/index',

'service/getprice',

// 'test/shengpay',

// 'test/shengpayindex',

// 'test/testtradeuuid',

// 'test/bindcard',

// 'test/plat'

),

),

),

CAS_SSO单点登录实例详细步骤

CAS SSO单点登录实例详细步骤 原创作者:孙俊财

第一步 1、用keytool生成证书: 命令: keytool -genkey -alias sjc -keyalg RSA -keysto re c:/store/mykey 说明: 这里-alias sjc 是表示生成的这个证书的别名叫sjc,-keyalg RSA 指的是采用的RSA算法,-keystore c:/store/mykey是指生成的证书存储的位置。回车后会提示你输入keystore password,这可以自己定(这里输入sunjuncai,下面配tomcat时要用的),然后是一些个人信息及组织信息,可以轻松搞定。 注意:密码输入后,会让你输入其他信息,记得这里第一个姓名必须是服务器的域名这里我输入的是完整计算机名称:gaofeng.nmc.hamcc 这里要注意如果不这样写就会报如下异常: java.io.IOException: HTTPS hostname wrong: should be 实战: C:\Documents and Settings\wangyoushi8>keytool -genkey -alias sjc -keyalg RSA -keystore c:/store/mykey 输入keystore密码:sunjuncai

您的名字与姓氏是什么? [Unknown]:gaofeng.nmc.hamcc 您的组织单位名称是什么? [Unknown]:上海神洲数港 您的组织名称是什么? [Unknown]:网络优化 您所在的城市或区域名称是什么? [Unknown]:郑州 您所在的州或省份名称是什么? [Unknown]:河南 该单位的两字母国家代码是什么 [Unknown]:ZH CN= gaofeng.nmc.hamcc, OU=上海神洲数港, O=网络优化, L=郑州, ST=河南, C=ZH 正确吗? [否]:y 输入的主密码 (如果和keystore 密码相同,按回车): 2、创建证书后,就导出证书: 命令: keytool -export -file c:/store/server.crt -alias sjc -keystore c:/store/mykey 说明: 从c:/store/mykey里取出证书入到c:/store/下,如果没有指定,就是存放在目录下C:\Documents and Settings\用户目录名\ 实战: C:\Documents and Settings\wangyoushi8>keytool -export -file c:/store/server.crt -alias sjc -keystore C:/store/mykey 输入keystore密码:sunjuncai 保存在文件中的认证 3、为客户端的JVM导入密钥: 命令: keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 说明: 注意:输入密码时密码为"changeit",这是默认密码. 特别说明:这个D:/jdk1.5.0_12/jre/lib/security/cacerts是指JDK的JRE路径下的lib目录. 至此,第一步完成。 实战: C:\Documents and Settings\wangyoushi8> keytool -import -keystore D:/jdk1.5.0_12/jre/lib/security/cacerts -file c:/store/server.crt -alias sjc 输入keystore密码:changeit

一个Web应用单点登录系统的设计和实现

第20卷哈尔滨师范大学自然科学学报 Vol.20,No.12004 第1期 NATURAL SCIENCES JOURNAL OF HARBIN NORMAL UNIVERSITY 一个Web 应用单点登录系统的设计和实现 陈重威 (上海市静安区业余大学) 摘要 作者在分析借鉴三种Web 单点登录产品和技术的基础上,设计并实现了一个Web 单点登录系统,该系统适用于企业内部Intranet 应用环境,可以跨多个In ternet 域,可以支持常见的几种操作系统和Web 应用服务器.本文介绍了此系统的设计思路和关键技术,并给出了部分关键代码. 关键词:Web;HTTP;单点登录;身份验证 收稿日期:2003-12-28 陈重威,(1948-),男,上海静安区业余大学计算机系副教授,主要研究方向:计算机网络、数据库 0 引言 经过多年的建设,我国企业中建立起来了一些基于Web 的应用系统,这些系统运行在多种操作系统和应用服务器上面,由不同的技术人员在不同的时期采用不同的技术建立,采用多种相互独立的用户管理、身份验证系统.在当前企业有限的经费预算条件下,如何使用户可以只登录企业信息系统一次就可以访问到企业中多种Web 应用一直是一种挑战.本文在分析三种具有代表性的Web 应用单点登录系统的基础上,针对中小型企业对Web 应用单点登录的要求、其Intranet 环境的特点,给出一个适应于中小型企业Intranet 内常见Web 应用的单点登录系统的设计框架及基于J2EE 的系统实现要点. 1 用户要求和现有产品 1 1 用户环境和要求 企业中基于Web 的应用系统种类繁多,有基于微软Internet Information Server 的运行在Windows 平台上的信息系统,有基于J2EE 应用服务器平台 的业务系统,有基于Lotus Domino 的办公自动化 系统,也有SAP 、ORAC LE 那样的ERP 系统或者财 务系统,这些系统各有各的用户数据库(关系型数据库、Domino 文档数据库、LDAP 服务器等).企业员工在不同应用系统中有不同的帐户!!!用户名和口令,他们需要牢记这些帐户.企业员工特别希望只登录一次就可以透明地访问其他各种应用系统,不再需要在各种应用系统的登录页面中多次输入不同的用户名和口令. 从用户的角度看,Web 应用单点登录系统的使用方法如下: 1 用户访问Web 单点登录系统,服务器返回登录页面,提示用户输入用户名和口令等认证信息; 2 用户登录系统,登录系统返回一个该用户有权访问的应用的列表; 3 自此以后,用户访问其他应用的时候,在用户看来,他不必进行身份验证就可以访问其他Web 应用了; 4 当用户退出一个应用系统,而没有退出?单点登录系统#,他仍然可以访问其他没有退出登录的应用系统.

简单的单点登录实现过程及效果展示

一、实现过程 从用到的jar包文件夹的cas-server-3.3.1modules中找出cas.war放到tomcat/webapps下面(cas-server-webapp-3.3.1.war重命名即可)。 现在cas默认的server端已经有了,下面自己写2个客户端测试一下 MyEclipse里面新建web project:sso 新建类HelloWorldExample package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public final class HelloWorldExample extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html");

PrintWriter writer = response.getWriter(); writer.println(""); writer.println(""); writer.println("Sample Application Servlet Page"); writer.println(""); writer.println(""); writer.println("

"); writer.println(""); writer.println(""); writer.println(""); writer.println(""); writer.println("
"); writer.println(""); writer.println(""); writer.println("

Sample Application Servlet

"); writer.println("This is the output of a servlet that is part of"); writer.println("the Hello, World application."); writer.println("
");

单点登录技术方案

xxxx集团 单点登录技术方案

目录 1. xxxx集团系统建设现状 (4) 1.1. Web应用系统 (4) 1.2. C/S应用系统 (4) 1.3. SSL VPN系统 (4) 2. xxxx集团单点登录系统需求 (5) 2.1. 一站式登录需求 (5) 3. SSO(单点登录)技术简介 (6) 3.1. 修改应用程序SSO方案 (6) 3.2. 即插即用SSO方案 (7) 3.3. 两种SSO方案比较 (7) 3.4. 惠普SSO (7) 3.4.1. 惠普SSO开发背景 (7) 3.4.2. 惠普SSO的功能 (8) 3.4.3. 惠普SSO的特点 (9) 3.4.4. 惠普SSO结构 (10) 4. xxxx集团单点登录技术方案 (11) 4.1. 应用系统中部署惠普SSO单点登录 (11) 4.1.1. 解决全局的单点登录 (12) 4.1.2. 应用系统的整合 (12) 4.1.3. 用户如何过渡到使用单点登录 (13) 4.1.4. 管理员部署业务系统单点登录功能 (14) 4.1.5. 建立高扩展、高容错单点登录环境 (15) 4.1.6. 建立稳定、安全、高速网络环境 (15) 4.2. 定制工作 (16) 4.2.1. SSL VPN结合 (16)

4.2.2. 密码同步 (16) 5. 项目实施进度 (17) 5.1. 基本安装配置 (17) 5.2. 配置认证脚本 (17) 5.3. 总体进度 (17) 6. 硬件清单 (19) 7. 软件清单 (20)

1.xxxx集团系统建设现状 xxxx集团有限责任公司(以下简称集团公司)管理和运营省内11个民用机场,以及20多个关联企业(全资子公司、控股企业、参股企业)。现有的信息系统主要有生产运营系统和管理信息系统,其中生产运营系统包括机场生产运营管理系统、中小机场生产运营管理系统、离港系统、航显系统、广播系统、安检信息管理系统、控制区证件管理系统等,管理信息系统主要有财务系统、OA 系统、邮件系统、资产管理系统、决策支持系统、网站信息发布审批系统、视频点播系统等。这些信息系统的用户包括集团公司所有机场以及关联企业。 各信息系统都有独立的用户组织体系,采用“用户名+密码”的方式来实现身份认证和授权访问。从而与众多企业一样存在如下一些主要问题:1、终端用户需要记住多个用户名和密码;2、终端用户需要登录不同的信息系统以获取信息;3、系统管理员难以应付对用户的管理;4、难以实施系统使用安全方面的管理措施。 1.1.Web应用系统 xxxx集团现有的Web应用系统包括:办公自动化系统(OA)、邮件系统、资产管理系统、内部网站信息发布审批系统、决策支持系统、视频点播系统等。这些系统基本上是各自独立开发的、或者购买的商业软件。每个应用系统都有自己的用户管理机制和用户认证机制,彼此独立。每个应用系统用户名、口令可能各不相同。 1.2.C/S应用系统 xxxx集团目前的C/S应用只有一个:财务系统,金蝶K3财务系统。 1.3.SSL VPN系统 xxxx集团有一套SSL VPN系统,集团局域网之外的用户(包括各地州机场、部分关联企业、用户自己家住房、出差旅馆、无线上网等)是通过SSL VPN 系统进入集团局域网的,通过SSL VPN系统进入集团局域网访问的系统包括:OA系统、邮件系统、资产管理系统、决策支持系统、网站信息发布审批系统及内部网站等。用户经过SSL VPN系统进入集团局域网需要经过身份认证。

单点登录系统(SSO)详细设计说明书

单点登录系统(SSO)详细设计说明书 1、引言 1.1编写目的 为了单点登录系统(SSO系统)的可行性,完整性,并能按照预期的设想实现该系统,特编写需求说明书。 同时,说明书也发挥与策划和设计人员更好地沟通的作用。 1.2背景 a.鉴于集团运营的多个独立网站(称为成员站点),每个网站都具有自己的身份验证机制,这样势必造成:生活中的一位用户,如果要以会员的身份访问网站,需要在每个网站上注册,并且通过身份验证后,才能以会员的身份访问网站;即使用户以同样的用户名与密码在每个网站上注册时,虽然可以在避免用户名与密码的忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个成员站点或在成员站点间跳转时,还是需要用户登录后,才能以会员的身份访问网站。这样不仅给用户带来了不便,而且成员网站为登录付出了性能的代价; b.如果所有的成员网站,能够实现单点登录,不仅在用户体验方面有所提高,而且真正体现了集团多个网站的兄弟性。通过这种有机结合,能更好地体现公司大平台,大渠道的理念。同时,这样做也利于成员网站的相互促进与相互宣传。 正是出于上面的两点,单点登录系统的开发是必须的,是迫在眉睫的。1.3定义 单点登录系统提供所有成员网站的“单一登录”入口。本系统的实质是含有身份验证状态的变量, 在各个成员网站间共用。单点登录系统,包括认证服务器(称Passport服务器),成员网站服务器。 会员:用户通过Passport服务器注册成功后,就具有了会员身份。 单一登录:会员第一次访问某个成员网站时,需要提供用户名与密码,一旦通过Passport服务器的身份验证, 该会员在一定的时间内,访问任何成员网站都不需要再次登录。 Cookie验证票:含有身份验证状态的变量。由Passport服务器生成,票含有用户名,签发日期时间, 过期日期时间和用户其它数据。

CAS单点登录配置全过程

CAS配置全过程 软件工具: 1.cas-server-3.3.5-release.zip(CAS服务端) 2.cas-client- 3.1.10-release.zip(CAS客户端) 3.apache-tomcat-7.0.40 https://www.360docs.net/doc/de5885258.html,mons-dbcp-all-1.3-r699049.jar 5.mysql-connector-java-5.1.18-bin.jar 6.cas-server-jdbc-3.0.5-rc2.jar 写在前面的话 此配置是根据当前系统,当前的版本,仅供参考,如果有什么其他的问题可以一起研究。 第一节:先走通技术障碍 第一步:环境部署 1.在Tomcat 根目录下创建一个cas目录。 2.下载CAS服务器并解压,打开cas-server- 3.3.5\modules,将cas-server-webapp-3.3.5.war复制到刚刚在Tomcat创建的cas目录下,并重命名为ROOT.war 3.修改host文件(C:\Windows\System32\drivers\etc)添加 127.0.0.1 https://www.360docs.net/doc/de5885258.html, 注意:如果想在一台PC机上模拟这个单点登录,就必须域名重定向,如果是多台PC机,

可以不配置此项,下文有用到https://www.360docs.net/doc/de5885258.html,,可以用相应PC机的IP代替 4.修改Tomcat文件下的server.xml(apache-tomcat-7.0.40\conf\server.xml) 添加内容: 5.启动Tomcat服务,查看信息,(如果有报错,可以根据信息查找错误),打开浏览器,输入https://www.360docs.net/doc/de5885258.html,:8080如果出现以下界面,则CAS服务端配置成功。 注:这个是最简单的CAS服务,只要输入的用户名跟密码一样,就可以正常登陆,在我们实际开发中,这个验证因为跟数据库作比较,接下来,我们就配置数据库校验。 第二步:配置数据库验证 1.打开deployerConfigContext.xml,在apache-tomcat-7.0.40\cas\ROOT\WEB-INF目录下,找到如下代码: 添加下面代码: 2.增加数据源dataSource, 在deployerConfigContext.xml,(跟上面同一个文件)找到 ,在下面添

SSO 原理浅谈

SSO 原理浅谈 SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州UserGroup 的论坛成立以来,无数网友都在尝试使用开源的CAS ,Kerberos 也提供另外一种方式的SSO ,即基于Windows 域的SSO ,还有就是从2005 年开始一直兴旺不衰的SAML 。 如果将这些免费的SSO 解决方案与商业的Tivoli 或Siteminder 或RSA Secure SSO 产品做对比,差距是存在的。毕竟,商业产品的安全性和用户体验都是无与伦比的,我们现在提到的SSO ,仅仅是Web SSO ,即Web-SSO 是体现在客户端;另外一种SSO 是桌面SSO ,例如,只需要作为Administrator 登录一次windows 2000 ,我便能够在使用MSN/QQ 的时候免去登录的环节( 注意,这不是用客户端软件的密码记忆功能) ,是一种代理用户输入密码的功能。因此,桌面SSO 是体现在OS 级别上。 今天,当我们提起SSO 的时候,我们通常是指Web SSO ,它的主要特点是,SSO 应用之间走Web 协议( 如HTTP/SSL) ,并且SSO 都只有一个登录入口。 简单的SSO 的体系中,会有下面三种角色: 1 ,User (多个) 2 ,Web 应用(多个) 3 ,SSO 认证中心(1 个) 虽然SSO 实现模式千奇百怪,但万变不离其宗: l Web 应用不处理User 的登录,否则就是多点登陆了,所有的登录都在SSO 认证中心进行。l SSO 认证中心通过一些方法来告诉Web 应用当前访问用户究竟是不是张三/ 李四。 l SSO 认证中心和所有的Web 应用建立一种信任关系,SSO 认证中心对用户身份正确性的判断会通过某种方法告之Web 应用,而且判断结果必须被Web 应用信任。 2. CAS 的基本原理 CAS(Central Authentication Service) 是Yale 大学发起的一个开源项目,据统计,大概每10 个采用开源构建Web SSO 的Java 项目,就有8 个使用CAS 。对这些统计,我虽然不以为然,但有一点可以肯定的是,CAS 是我认为最简单实效,而且足够安全的SSO 选择。 本节主要分析CAS 的安全性,以及为什么CAS 被这样设计,带着少许密码学的基础知识,我希望有助于读者对CAS 的协议有更深层次的理解。 2.1 CAS 的结构体系 从结构体系看,CAS 包含两部分: l CAS Server CAS Server 负责完成对用户的认证工作,CAS Server 需要独立部署,有不止一种CAS Server 的实现,Yale CAS Server 和ESUP CAS Server 都是很不错的选择。 CAS Server 会处理用户名/ 密码等凭证(Credentials) ,它可能会到数据库检索一条用户帐号信息,也可能在XML 文件中检索用户密码,对这种方式,CAS 均提供一种灵活但同一的接口/ 实现分离的方式,CAS 究竟是用何种认证方式,跟CAS 协议是分离的,也就是,这个认证的实现细节可以自己定制和扩展。 l CAS Client CAS Client 负责部署在客户端(注意,我是指Web 应用),原则上,CAS Client 的部署意味着,当有对本地Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认

java实现简单的单点登录(4)

下面是登录模块DesktopSSOLoginModule的主体:login()方法。逻辑也是非常简单:先用Cookie来登陆,如果成功,则直接就进入系统,否则需要用户输入用户名和密码来登录系统。 public boolean login() throws LoginException{ try { if (Cookielogin()) return true; } catch (IOException ex) { ex.printStackTrace(); } if (passwordlogin()) return true; throw new FailedLoginException(); } 下面是Cookielogin()方法的实体,它的逻辑是:先从Cookie文件中获得相应的Cookie值,通过身份效验服务效验Cookie的有效性。如果cookie有效就算登录成功;如果不成功或Cookie不存在,用cookie登录就算失败。 public boolean Cookielogin() throws LoginException,IOException { String cookieValue=""; int cookieIndex =foundCookie(); if (cookieIndex<0) return false; else cookieValue = getCookieValue(cookieIndex); username = cookieAuth(cookieValue); if (! username.equals("failed")) { loginSuccess = true; return true; } return false; } 用用户名和密码登录的方法要复杂一些,通过Callback的机制和屏幕输入输出进行信息交互,完成用户登录信息的获取;获取信息以后通过userAuth方法来调用远端SSOAuth的服务来判定当前登录的有效性。 public boolean passwordlogin() throws LoginException { // // Since we need input from a user, we need a callback handler if (callbackHandler == null) {

CAS认证实现单点登录

CAS认证实现单点登录 一.背景 有几个相对独立的java的web应用系统,各自有自己的登陆验证功能,用户在使用不同的系统的时候,需要登陆不同的系统。现在需要提供一个 统一的登陆/登出界面,而不修改各个系统原来的登陆验证机制。于是采用单点登录系统开源单点登录产品CAS。 随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多 个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率 允许用户一次性进行认证之后,就访问系统中不同的应用 二.原理 CAS 是一个独立的web 应用, 当前使用Java Servlets 实现,通过HTTPS 协议保证其数据的传输安全性。它通过三个Url 地址进行访问:登录Url、验证URL、注销URL。

三. CAS认证集成 要使用单点登录,需要部署CAS系统,CAS服务端可以直接部署在tomcat下运行,对于CAS服务端来说,所有要集成单点登录的web应用都是它的一个客户端,CAS有客户端jar包,客户端web应用需要引入CAS客户端的jar包,这样CAS系统的服务端和客户端web应用程序端才能通信。 客户端web应用程序的通过配置web.xml,添加CAS需要的各种过滤器,来实现和CAS服务器通信,用户信息验证工作在CAS 服务端统一完成,验证通过后,客户端web应用程序只需要补全自己的Session信息即可。 3.1部署CAS系统服务端 步骤1:准备好以下运行环境 jdk1.6+

tomcat6+ jdk与tomcat的下载、安装、配置在此略过。 步骤2:安装部署cas-server 到官网(https://www.360docs.net/doc/de5885258.html,/cas/cas-server-3.5.0-release.zip)下载cas-server-3.5.0-release.zip。解压缩以后,在其路 径 cas-server-3.5.0\modules 下面找到 cas-server-webapp-3.5.0.war,将其拷贝到 tomcat 的webapps 下,改名为 cas.war, 并修改 war 包中配置文件 cas.properties 里的 cas server name=cas 并启动 tomcat,启动后可在浏览器访 问 http://localhost:8080/cas/login

单点登录技术文档

济南时代智囊科技有限公司单点登录技术文档
单点登录技术文档
何伟民* 2010.6
1、 单点登录概述 、
单点登录的英文名称为 Single Sign-On,简写为 SSO,它是一个用户认证的过程,允许 用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输 入密码。IBM 对 SSO 有一个形象的解释“单点登录、全网漫游” 。 SSO 将一个企业内部所有域中的用户登录和用户帐号管理集中到一起,SSO 的好处显 而易见: 1. 减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性 2. 实现安全的同时避免了处理和保存多套系统用户的认证信息 3. 减少了系统管理员增加、删除用户和修改用户权限的时间 4. 增加了安全性:系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用 户来取消该用户对所有系统资源的访问权限 对于内部有多种应用系统的企业来说, 单点登录的效果是十分明显的。 很多国际上的企 业已经将单点登录作为系统设计的基本功能之一。
1.1 单点登录产品
商业 SSO 软件 专门的 SSO 商业软件 主要有:Netgrity 的 Siteminder,已经被 CA 收购。Novell 公司的 iChain。RSA 公 司的 ClearTrust 等。 门户产品供应商自己的 SSO 产品, 如:BEA 的 WLES,IBM 的 Tivoli Access Manager,Sun 公司的 identity Server, Oracle 公司的 OID 等。 上述商业软件一般适用于客户对 SSO 的需求很高,并且企业内部采用 Domino、SAP、 Sieble 等系统比较多的情况下。单点登录产品通常需要在应用软件中增加代理模块,而商业 SSO 产品主要针对大型软件制作了代码模块。 因此,商业 SSO 软件除了价格问题外,另一个重要问题就是对客户自己的应用系统支 持未必十分完善。
第1页

单点登录设计原理

https://www.360docs.net/doc/de5885258.html,/j2eeweiwei/article/details/2381332 单点登录设计原理 分类:权限控管Java 2008-05-04 13:12 244人阅读评论(0) 收藏举报 本文以某新闻单位多媒体数据库系统为例,提出建立企业用户认证中心,实现基于安全策略的统一用户管理、认证和单点登录,解决用户在同时使用多个应用系统时所遇到的重复登录问题。 随着信息技术和网络技术的迅猛发展,企业内部的应用系统越来越多。比如在媒体行业,常见的应用系统就有采编系统、排版系统、印刷系统、广告管理系统、财务系统、办公自动化系统、决策支持系统、客户关系管理系统和网站发布系统等。由于这些系统互相独立,用户在使用每个应用系统之前都必须按照相应的系统身份进行登录,为此用户必须记住每一个系统的用户名和密码,这给用户带来了不少麻烦。特别是随着系统的增多,出错的可能性就会增加,受到非法截获和破坏的可能性也会增大,安全性就会相应降低。针对于这种情况,统一用户认证、单点登录等概念应运而生,同时不断地被应用到企业应用系统中。 统一用户管理的基本原理 一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式、命名与存储方式也多种多样。当用户需要使用多个应用系统时就会带来用户信息同步问题。用户信息同步会增加系统的复杂性,增加管理的成本。 例如,用户X需要同时使用A系统与B系统,就必须在A系统与B系统中都创建用户X,这样在A、B任一系统中用户X的信息更改后就必须同步至另一系统。如果用户X需要同时使用10个应用系统,用户信息在任何一个系统中做出更改后就必须同步至其他9个系统。用户同步时如果系统出现意外,还要保证数据的完整性,因而同步用户的程序可能会非常复杂。 统一存储(UUMS)、分布授权: 解决用户同步问题的根本办法是建立统一用户管理系统(UUMS)。UUMS统一存储所有应用系统的用户信息,应用系统对用户的相关操作全部通过UUMS完成,而授权等操作则由各应用系统完成,即统一存储、分布授权。

单点登录SSO的定义实现机制及优缺点

一、什么是单点登录S S O(S i n g l e S i g n-O n) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。 二、单点登录解决了什么问题 解决了用户只需要登录一次就可以访问所有相互信任的应用系统,而不用重复登录。 三、单点登录的技术实现机制 如下图所示: 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性(4,6)。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。 从上图可以看出sso的实现技术点: 1)所有应用系统共享一个身份认证系统。 统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。 2)所有应用系统能够识别和提取ticket信息 要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。 关于统一身份认证机制:如下图 ?①用户请求访问业务系统。 ②业务系统在系统中查看是否有对应请求的有效令牌,若有,则读取对应的身份信息,允许其访问;若没有或令牌无效,则把用户重定向到统一身份认证平台,并携带业务系统地址,进入第③步。 ③在统一身份认证平台提供的页面中,用户输入身份凭证信息,平台验证此身份凭证信息,若有效,则生成一个有效的令牌给用户,进入第④步;若无效,则继续进行认证,直到认证成功或退出为止。 ④用户携带第③步获取的令牌,再次访问业务系统。 ⑤业务系统获取用户携带的令牌,提交到认证平台进行有效性检查和身份信息获取。 ⑥若令牌通过有效性检查,则认证平台会把令牌对应的用户身份信息返回给业务系统,业务系统把身份信息和有效令牌写入会话状态中,允许用户以此身份信息进行业务系统的各种操作;若令牌未通过有效性检查,则会再次重定向到认证平台,返回第③步。 通过统一身份认证平台获取的有效令牌,可以在各个业务系统之间实现应用漫游。 四、单点登录的优点

CAS单点登录

CAS单点登录总结 一、服务端搭建 1.安装JDK。 2.安装Tomcat。安装版本Tomcat7.0. 3.在Tomcat上配置SSl (1)生成证书。在C盘根目录下建立子文件夹“Keys”,用于存放证书。在 JDK安装文件夹下的bin文件夹(C:\Program Files\Java\jre1.8.0_60\bin)下打开“命令窗口”。 (2)执行命令“keytool -genkey -alias tomcat -keyalg RSA -storepass changeit -keystore c:\keys\.keystore -validity 3600”创建证书。 (3)将证书导入的JDK的证书信任库中 第一步:导出证书。 执行命令“keytool -export -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore c:\keys\.keystore -storepass changeit”将证书导出到Keys文件夹。 第二步:将证书导入到JDK证书信任库。 执行命令“keytool -import -trustcacerts -alias tomcat -file c:\keys\tomcat.cer -keystore "C:\Program Files\Java\jre7\lib\security\cacerts" -storepass changeit”。系统询问 是否信任此证书,回答“y” 4、配置server.xml文件 用文本编辑器管理员身份运行,打开Tomcat7.0下的server.xml文件(C:\Program

单点登录分析与设计

目录 1、概述 (3) 2、功能需求 (4) 2.1、身份认证标识管理 (4) 2.2、消息协议 (5) 2.3、日志管理 (5) 3、系统设计 (6) 3.1、网络结构 (6) 3.1、体系架构 (6) 3.2、功能模块 (8) 3.3、数据模型 (9) 3.4、系统接口 (10) 3.4.1、用户登录 (10) 3.4.2、切换认证 (13) 3.4.3、登记接口 (13) 3.4.4、签退 (14) 3.4.5、认证 (15) 4、系统实现 (17) 4.1、用户联系类 (17) 4.2、业务系统信息设置 (17) 4.3、访问业务系统 (18) 4.4、配置文件 (22) 4.5、核心代码 (23) 5、系统测试 (26) 5.1、测试概述 (26) 5.2、测试用例 (26) 5.2.1、用户登录 (26) 5.2.2、切换认证 (28) 5.2.3、签出 (28)

5.2.4、认证 (29) 5.2.5、坐席登录 (30) 5.3、测试结果 (30)

1、概述 单点登录系统在企业信息化平台中作为企业用户、个人用户、平台管理员用户登录注册系统,通过单点登录系统信息化平台中的这三类用户可以实现单点登录多平台访问。实现方式是这三类用户通过单点登录系统进行登录时产生一个登陆表示,通过这个平台唯一的登录标识可以从业务系统跳转到另外一个业务信息。 单点登录系统不存在业务数据维护功能,所以单点登录系统不提供页面功能。单点登录系统的所有功能通过多个WebService接口对外提供,当然这些接口请 求也会通过IP认证的方式进行安全认证。同时对于业务系统进行二次开发会提 供一个开发工具包,开发工具包的主要作用是实现XML字符串和类对象之间的相互转换。 统一身份认证分为业务方面和性能方面两类。 业务问题包括: 1.业务管理人员如何实现跨平台管理。 2.教师、学生实现跨平台查看自己的业务数据。 3.业务系统如何改造满足跨平台访问。 性能问题包括: 1.每一次登录需要进行记录,系统管理人员可以查询。 2.每一次平台之间的切换需要进行记录,系统管理人员可以查询。 3.如何保证网络安全。 4.每秒访问次数不少于80次(单个应用)。 5.应用可以实现堆砌部署,随时添加机器和应用。

【黑马程序员】单点登录实现原理(SSO)

【黑马程序员】单点登录实现原理(SSO) 简介 ?单点登录是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的保护资源,若用户在某个应用系统中进行注销登录,所有的应用系统都不能再直接访问保护资源,像一些知名的大型网站,如:淘宝与天猫、新浪微博与新浪博客等都用到了这个技术。 原理 ?单点登录 ?有一个独立的认证中心,只有认证中心才能接受用户的用户名和密码等信息进行认证,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过 令牌实现,当用户提供的用户名和密码通过认证中心认证后,认证中心会创建授权 令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到 令牌即得到了授权,然后创建局部会话。 ?示例:

下面对上图进行解释: ?当用户还没进行用户登录的时候 ?用户去访问系统1的保护资源,系统1检测到用户还没登录,跳转至SSO认证中心,SSO认证中心也发现用户没有登录,就跳转到用户至认证中心的登录页面 ?用户在登录页面提交用户相应信息后,认证中心会校验用户信息,如果用户信息正确的话认证中心就会创建与该用户的全局会话(全局会话过期的时候,用户就需要重新登录了。全局会话中存的信息可能有令牌,用户信息,及该在各个系统的一些情况),同时创建授权令牌,然后进行下一步,否则认证中心给出提示(用户信息有误),待用户再次点击登录的时候,再一次进行校验用户信息

?认证中心带着令牌跳转到用户最初请求的地址(系统1),系统1拿到令牌后去SSO认证中心校验令牌是否有效,SSO认证中心校验令牌, 若该令牌有效则进行下一步 ?注册系统1,然后系统1使用该令牌创建和用户的局部会话(若局部会话过期,跳转至SSO认证中心,SSO认证中心发现用户已经登录, 然后执行第3步),返回受保护资源 ? 用户已经通过认证中心的认证后 用户访问系统2的保护资源,系统2发现用户未登录,跳转至SSO认证中心,SSO 认证中心发现用户已经登录,就会带着令牌跳转回系统2,系统2拿到令牌后去SSO 认证中心校验令牌是否有效,SSO认证中心返回有效,注册系统2,系统2使用该令牌创建与用户的局部会话,返回受保护资源。 ? ? 如果系统1的局部会话存在的话,当用户去访问系统1的保护资源时,就直接返回保护资源,不需要去认证中心验证了 ? 局部会话存在,全局会话一定存在;全局会话存在,局部会话不一定存在;全局会话销毁,局部会话必须销毁 如果在校验令牌过程中发现客户端令牌和服务器端令牌不一致或者令牌过期的话,则用户之前的登录就过期了,用户需要重新登录 关于令牌可参考:基于跨域单点登录令牌的设计与实现 ?单点注销

CAS实现单点登录(SSO)经典完整教程

一、简介 1、cas是有耶鲁大学研发的单点登录服务器 2、本教材所用环境 ?Tomcat7.2 ?JDK6 ?CAS Service 版本 cas-server-3.4.8-release ?CAS Client版本 cas-client-3.2.1-release 二、生成证书 证书对于实现此单点登录非常之重要,证书是服务器端和客户端安全通信的凭证,本教程只是演示,所有用了 JDK自带的证书生成工具keytool。当然在实际项目中你可以到专门的证书认证中心购买证书。 中文官方网站:https://www.360docs.net/doc/de5885258.html,/cn/ 1、用JDK自带的keytool生成证书 view plain 1.命令:keytool -genkey -alias smalllove -keyalg RSA -keystore D:/keys/smallkey 此命令是生成一个证书,其中smalllove 是证书别名 此命令的执行如图所示:

其中名字与姓氏这一最好写你的域名,如果在单击测试你可以在C:\Windows\System32\drivers\etc\hosts文件中映射一个虚拟域名,注意不要写IP。 2、导出证书 view plain

1.命令:C:\>keytool -export -file d:/keys/small.crt -alias smalllove -keystore d:/keys/smallkey 如图: 密码为上步设置的密码。 3、把证书导入到客户端JDK中。 view plain 1.命令:keytool -import -keystore C:\Java\jdk1.6.0_21\lib\security\cacerts -file D:/keys/small.crt -alias smalllove 此命令是把证书导入到JDK中。 如图:

单点登录_尚学堂CAS讲义

一.SSO (Single Sign-on)原理 SSO 分为Web-SSO和桌面SSO。桌面SSO 体现在操作系统级别上。Web-SSO体现在客户端,主要特点是:SSO 应用之间使用Web 协议( 如HTTPS) ,并且只有一个登录入口。我们所讲的SSO,指Web SSO 。 SSO 的体系中,有下面三种角色: ?User(多个) ?Web应用(多个) ?SSO认证中心(一个) SSO 实现模式千奇百怪,但万变不离其宗,包含以下三个原则: ●所有的登录都在 SSO 认证中心进行。 ●SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是通过认证的 用户。 ●SSO 认证中心和所有的 Web 应用建立一种信任关系。 二.CAS 的基本原理 CAS(Central Authentication Service) 是Yale 大学发起的构建Web SSO 的Java开源项目。 1.CAS 的结构体系 ◆CAS Server CAS Server 负责完成对用户信息的认证,需要单独部署,CAS Server 会处理用户名/ 密码等凭证(Credentials) 。 ◆CAS Client CAS Client部署在客户端,当有对本地Web 应用受保护资源的访问请求,并且需要对请求方进行身份认证,重定向到CAS Server 进行认证。 2.CAS 协议 基础协议

上图是一个基础的CAS 协议,CAS Client 以过滤器的方式保护Web 应用的受保护资源,过滤从客户端过来的每一个Web 请求,同时,CAS Client 会分析HTTP 请求中是否包请求Service Ticket( 上图中的Ticket) ,如果没有,则说明该用户是没有经过认证的,CAS Client 会重定向用户请求到CAS Server (Step 2 )。Step 3 是用户认证过程,如果用户提供了正确的认证信息,CAS Server 会产生一个随机的Service Ticket ,会向User 发送一个Ticket granting cookie (TGC) 给User 的浏览器,并且重定向用户到CAS Client (附带刚才产生的Service Ticket),Step 5 和Step6 是CAS Client 和CAS Server 之间完成了一个对用户的身份核实,用Ticket 查到Username ,认证通过。 3.CAS 如何实现SSO 当用户访问Helloservice2再次被重定向到CAS Server 的时候,CAS Server 会主动获到这个TGC cookie ,然后做下面的事情: 1)如果User 的持有TGC 且其还没失效,那么就走基础协议图的Step4 ,达到了 SSO 的效果。 2)如果TGC 失效,那么用户还是要重新认证( 走基础协议图的Step3) 。 三.实践配置 下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。 软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06 下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15 https://www.360docs.net/doc/de5885258.html,/downloads/cas/cas-server-3.0.4.zip

相关文档
最新文档