摘要:概念英文全称,单点登录。登录如上述流程图一致。系统和系统使用认证登录。退出上图,表示的是从某一个系统退出的流程图。与的关系如果企业有多个管理系统,现由原来的每个系统都有一个登录,调整为统一登录认证。
概念
SSO 英文全称 Single Sign On,单点登录。
在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。
比如:淘宝网(www.taobao.com),天猫网(www.tmall.com),聚划算(ju.taobao.com),飞猪网(www.fliggy.com)等,这些都是阿里巴巴集团的网站。在这些网站中,我们在其中一个网站登录了,再访问其他的网站时,就无需再进行登录,这就是 SSO 的主要用途。
好处 用户角度用户能够做到一次登录多次使用,无需记录多套用户名和密码,省心。
系统管理员角度管理员只需维护好一个统一的账号中心就可以了,方便。
新系统开发角度新系统开发时只需直接对接统一的账号中心即可,简化开发流程,省时。
技术实现 流程图 流程介绍如果没这个介绍,看上图肯定是懵懵的。
系统A和系统B都是前后端分离的,比如前端框架用的 React / Vue / Angular,都是通过 NPM 编译后独立部署的,前后端完全通过HTTP接口的方式进行交互,也有可能前后端项目的域名都不一样。
SSO认证中心不是前后端分离的,就是前端代码和后端代码部署在一个项目中。
为什么用这两种情况呢?
其实就是为了,在流程图上出现这两种情况,这样的清楚了,后期改成任何一种就都清楚了。
试想一下:
三个系统都是前后端分离的情况,流程图应该怎么调整?
三个系统都不是前后端分离的情况,流程图应该怎么调整?
对外接口系统A和系统B:用户退出接口。
SSO 认证中心:用户退出接口和token验证接口。
登录如上述流程图一致。
系统A和系统B:使用token认证登录。
SSO 认证中心:使用会话认证登录。
前后端分离项目,登录使用token进行解决,前端每次请求接口时都必须传递token参数。
退出上图,表示的是从某一个系统退出的流程图。
退出,还可以从SSO认证中心退出,然后调取各个系统的用户退出接口。
当用户再进行操作的时候,就会跳转到SSO的登录界面。
Token 生成方式创建全局会话可以使用session,将session存储到redis中。
令牌的生成可以使用JWT。
PHP JWT参考地址:https://github.com/lcobucci/jwt
当然还可以自定义token的生成方式。
小结讲解了什么是SSO,以及SSO的用途与好处,同时根据流程图一步步进行梳理,基本上就可以实现了。
期间遇到任何问题,都可以关注公众号和我进行交流。
扩展 SSO与OAuth的区别谈到SSO很多人就想到OAuth,也有谈到OAuth想到SSO的,在这里我简单的说一下区别。
通俗的解释,SSO是处理一个公司内的不同应用系统之间的登录问题,比如阿里巴巴旗下有很多应用系统,我们只需要登录一个系统就可以实现不同系统之间的跳转。
OAuth是不同公司遵循的一种授权方案,也是一种授权协议,通常都是由大公司提供,比如腾讯,微博。我们常用的QQ登录,微博登录等,使用OAuth的好处是可以使用其他第三方账号进行登录系统,减少了因用户懒,不愿注册而导致用户流失的风险。
现在一些支付业务也用OAuth,比如微信支付,支付宝支付。
还有一些开放平台也用OAuth,比如百度开放平台,腾讯开放平台。
SSO与RBAC的关系如果企业有多个管理系统,现由原来的每个系统都有一个登录,调整为统一登录认证。
那么每个管理系统都有权限控制,吸取统一登录认证的经验,我们也可以做一套统一的RBAC权限认证。
推荐阅读系统的讲解 - PHP WEB 安全防御
系统的讲解 - PHP 缓存技术
系统的讲解 - PHP 接口签名验证
系统的讲解 - PHP 浮点数高精度运算
本文欢迎转发,转发请注明作者和出处,谢谢!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31431.html
摘要:本章主要讲解的是单点登录系统的概述部分。单点登录单点登录顾名思义就是从一个系统进行登录操作,就可以访问其他附近的系统。单点登录避免了用户重复的登录过程,在整个核心业务中起到了一个基层的辅助作用。 本项目主要讲解的是单点登录系统的原理及其实现。 本章主要讲解的是单点登录系统的概述部分。 单点登录 单点登录顾名思义就是从一个系统进行登录操作,就可以访问其他附近的系统。单点登录避免了用户重...
摘要:本章主要讲解的是同域下单点登录分析。若登录失败,则返回原来的登录页面,并携带原来的,将原始的作为表单的隐藏属性。若没有,则证明该可能已经失效或是伪造的,则向客户端返回空字符串,否则返回查询到的信息。 本项目主要讲解的是单点登录系统的原理及其实现。 相关代码github链接。 本章主要讲解的是同域下单点登录分析。 同域下SSO分析与设计 showImg(https://img-blog...
摘要:此时,用户想要访问系统受限的资源比如说订单功能,订单功能需要登录后才能访问,系统发现用户并没有登录,于是重定向到认证中心,并将自己的地址作为参数。前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:github.com/ZhongFuChen… 在我实习之前我就已经在看单点登录的是什么了,但是实习的时候一直在忙其他的事,所以有几个网站就一直躺在我的收藏夹里边: ...
摘要:此时,用户想要访问系统受限的资源比如说订单功能,订单功能需要登录后才能访问,系统发现用户并没有登录,于是重定向到认证中心,并将自己的地址作为参数。前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:github.com/ZhongFuChen… 在我实习之前我就已经在看单点登录的是什么了,但是实习的时候一直在忙其他的事,所以有几个网站就一直躺在我的收藏夹里边: ...
摘要:此时,用户想要访问系统受限的资源比如说订单功能,订单功能需要登录后才能访问,系统发现用户并没有登录,于是重定向到认证中心,并将自己的地址作为参数。前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:github.com/ZhongFuChen… 在我实习之前我就已经在看单点登录的是什么了,但是实习的时候一直在忙其他的事,所以有几个网站就一直躺在我的收藏夹里边: ...
阅读 2270·2021-09-26 10:21
阅读 2753·2021-09-08 09:36
阅读 3038·2019-08-30 15:56
阅读 932·2019-08-30 12:57
阅读 877·2019-08-26 10:39
阅读 3533·2019-08-23 18:11
阅读 3054·2019-08-23 17:12
阅读 1039·2019-08-23 12:18