单点登录

折衷的方式实现php与ruby共享session实现单点登录

你离开我真会死。 提交于 2019-11-30 02:23:51
1. 背景 前一阵部门要做一个内部讨论区,希望能和原有的gitlab集成在一起。 discuz 虽然成熟但是感觉不够高大上,找了几个ruby的论坛 discourse , rabel 虽然时髦值够了但是成熟度又缺了点,最后选了php的 question2answer 作为论坛程序,采用iframe的方式嵌入原来的gitlab程序。 2. 单点登录方案 2.1. 共享cookie 在cookie里保存user的信息,php读cookie并取得用户信息。 ruby和php程序要在 同一个域名 下 cookie在客户端是可见的,一般要对cookie进行加密。 数据不安全 2.2. 共享session 在cookie里保存ruby session信息,php获得session信息后读session数据。 ruby和php程序要在 同一个域名 下 session内容客户端不可见。 2.3. cas 通过统一认证服务登录 ruby和php登录时重定向至认证服务器,通过验证后回调相应服务保存token,之后只要具体服务向cas请求token是否过期就可以判断是否登录。 由于两个业务在同一个域名下,这里就放弃了复杂的cas方案;考虑源代码安全,没有用cookie存储用户信息,最后决定使用共享session的方式实现单点登录 3. 通过session单点登录 3.1. rails与session

单点登录接口说明

♀尐吖头ヾ 提交于 2019-11-29 09:07:27
1、将需要拦截的页面进行拦截,然后重定向到单点登录 http://localhost:6789/sso-server/?originUrl=http://10.217.17.79:8881/portal/index.html&clientId=portal 参数说明 originUrl 登录成功后需要跳转回的系统地址 clientId 表示子系统唯一标识 ,联系单点登录服务端维护人员获取 2、登录接口 子系统提供登录接口,供单点登录服务端调用 当用户在单点登录界面输入 账号,密码后,单点登录服务端获取到用户输入的账号密码,调子系统的登录接口,登录接口返回的数据格式为: { "message": "success", "code": "200", "body":"" } 参数说明 code 200 表示登录成功,其他表示失败,message 就是提示信息,body 为数据字段,可以为空 3、单点登录成功后,单点登录会颁发 ticket 随原地址 originUrl 重定向回到子系统 http://localhost:8881/portal/index.html?ticket=84bd62fd-9816-4c79-bf19-a89fbe938aed 子系统需要拦截并获取到 ticket ,保存到 cookie 中 3、票据ticket 效验接口,对所有请求进行认证,判断当前ticket

单点登录(SSO)

徘徊边缘 提交于 2019-11-29 05:24:42
一、SSO(单点登录)介绍 SSO英文全称Single SignOn,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。 实现机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。 下面对上图简要描述 用户访问系统1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 sso认证中心发现用户未登录,将用户引导至登录页面 用户输入用户名密码提交登录申请 sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌 sso认证中心带着令牌跳转会最初的请求地址(系统1) 系统1拿到令牌,去sso认证中心校验令牌是否有效 sso认证中心校验令牌,返回有效,注册系统1 系统1使用该令牌创建与用户的会话,称为局部会话

基于SAML的单点登录介绍

自作多情 提交于 2019-11-29 01:07:15
http://blog.csdn.net/csethcrm/article/details/20694993 一、背景知识: SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。 SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议,可以用来传输安全声明。比如,两台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也 可以采用SAML来传输,传输的数据以XML形式,符合SAML规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解SAML规范即可,显 然比传统的方式更好。SAML 规范是一组Schema 定义。 可以这么说,在Web Service 领域,schema就是规范,在Java领域,API就是规范。 SAML 作用 SAML 主要包括三个方面: 1.认证申明

基于SAML的SSO介绍

限于喜欢 提交于 2019-11-29 01:06:56
Originated from: http://www.cnblogs.com/perfectdesign/archive/2008/04/10/saml_federation.html and page 4 of VMware-horizon-view-integration-horizon-workspace.pdf 一、背景知识: SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。 SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议,可以用来传输安全声明。比如,两台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也可以采用SAML来传输,传输的数据以XML形式,符合SAML规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解SAML规范即可

UUMS和SSO

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

开源单点登录框架CAS学习一 —— CAS的架构

自闭症网瘾萝莉.ら 提交于 2019-11-28 20:08:03
系统组件 CAS服务器与客户端组成CAS系统架构的两大部分,两者之间通过各种协议进行通讯(CAS、SAML、OAuth) CAS服务器 是基于Spring Framework的Java Servlet,负责用户认证与客户端接入过程的凭证签发与验证。用户登录成功后,服务器会创建一个SSO会话并签发TGT(ticket-granting ticket:签名凭证)。当用户请求通过浏览器重定向发送到服务器时,客户端提交TGT作为令牌,服务器将再签发一个ST(service ticket:服务凭证)。这个ST接下来会用于与服务器的后端通信验证。这些交互的详细细节可参见CAS协议文档。 CAS客户端 CAS客户端在术语层面通常有两层意思。一是指任一启用了CAS并可与服务器之间按支持的协议通讯的应用。另一是指为了与服务器进行通讯,而被集成进各种软件平台和应用的软件包。CAS客户端支持如下各种平台与产品: 平台: Apache httpd Server ( mod_auth_cas module ) Java ( Java CAS Client ) .NET( .NET CAS Client ) PHP ( PHP CAS ) Perl(PerlCAS) Python (pycas) Ruby (rubycas-client) 应用: Outlook Web应用 (ClearPass + .NET

单点登录原理

ぃ、小莉子 提交于 2019-11-28 15:29:52
什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一, SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 2、单点登录的好处 使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗 在面向服务的架构中,服务和服务之间,程序和程序之间的通讯大量存在,服务之间的安全认证是SOA应用的难点之一,应此建立“单点登录”的系统体系能够大大简化SOA的安全问题,提高服务之间的合作效率。 3、单点登录的运行原理 单点登录的运行原理以下分两点来说明 3.1 简单的运行机制 当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录【1】 根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据ticket【2】 用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性 如果通过效验,用户就可以在不用再次登录的情况下访问其它应用系统 3.2 复杂的运行机制 所有应用系统共享一个身份认证系统,统一的认证系统是SSO的前提之一。