精华内容
下载资源
问答
  • 单点登录大致流程: 第一步:用户访问第三方系统。第三方根据局部会话判断用户是否登录此系统,没有登录,则重定向到认证系统去进行认证操作。 第二步:重定向到认证系统,根据全局会话判断用户是否登录,未登录则...
  • 统一门户单点登录对接第三方开发方案 统一门户系统对接第三方采用CAS单点登录方案开发。具体流程参考如下文字说明和流程图,后续开发细节根据实际开发情况研讨和跟进。 单点登录大致流程: 第一步:用户访问第三方...

    统一门户单点登录对接第三方开发方案

    公司最近有对办公各个平台进行统一门户的需求,其中很重要的技术点就是单点登录,故有此文。

    单点登录大致流程:
    第一步:用户访问第三方系统。第三方根据局部会话判断用户是否登录此系统,没有登录,则重定向到认证系统去进行认证操作。
    第二步:重定向到认证系统,根据全局会话判断用户是否登录,未登录则跳转登录界面,用户输入用户名密码。认证系统将用户登录的信息记录到服务器的session中。
    第三步:认证系统给浏览器发送一个ticket凭证,浏览器将凭证交给第三方系统,第三方系统则拿着浏览器交给他的凭证ticket去认证系统验证凭证ticket是否有效。凭证ticket若是有效,将登录信息保存第三方系统的session,并告知第三方系统,用户通过认证。
    第四步:用户通过认证,浏览器与网站之间进行正常的访问。
    第五步:当用户再次访问第三方系统,由于第三方系统的session中有登录信息,所以就不用经过认证系统认证,就可以直接访问第三方系统了。
    第六步:当用户再去访问其他应用系统时,浏览器会带着凭证ticket过去,该应用系统到认证系统验证凭证,凭证ticket若是有效,将用户信息保存到该系统的session,并告知该系统,用户通过认证。用户通过认证,浏览器与网站之间进行正常的访问。
    流程图:

    在这里插入图片描述

    展开全文
  • CASCAS协议原理应用场景传统方式及弊端CAS协议原理概念解释组成部分CAS基本流程CAS协议的具体流程及细节建立单点登录,首次访问豆瓣第二次访问豆瓣读书首次访问豆瓣电影单点登出(SLO)代码实现(基于Flask) ...

    CAS协议原理

    应用场景

    • 豆瓣公司旗下的有多种服务,豆瓣用户需要一次登录就实现豆瓣旗下所有服务的登录。豆瓣电影、豆瓣读书、豆瓣音乐、豆瓣同城等。
      在这里插入图片描述

    以上场景即为单点登录。

    传统方式及弊端

    • 将 userinfo 写入Cookie,首先不安全,最重要的是 无法跨域 (cookie是和域绑定的)。

    CAS协议就是为实现单点登录而诞生的。

    CAS协议原理

    • Yale 大学发起的一个开源项目(基于Java)
    • CAS Server 为独立部署的 Web 应用
    • CAS Client 支持多种客户端

    概念解释

    • 单点登录(Single sign-on, SSO):在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
    • 统一用户:多个应用共用一套帐号体系,统一用户是 单点登录 的实现前提。一般,储存用户的公有属性在中央认证服务器。
    • 局部会话(Application Session):业务系统服务器(豆瓣读书、电影等服务器)与 浏览器 的会话。
    • 全局会话(CAS Session):CAS认证服务器(用户中心)与 浏览器 的会话。
    • Service:业务系统的路由,提前在 CAS认证服务器 注册过。
    • Ticket Granted Ticket,TGT:大令牌,记录某用户全局会话的状态。
    • CASTGC,TGC:Ticket Granting Cookie,TGT记录在Cookie中的内容,一般是TGT的id。
    • Service Ticket,ST:小令牌,用来向CAS认证服务器(用户中心)兑换用户信息。一般,限制使用次数或有效期。

    组成部分

    • CAS Server:主要负责对用户的认证工作。(用户中心)
    • CAS Client :负责处理对客户端受保护资源的访问请求,登录时,重定向到 CAS Server。(各业务系统,豆瓣读书、电影等)

    CAS基本流程

    在这里插入图片描述

    • A 访问服务:用户浏览器请求访问 业务系统(读书、电影等)。
    • B 定向认证:业务系统 引导浏览器 重定向 到CAS认证服务器(用户中心)。
    • C 用户登录:用户在 用户中心 完成登录,全局会话记录此次登陆。
    • D 发放票据:CAS服务器产生Service Ticket,并 重定向 到业务系统。
    • E 兑换信息:业务系统用Service Ticket 向CAS服务器 兑换用户信息。

    CAS协议的具体流程及细节

    建立单点登录,首次访问豆瓣

    在这里插入图片描述

    • A: 浏览器请求访问 豆瓣读书。
    • B: 豆瓣读书 引导浏览器 重定向 到 豆瓣用户中心。
      • 携带 Service参数
    • C: 在 用户中心 完成登录,建立全局会话。
      • 验证 Service
      • 生成TGT
      • 在浏览器记录CASTGC,即TGT.id,即 建立全局会话
    • D: CAS服务器产生Service Ticket,并 重定向 到业务系统。
      • 用TGT 签发 ST
      • 重定向到 Service代表的 豆瓣读书 路由
      • 并携带 ST
    • E: 豆瓣读书 用Service Ticket 向 用户中心服务器 兑换用户信息。
      • 豆瓣读书服务器获取 ST
      • 豆瓣读书在后台用 ST 向 用户中心服务器 兑换用户信息,官方使用xml传输信息(本文用JSON代替)
      • 兑换成功后,豆瓣读书 用Session或Cookie 记录用户的登录状态,即 建立局部会话。
    第二次访问豆瓣读书

    在这里插入图片描述

    • A: 请求携带Session,豆瓣读书判断局部会话有效,即完成登录。
    首次访问豆瓣电影

    在这里插入图片描述

    与首次访问豆瓣读书的流程一样

    • B: 豆瓣用户中心服务器 验证TGT,判断 全局会话是否存在。
      • 请求 携带 存有CASTGC的Cookie
      • 用CASTGC验证TGT,通过后,即可完成用户登录
      • 接着签发ST

    以上只是单点登录的流程,完整的单点登录还应该支持单点登出(Single Logout, SLO)

    单点登出(SLO)

    CAS项目及协议支持单点登出,但是并未给出详细的流程图,作者是根据CAS2.x与CAS3.x的指南文档进行归纳总结得出结论。

    在这里插入图片描述

    • A: 浏览器请求 豆瓣读书的 /logout
      • 豆瓣读书 删除Session相关内容,即清除局部会话。
    • B: 豆瓣读书 引导浏览器重定向到 用户中心的 /logout
      • 携带Cookie中的CASTGC
    • C: 清除全局会话
      • 删除 Cookie中的CASTGC
      • 注销 TGC对应的TGT
    • D: 认证服务器 通知所有已登录的业务系统清除局部会话
      • 找到TGT签发的ST,即所有已登录的业务系统(豆瓣电影、音乐)
      • 在后台,通知 所有有关的业务系统(Fire & Forget),携带ST
    • E: 业务系统 接到通知后 清除局部会话
      • 用ST 清除 对应的Session,即 清除对应的局部会话

    代码实现(基于Flask)

    数据库

    CAS认证服务器

    • User:用户表
      • username:用户名
      • password:密码
    • Service:业务系统的服务接入表
      • url:Service的业务路由
      • logout_url:Service的退出路由
    • TGT:大令牌表
      • tgt:ticket_granted_ticket, 大令牌
      • user_id:User.id
      • expires_in:过期时间
      • validate:是否有效(-1:无效,1:有效)
    • ST:小令牌表
      • st:service_ticket, 小令牌
      • user_id:User.id
      • tgt_id:TGT.id,由哪个TGT签发
      • service_id:Service.id
      • used:使用次数,一般限制使用次数
      • expires_in:过期时间
      • validate:是否有效(-1:无效,1:有效)

    Client服务器

    • Info:信息表,代表该服务器的用户资源
      • username:用户名
      • info:资源
    • ST:小令牌表,业务系统记录ST的状态,用于根据ST删除对应的Session
      • st:service_ticket, 小令牌
      • validate:是否有效(-1:无效,1:有效)

    关键点与扩展

    • CAS认证服务器需要验证Service的有效性(提前注册),避免被攻击。
    • TGT只是代表用户登录,不对应Service。而ST对应Service。
    • SLO,业务系统收到CAS认证服务器通知后,根据ST来删除对应的Session,本文只是在 Client数据库 注销了对应的ST。因为,每次登陆时,会验证ST有效性。
    • SLO的业务系统可以根据具体业务需要不支持清除局部会话,比如邮件等业务。
    • Flask的原生session机制是存储在浏览器,而不是通常session存储在服务器,可以利用flask_session重构session存储机制,或 定制flask的session模块代码。

    项目代码

    参考资料

    展开全文
  • 关于系统之间的单点登陆对接

    千次阅读 2020-04-08 22:44:51
    这里说的单点登陆,不是...现在想让这两个产品进行单点登陆,一般是这A系统需要打开到B系统做一些操作,或者调用B系统的一些接口等操作.基于开发成本,一般不会集成一个单点登陆中心.而是用两边的sessionId共享来解决. ...

    这里说的单点登陆,不是正规的那种有个中间服务做的,(如CAS).差不多是一种假的单点登陆.

    但是在工作需求有时候会遇到, 尤其是做定制化产品. 一个客户买了我们公司一个产品, 同时买了另外一个公司的产品.现在想让这两个产品进行单点登陆,一般是这A系统需要打开到B系统做一些操作,或者调用B系统的一些接口等操作.基于开发成本,一般不会集成一个单点登陆中心.而是用两边的sessionId共享来解决.

    方案:

    1.在A系统需要调用B系统的界面时,先调用B系统的接口,把A系统中的当前用户信息传过去

    2.B系统接口获取到用户信息, 在B系统中进行登陆操作.(此处省去用户信息同步的逻辑,按需求开发)

    3.B系统完成登陆后,把该用户在B系统的sessionId.返回给A系统

    4.A系统接收到来自B系统的sessionId, 作为一个token,在缓存/内存中也存下来,例如用一个map结构. key:A系统中的sessionId, value:B系统返回的sessionId(token).

    5.随后A系统调用B系统的任何请求和界面,都带上token.

    6.B系统中则根据系统自身的认证拦截来调整逻辑,实现免登陆

    7.A系统用户登出时, 同时调用B系统. 作登出操作

    以上是大概的流程.具体代码后面再补充

     

     

    展开全文
  • 单点登录 - SSO 现阶段互联网中拥有着大量的应用系统,极大地提升了大家的工作效率与生活质量。然而大量的应用系统拥有着不同的认证与授权模式,这使得用户需要大量记忆用户名与口令,并多次登录和注册所需要使用...

    单点登录 - SSO

         现阶段互联网中拥有着大量的应用系统,极大地提升了大家的工作效率与生活质量。然而大量的应用系统拥有着不同的认证与授权模式,这使得用户需要大量记忆用户名与口令,并多次登录和注册所需要使用的系统,这使得用户的使用体验非常的糟糕。因此,单点登录系统(SSO,Single Sign-On)应运而生。

    单点登录 - SSO
    单点登录 - SSO

     

    常见的应用有两种情况:

    • 在一个单位中,需要使用多个功能不同的系统应用,比如企业会有专门的财务系统,销售的CRM系统,人事的OA、邮箱系统,如果每个系统都用独立的账号认证体系,会给员工带来很大困扰,同时不方便管理。所以需要设计一种统一登录的解决方案。
    • 现在是App爆炸的时代,如果每个App都需要独立的登陆账号和密码,肯定不方便用户管理,所以需要设计一种可多平台授权登陆的解决方法,比如:我登陆淘宝时使用支付宝授权认证登陆,使用微博时使用微信授权登陆。

    SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。今天软盟网小编就上述的两种情况跟大家一起探索当中的流程区别和应用实践。

     

    OAuth2.0

    OAuth 2.0是一个关于授权的开放网络协议,它允许用户让第三方网站访问该用户在某一网站上存储的信息和资源,如账户信息,照片,联系人等,而不需要给第三方网站提供某一网站上的账户和密码。

    OAuth2.0
    OAuth2.0

    OAuth授权流程如下所述:

    1、用户打开客户端,客户端要求授权。

    2、用户同意客户端授权。

    3、客户端使用上一步提供的授权,向服务器授权层申请令牌。

    4、授权服务器对客户端进行认证后,同意发放令牌。

    5、客户端使用令牌,向资源服务器申请资源。

    6、资源服务器确认令牌,向客户端开放资源。

    OAuth 场景说明:

    比如小编之前在碎片时间多是使用头条来获取最新的信息资讯,最近了解抖音很火,就下载了抖音,选择登录注册页面时可以使用头条作为登录的授权

    5分钟明了单点登录SSO、OAuth、LDAP、CAS的流程与应用
    5分钟明了单点登录SSO、OAuth、LDAP、CAS的流程与应用

     

    多平台登录多用于多个合作企业间通过互联网相互协助验证用户的身份,电商网站广泛使用社交网站的账号进行多平台登录,可以起到客户引流、降低首次购买门槛、营销跟踪等效果。

    LDAP

    LDAP是一种基于轻量目录访问协议,全称是Lightweight Directory Access Protocol,是由一个为查询、浏览和搜索而优化的数据库构成,它成树状结构组织数据,类似文件目录一样。

    LDAP单点登录认证主要是改变原有的认证策略,使得需要的软件都通过LDAP服务器进行认证,在统一身份认证后,用户的所有信息都存储在AD Server中,终端用户在需要使用公司内部服务的时候,都需要通过AD服务器进行认证。

    整个LDAP登录流程由以下4个步骤组成:

    1、连接到LDAP服务器。

    2、绑定到LDAP服务器。

    3、在LDAP服务器上执行所需要的操作。

    4、释放LDAP服务器的连接。

    LDAP场景说明:

    企业内部需要认证的服务很多,员工需要记住很多的密码, 即使对这些服务进行相同的密码设置,也存在很大的安全隐患。比如我们公司,有jira、confulence、gitlab、北森等系统,

    5分钟明了单点登录SSO、OAuth、LDAP、CAS的流程与应用
    5分钟明了单点登录SSO、OAuth、LDAP、CAS的流程与应用

    使用场景是提高用户在同一个企业的多个站点(域名)之间的无缝浏览体验,例如企业内部可能有多个处理不同业务的系统(OA系统,邮箱,财务等),用户只要在一个系统上保持登录状态,即可无需再次登录访问其他内部系统。

    CAS

    SSO 仅仅是一种架构,一种设计,而 CAS 则是实现 SSO 的一种手段。两者是抽象与具体的关系。

    CAS即Central Authentication Service模型(中央式认证服务),该协议是为应用提供可信身份认证的单点登录系统,最初是由耶鲁大学开发的。CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。

    CAS
    CAS

    CAS的详细流程如图所示:

    CAS的详细流程
    CAS的详细流程

     

    总结

    今天介绍的几种单点登录系统,均具有较高的安全性,都能较好地完成单点登录系统的需求。

    • OAuth协议能广泛应用于互联网中,基于大企业的巨大用户量,能减少小网站的注册推广成本,并且能做到更加便捷的资源共享。
    • LDAP协议适用于企业用户使用,通过LDAP协议,能较好地管理员工在公司各系统之间的授权与访问。
    • CAS模型,作为权威机构开发的系统,具有很好的兼容性与安全性,广泛应用于各大高校等大型组织,能很好地完成大量系统的对接与大量人员的使用。

    可根据自身需求,选择不同的单点登录系统,来满足目标用户的使用。

    来自:网络。整理:www.ruanally.com

    展开全文
  • 单点登录系统(流程简介)

    千次阅读 2018-06-16 16:33:25
    一、概述单点登录系统SSO(Single Sign On)是在多个应用系统中,用户只需要登录一次就可以访问相互信任的其它系统二、系统简介流程:1.用户访问应用一2.应用一检查用户登录,如果用户没有,验证不通过,应用一就带着...
  • 一、系统登录机制 1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次...
  • 单点登录demo

    2017-04-28 17:11:10
    单点登录
  • CAS单点登录-微信企业号登录(二十)背景在企业号得开发中,无法避免登录的问题,多个系统前端交互可能会设计到单点登录,若多系统已单点登录,那sso如何支持呢?概述查看企业号开发者接口文档我们看完文档后总结...
  • 单点登录及权限

    千次阅读 2019-06-28 01:08:32
    #单点登录及权限 分布式系统要实现单点登录,通常将认证系统独立抽取出来,并且将用户身份信息存储在单独的存储介质中,考虑到性能需求,通常存储在redis中。 本项目使用Spring security Oauth2 #Oauth2 这是一个...
  • SSO单点登录 第三方授权(QQ、微信登录) Oauth2认证流程 Oauth2认证解决方案 Oauth2授权模式 对称/非对称加密 公钥私钥 JWT令牌 OAuth对接微服务 SpringSecurity权限控制
  • 用CAS实现框架的SSO单点登录.详细介绍操作流程并配有代码截图.
  • 单点登录系统原理与接入

    万次阅读 多人点赞 2018-03-12 16:15:18
    以下是个人查询资料的借鉴及对接某大型互联网公司单点系统后的一个总结和理解一、首先了解下单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协...
  • SSO单点登录Java实现实例

    千次阅读 多人点赞 2021-02-05 14:43:44
    本文主要讲解,基于令牌token方式实现,SpringBoot工程下的SSO单点登录整合代码实例Demo,文末附源码地址。 1.环境准备 SSO认证中心服务( www.mysso.com) 客户端1(www.myclient1.com) 客户端2...
  • sso单点登录+第三方登录+支付对接 使用jwt完成sso单点登录 第一种单点登录 第二种单点登录 改进 第三种单点登录 优缺点 sesisonid弊端 实现方案 代码实现 整合第三方登录 上述流程其实就是第三方登录/支付人们定义的...
  • SpringBoot 简单实现仿CAS单点登录系统

    千次阅读 2019-05-28 17:59:03
    SpringBoot 简单实现仿CAS单点登录系统参考开源项目介绍实现原理大致如下:单点登录Demo单点登录Demo介绍单点登录单点授权验证单点退出 参考开源项目介绍 最近看了一下杰哥开源的项目 ...
  • 这个是客户端地址,也就是你对接cas的客户端的地址,这里只需要到ip+端口就可以,其实如果你看了cas-core的源码就知道这个的作用了,主要是在登录拦截之后会进行转化,也就是将你输入的客户端ip和端口转化为这个...
  • SSO单点登录

    千次阅读 2020-12-31 18:49:35
    单点登录 为什么要使用单点登录系统? 以前实现的登录和注册是在同一个tomcat内部完成,我们现在的系统架构是每一个系统都是由一个团队进行维护,每个系统都是单独部署运行一个单独的tomcat,所以,不能将用户的...
  • 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以
  • php cas单点登录

    千次阅读 2016-07-14 22:59:06
    基础模式 SSO 访问流程主要有以下步骤: 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。 定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。 用户认证:用户身份认证。 发放票据: SSO ...
  • CAS单点登录-Service配置(七)

    万次阅读 2017-09-18 13:29:53
    CAS单点登录-Service配置(七) 本章重点对本地json的配置进行讲解 简介 cas客户端接入称之为service,必须经过cas的允许才能进行登录,当然不同的客户端可以做不同的事情,其中包括: 自定义主题(各客户端...
  • SSO(单点登录)技术漫谈

    千次阅读 2021-01-10 23:30:33
    在日常工作中,人类为了能进入各个系统,必须得通过帐号和密码进行登录验证(身份验证)后,才能获取到跟自己身份相符的信息。那么问题来了,这么多的系统,每个系统都搞一个密码的话,大多数用户都要记忆不少于10个...
  • 前后端项目对接流程梳理

    万次阅读 2017-10-31 10:43:15
    掌握一个电商网站从设计到上线的整个过程所涉及的流程 具备独立开发一个前端项目的能力 网址 http://www.happymmall.com 架构设计 前后端完全分离 分层架构 模块化 技术选型 HTMl CSS JS jQery 辅助工具 ...
  • ​ 小伙伴们,你们好呀!我是老寇!废话不多说,跟我一起学习单点登录SSO 1.运行效果图(b站-地址) springsecurity单点登录
  • 阅读目录前言技术背景问题描述问题分析解决方案解决方案1:通过统一域名和DNS解决解决方案2:通过应用程序端...  在单位内架设的Web系统,如果使用CAS作为单点登录方案,往往会遇到从单位的不同网络(例如双网隔离...
  • CAS单点登录-cas-client(九) 当我们把单点系统搭建好了,或者客户已经提供好了单点登录服务,往往会想,如何集成cas、如何能在业务系统上用cas(本章只讲cas协议,oauth2、SAML等后续) 但情况往往是这样的: ...
  • 4.从开发到上线的流程上注意。 5.门店问题 1.推接口接口代码的逻辑参考 推接口的入参封装按照业务逻辑都是一样的。可以仿照送餐的逻辑。需要的信息包括: a.订单信息。包括多少钱,订单号,支付...
  • 跨域单点登录: 整体来讲有两种情况:1.同一个父域之下的子域之间跨域。2.完全不同的域名下的跨域。本文着重讲的是第二种情况。   一、同一个父域之下的子域之间跨域,形式类似于a.same.com与b.same.com之间的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,628
精华内容 10,251
关键字:

单点登录对接流程