个人经验,简单实现单点登录

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分;

                                                    图一

图一描述的是用户首次登陆步骤:

1.用户试图访问服务器A的服务器资源,系统发现用户未登录,跳转至sso认证中心,并将自己的项目的地址作为参数(参数我们这边是用SMAL格式的数据进行交互)

2.sso认证中心发现用户未登录,将用户引导至统一的登录页面

3.用户输入用户认证信息,向sso服务器发起认证请求

4.SSO认证中心认证用户信息是否准确,通过认证则保存本地sso_session,再由step2中获取的项目A地址,重定向至项目A并附带用户的一些基本信息

5.项目A从sso返回的一些用户信息中判断用户是否在项目A中存在,如存在则登陆成功至首页,并保存sp_session会话。

                                                      图2

图2描述的是客户登陆过系统A,然后登陆系统B和C的流程

1.用户试图访问服务器B/C的服务器资源,系统发现用户未登录,跳转至sso认证中心,并将自己的项目的地址作为参数(参数我们这边是用SAML格式的数据进行交互)

2.sso认证中心发现该用户已经登录过(由sso服务器存在的sso_seesion做判定,其他方式也可以),直接重定向至项目B/C并附带用户的一些基本信息,直接登陆,并保存会话sp_session。

全程靠重定向实现,用户零感觉~~!

 图3描述是用户注销系统A,同时注销系统B和C,实现单点注销

1.客户通过服务器A发起退出系统请求,系统将注销请求重定向至sso服务器

2.sso服务器首先注销掉本地sso_session,然后通过重定向,调用已登陆系统(B和C)的注销接口,清除系统B和C的本地sp_session,来实现单点注销。

以上均为本人在开发项目中学到的,有什么错误的地方,请大家多多指教!!!其中SAML是一种xml语言可用作保存参数及敏感信息用。

如文章对你有帮助,请打开支付宝领取红包,以对我的鼓励,哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值