• 单点登陆


    1.简介

    SSO:英文全称Single Sign On,单点登陆。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。一般SSO体系中主要角色有三种:User(多个)Web应用(多个)SSO认证中心(一个)

    2. 较流行的实现手段

    单点登陆最有名的开源方案当属CAS,全称为Central Authentication Service即中央认证服务。CAS是由Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法

    除此之外,为了促进业务的进一步发展,必须允许第三方应用接入,由此引申出用户管理的第二个模块:授权登陆。现在流行的授权登陆就是OAuth2.0协议,基本上已经成为事实上的标准,其他私有协议漏洞多,第三方接入也麻烦。

    3. 具体实现

    3.1. CAS

    基础模式 SSO 访问流程主要有以下步骤:

    1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。

    2. 定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。

    3. 用户认证:用户身份认证。

    4. 发放票据: SSO 服务器会产生一个随机的 Service Ticket 

    5. 验证票据: SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问服务。

    6. 传输用户信息: SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。

    下面是 CAS 最基本的协议过程

     

    3.2 Session共享

     

    基于RedisSession共享方案。将Session存储于Redis上,然后将整个系统的全局Cookie Domain设置于顶级域名上,这样SessionID就能在各个子系统间共享。

    缺点:

    1.redis中的session存储对象每个子系统都要存在,导致session使用诸多限制。

    2.跨顶级域名无法处理。

    3.3基于openId的单点登陆

     

    为了保证多终端登陆,每次用户通过用户名/密码登录时,产生一个OpenId保存在Redis里,并且设定过期时间,这样多个终端登录就会有多个OpenId与之对应,不再会存在一个OpenId失效所有终端验证都失效的情况。

  • 相关阅读:
    JSON操作技巧
    我的前端学习历程(转)
    sql指南网址
    using 和try/catch区别和注意点
    【转】StringBuffer的用法与string的区别
    【转】比较page、request、session、application的使用范围
    【转】StringBuilder用法
    【转】.Net高级技术——IDisposable
    【转】.NET快速查找某个类所在的命名空间
    【转】VS2010安装包制作
  • 原文地址:https://www.cnblogs.com/sjp007/p/10489939.html
Copyright © 2020-2023  润新知