`

单点登录2

阅读更多

SSO的实现一般是会有一个SSO Server,也会叫认证中心,同时也会有被认证的系统,如OA系统、采购系统等,他们就相当于SSO Server的client。

为了更形象体现SSO,我写的SSO是有三个工程:一个SSO Server端口为8081,一个OA系统端口为8082,一个采购系统端口为8083。如图:

 流程介绍

在整个SSO流程当,有两个流程非常重要,第一个是用户没有登录系统到登录系统的过程;第二是用户在一个系统当中已经登录(例如在OA系统中登录 了),但又想进入另一个系统(例如进入PRO系统)的过程,如果把这两个过程搞定了,那么SSO也就搞定了。我画了两幅图来说明这两个过程。

先看用户没有登录系统到登录系统的过程,如图:

1:用户通过URL访问OA系统。

 2:在OA系统中的filter发现这个URL没有ticket(你暂且就把ticket看做是门票),此时就会跳转到SSO Server。

 3:SSO Server中的filter发现该客户端中的cookie中没有相应信息,也即是一个没有登录的用户,那么会跳转到登录页面。

 4:用户在登录页面填写相应信息,然后通过post方式提交到SSO Server中。

 5:SSO Server会校验用户信息(我为了快,我的校验方式就是要用户名为:cloud,同时密码为:cloud),同时在cookie中放username。

 6:将生成ticket和username放到JVMCache中,在实际项目应该放到Memcached中,它的用处等下分析。

7,8:就是在用户访问OA系统的URL基础上加上了一个ticket参数,这样跳转到OA系统。

(此时进入OA系统时,filter发现URL是带ticket的,则filter会根据带过来的ticket并通过HttpClient的形式去调用SSO Server中的TicektServlet,这样就会返回用户名,其实这个用户名就是从JVMCache拿到的,同时马上将这个ticket从JVMCache中移除,这样保证一个ticket只会用一次,然后把返回的用户名放到session中)

 9:session中有了用户名,说明用户登录成功了,则会去本应该返问的servlet。

10,11:将OA系统返回的视图给用户。

第二过程,用户已经登录成功了,但要访问另一个系统,如图:

 1:用户通过URL访问PRO系统。

  2:在PRO系统中的filter发现这个URL没有ticket,此时就会跳转到SSO Server。此时,由于用户登录了,所以cookie中有相应的信息(例如用户名),此时SSO Server中的filter会生成一个ticket。

 3:将生成的ticket和username放到JVMCache中。

 4:就是在用户访问PRO系统的URL基础上加上了一个ticket参数,这样跳转到PRO系统。

(此时进入PRO系统时,filter发现URL是带ticket的,则filter会根据带过来的ticket并通过HttpClient的形式去调用SSO Server中的TicektServlet,这样就会返回用户名,其实这个用户名就是从JVMCache拿到的,同时马上将这个ticket从JVMCache中移除,这样保证一个ticket只会用一次,然后把返回的用户名放到session中)

 5:session中有了用户名,说明用户登录成功了,则会去本应该返问的servlet。

5,7:将PRO系统返回的视图给用户。

分享到:
评论

相关推荐

    IBM行业软件解决方案—税务—单点登录V2.doc

    IBM行业软件解决方案—税务—单点登录V2.doc

    exchange邮件系统单点登录整合

    ### Exchange邮件系统单点登录整合知识点 #### 一、单点登录(Single Sign-On, SSO)概述 单点登录是一种认证机制,允许用户通过一次身份验证就能访问多个应用程序和服务,而无需重复登录。这种机制提高了用户体验...

    用友U8开发单点登录方案

    用友U8开发单点登录方案 本文主要介绍了用友U8开发单点登录方案的设计背景、应用场景、实现方式和技术细节。单点登录方案的设计目标是实现非U8系统与U8系统的集成,共享用户名和密码,实现单点登录。 设计背景 ...

    单点登录单点登录单点登录

    单点登录(Single Sign-On,简称SSO)是一种身份验证技术,它允许用户在通过一次登录验证后,无须再次输入凭证即可访问多个相互关联的应用系统。这一技术大大提升了用户体验,减少了用户记忆和输入多个密码的负担,...

    第8部分:单点登录服务接口规范.docx

    本规范规定了单点登录服务的逻辑,包括单点登录服务的架构、单点登录票据的生成和验证、单点登录会话的管理等,以确保单点登录服务的安全性和可靠性。 6. 接口定义 本规范规定了单点登录服务接口的定义,包括单点...

    JEECG 单点登录说明文档

    JEECG智能开发平台的单点登录(SSO)功能是通过集成Kisso实现的,Kisso是一个轻量级Java权限框架,它利用加密会话cookie机制来实现单点登录服务。单点登录是一种用户登录认证方法,允许用户在多个应用系统中,只通过...

    Jeecg配置单点登录 登录验证完整代码

    在本场景中,我们关注的是Jeecg如何配置单点登录(Single Sign-On,简称SSO)以及相关的登录验证代码。单点登录是一种网络应用架构中的安全机制,允许用户在一次登录后,就能访问多个相互关联的应用系统,而无需再次...

    sso单点登录ppt.ppt

    sso单点登录ppt.ppt

    NC6.5单点登录源码

    NC6.5单点登录,支持单点打开首页以及待办事项直接打开NC单据

    金蝶EAS portal单点登录到SHR文档

    金蝶EAS portal单点登录到SHR文档 单点登录(Single Sign-On,SSO)是指用户只需要输入一次用户名和密码,即可访问多个相关的应用系统,而不需要再次输入登录信息。金蝶EAS portal单点登录到SHR文档提供了详细的...

    单点登录学习

    单点登录学习 单点登录是一种常用的身份验证机制,它允许用户使用一个用户名和密码来访问多个相关的应用系统。单点登录系统的主要组件包括身份验证服务器、应用服务器和客户端。身份验证服务器负责验证用户的身份,...

    C#.net实现单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络用户身份验证机制,允许用户在一个系统或应用中登录后,无须再次输入凭证就能访问多个相互信任的系统或应用。在IT行业中,C#.NET框架提供了丰富的功能来实现跨域单点...

    漂亮的单点登录网页模版

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一个系统上登录后,无需再次提供凭证就能访问多个相互信任的系统。它简化了用户管理和提升了用户体验,因为用户不再需要记住多个密码或者在...

    JAVA单点登录的实现

    1,通过session会话来判断 2,实现单点登录

    跨域单点登录

    单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当中。本文从业务的角度分析了单点登录的需求和应用领域;从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现...

    单点登录系统(CS程序)

    基于portal的单点登录系统,系统由CS服务端和BS服务系统组成,一般用户可以通过IE来访问单点登录系统,附件内包含了readme.txt有本系统说明。 备注: 这里只有CS程序及说明,BS程序可以找资源名称:单点登录系统...

    springboot+oauth2单点登录.rar

    springboot2.0+oauth搭建的SSO单点登录的源码,仅仅实现登录功能,无需积分即可下载,如有问题请留言

    powerBI单点登录

    适用于门户开发,此功能只限于IE浏览器可用,使用的是ActiceXobject函数,实现单点登录

Global site tag (gtag.js) - Google Analytics