sso

CactiEZ中文版10.1与CAS单点登录

你离开我真会死。 提交于 2019-12-04 08:52:49
环境 CactiEZ中文版10.1为网上下载的镜像,344MB,该镜像是精简的CentOS6.0的版本。 cas phpClient为1.3.3,详细的使用说明及下载最新版本可以 点击此处 在虚拟机安装的 CactiEZ中文版10.1镜像,地址为:192.168.217.130,使用NAT方式访问,DHCP获取的IP地址(如果想访问外网,可以将系统自带的网关删掉,我安装之后的默认网关是192.168.0.1,删了之后就能正常上网了) 过程 1.将下载下载的 CAS-1.3.3.tgz 解压文件中的/CAS文件夹和CAS.php复制到 /ver/www/html/目下。 2.在/ver/www/html/目下创建一个ssoLogin.php,该名字不是可以随便起,也可以直接修改index.php文件,将原来的内部登录方法屏蔽掉。 代码如下: <?php /** * Example for a simple cas 2.0 client * * PHP Version 5 * * @file example_simple.php * @file ssoLogin.php * @category Authentication * @package PhpCAS * @author Joachim Fritschi <jfritschi@freenet.de> * @author Adam

测试分布式部署页面sso

折月煮酒 提交于 2019-12-04 08:13:22
测试分布式部署页面sso index.jsp ---------- <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <h1>这个是第1个页面</h1><br> <% if (session.getAttribute("ss") == null) { session.setAttribute("ss", "page1 session"); } out.print("session ss is " + session.getAttribute("ss").toString()+"<br/>

单点登录系统原理组成

本小妞迷上赌 提交于 2019-12-04 06:49:53
SSO介绍 SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 方案 -1. 可以配置tomcat的session共享。配置tomcat集群。Tomcat配置好集群后,会不停的向集群中其他的tomcat广播自己的session信息。其他的tomcat做session同步。可以保证所有的tomcatsession中的内容都是一致的。 优点:不用修改代码就可以实现session共享。 缺点:tomcat 是全局session复制,集群内每个tomcat的session完全同步(也就是任何时候都完全一样的) 在大规模应用的时候,用户过多,集群内tomcat数量过多,session的全局复制会导致集群性能下降, 因此,tomcat的数量不能太多,5个以下为好。 -2. 实现单点登录系统,提供服务接口。把session数据存放在redis。 Redis可以设置key的生存时间、访问速度快效率高。 优点:redis存取速度快,不会出现多个节点session复制的问题。效率高。 缺点:需要额外的开发。 -3.用一种新的基于 JWT 的 token 方式来实现,python-jwt 生成与校验,简单来说

单点登录测试

别来无恙 提交于 2019-12-04 05:51:02
什么是单点登录?单点登录全称Single Sign On(简称SSO),是指是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,包括单点登录与单点注销两部分,是目前比较流行的企业业务整合的解决方案之一。 这次系统做单点登录就是为了整合其他业务系统。需要整合的系统是独立的,注册方式、用户帐号不同。前期准备时间比较久,用户登录帐号这块是重点,首先需要整合其他业务系统用户登录帐号与我们系统(SSO认证中心系统)用户登录帐号。 整合方案确定后,DBA开始梳理各业务系统用户登录帐号。单点登录功能上线之前,我们平台会发短信和邮箱通知登录帐号有变更的用户。 前置条件:以下SSO认证中心系统简称SSO,其他两个业务系统简称系统A、系统B,系统A、B登录帐号是通用的,访问系统A、B有不同的登录认证页面(用于展示业务系统的业务),SSO认证中心系统采用原有的登录页面,在SSO认证中心系统进入系统A、B,有一个应用授权页面。 系统A、B登录认证页面排版、布局是否合理; 系统A、B登录认证页面所有链接跳转是否正确; 访问SSO,用SSO的个人帐号登录,然后进入系统A、B,系统A、B显示SSO登录的帐号; 访问SSO,用SSO的单位帐号登录,然后进入系统A、B,系统A、B显示SSO登录的帐号; 访问系统B,用系统B中的个人帐号登录,然后进入系统A、SSO,系统A

Flask: SSO原理及实现

雨燕双飞 提交于 2019-12-04 02:11:15
现在大多数软件公司的业务不再是单条线,而是发展成多元化的产品线。包括多个网站应用、移动APP以及桌面软件,那么当然希望能实现统一用户和统一登录。统一用户基本都已实现,然而统一登录却还是有不少公司未予以实现。这倒不是说SSO有多复杂或多难实现,这其中可能有历史遗留问题也或是其它原因。这是题外话,本文不作深究。 什么是统一用户 统一用户指的是多个应用共用一套帐号体系。比如Z公司旗下有aw和bw两个网站,有帐号goal,那么使用帐号goal能登录aw和bw。这个在技术上也不难实现,通常来说有2个方案: 共享持久层 这是最常用的方式。aw和bw通过直接访问同一个后端数据库来达到数据共享。 通过代理访问 这种方式类似于通过网关来访问同一个后端数据库。本质上跟共享持久层是一样的,无外乎多了层网关,这样是有好处的,本文接下来会涉及到。 这看起来好像够了,但是请您考虑这样一个场景:aw和bw是两个不同的网页游戏,那么首先aw和bw都有自己的激活流程,然后有自己的游戏角色、装备等各种属性。所以aw和bw应该有各自的profile。对此我归纳了几下几点: 统一用户帐号表仅保存各个应用的公共属性,其它应用可以重写这些属性 应该能标识出是否已激活过 应该能标识出属于哪个应用 对于第一点,这没什么好说的。第二点和第三点可以分别用一个整型字段来表示,属性存储在不同的位上,而且一般都是这么做的。如下代码所示:

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 退出一个应用时,单点登录相关各应用都需要退出

SSO之CAS单点登录实例演示

故事扮演 提交于 2019-12-03 18:46:21
一、概述 此文的目的就是为了帮助初步接触SSO和CAS 的人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录。 CAS的官网: http://www.jasig.org/cas 二、演示环境 本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 64位,主机名称:michael-pc JDK 1.6.0_18 Tomcat 6.0.29 CAS-server-3.4.11、CAS-client-3.2.1 根据演示需求, 用修改hosts 文件的方法添加域名最简单方便(这个非常重要) ,在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条 127.0.0.1 demo.micmiu.com 127.0.0.1 app1.micmiu.com 127.0.0.1 app2.micmiu.com demo.micmiu.com =>> 对应部署cas server的tomcat,这个虚拟域名还用于证书生成 app1.micmiu.com =>> 对应部署app1 的tomcat app2.micmiu.com =>> 对应部署app2 的tomcat 三、JDK安装配置 这个详细过程就不在描述,如果是免安装版的,确保环境变量配置正确。 本机环境变量: JAVA_HOME=D:

系统的讲解 - SSO单点登录

易管家 提交于 2019-12-03 13:36:37
目录 概念 好处 技术实现 小结 扩展 概念 SSO 英文全称 Single Sign On,单点登录。 在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。 比如:淘宝网(www.taobao.com),天猫网(www.tmall.com),聚划算(ju.taobao.com),飞猪网(www.fliggy.com)等,这些都是阿里巴巴集团的网站。在这些网站中,我们在其中一个网站登录了,再访问其他的网站时,就无需再进行登录,这就是 SSO 的主要用途。 好处 用户角度 用户能够做到一次登录多次使用,无需记录多套用户名和密码,省心。 系统管理员角度 管理员只需维护好一个统一的账号中心就可以了,方便。 新系统开发角度 新系统开发时只需直接对接统一的账号中心即可,简化开发流程,省时。 技术实现 流程图 流程介绍 如果没这个介绍,看上图肯定是懵懵的。 系统A和系统B都是前后端分离的,比如前端框架用的 React / Vue / Angular,都是通过 NPM 编译后独立部署的,前后端完全通过HTTP接口的方式进行交互,也有可能前后端项目的域名都不一样。 SSO认证中心不是前后端分离的,就是前端代码和后端代码部署在一个项目中。 为什么用这两种情况呢? 其实就是为了,在流程图上出现这两种情况,这样的清楚了,后期改成任何一种就都清楚了。 试想一下:

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

Python pandas dataframe sort_values does not work

匿名 (未验证) 提交于 2019-12-03 08:33:39
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have the following pandas data frame which I want to sort by 'test_type' test_type tps mtt mem cpu 90th 0 sso_1000 205.263559 4139.031090 24.175933 34.817701 4897.4766 1 sso_1500 201.127133 5740.741266 24.599400 34.634209 6864.9820 2 sso_2000 203.204082 6610.437558 24.466267 34.831947 8005.9054 3 sso_500 189.566836 2431.867002 23.559557 35.787484 2869.7670 My code to load the dataframe and sort it is, the first print line prints the data frame above. df = pd.read_csv(file) #reads from a csv file print df df = df.sort_values(by=['test_type'