2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > php单点登录实现原理实例详解

php单点登录实现原理实例详解

时间:2018-12-09 03:28:56

相关推荐

php单点登录实现原理实例详解

后端开发|php教程

php,登录,原理,单点

后端开发-php教程

微擎整套源码,vscode 命名重构报错,ubuntu u盘 挂载,tomcat 网站目录,sqlite所有记录,网页设计制作招聘北京,sql数据库,ftp服务器 防火墙设置,织梦wap插件破解版,网络前端框架实训报告,爬虫滑块,php 交集,快速seo工具,springboot树状,h1 标签位置,图库网站管理系统,html网页设计教程下载pdf,ecshop整站模板怎么安装,dedecms 后台进不了,ecshop模板页面缓存,a0资产管理系统,android程序设计 pdflzw

邀请码电影源码,ubuntu夸版本更新,下载tomcat9怎么启动,国内爬虫现状,php程序如何变成网页,李伟seo博客lzw

单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作,如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性,因此要点也就以下几个:

简单博客源码,stm32用vscode,ubuntu桌面丢失,tomcat日志生成策略,爬虫代工店铺,php.ini dist,贵州seo网络营销推广,响应式网站建设源码,杰奇模板页面lzw

1、存储信任

2、验证信任

只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。最简单实现SSO的方法就是用Cookie,实现流程如下所示:

不难发现以上的方案是把信任存储在客户端的Cookie里,这种方法虽然实现方便但立马会让人质疑两个问题:

1、Cookie不安全

2、不能跨域免登

对于第一个问题一般都是通过加密Cookie来处理,第二个问题是硬伤,其实这种方案的思路的就是要把这个信任关系存储在客户端,要实现这个也不一定只能用Cookie,用flash也能解决,flash的Shared Object API就提供了存储能力。

一般说来,大型系统会采取在服务端存储信任关系的做法,实现流程如下所示:

以上方案就是要把信任关系存储在单独的SSO系统(暂且这么称呼它)里,说起来只是简单地从客户端移到了服务端,但其中几个问题需要重点解决:

1、如何高效存储大量临时性的信任数据

2、如何防止信息传递过程被篡改

3、如何让SSO系统信任登录系统和免登系统

对于第一个问题,一般可以采用类似与memcached的分布式缓存的方案,既能提供可扩展数据量的机制,也能提供高效访问。对于第二个问题,一般采取数字签名的方法,要么通过数字证书签名,要么通过像md5的方式,这就需要SSO系统返回免登URL的时候对需验证的参数进行md5加密,并带上token一起返回,最后需免登的系统进行验证信任关系的时候,需把这个token传给SSO系统,SSO系统通过对token的验证就可以辨别信息是否被改过。对于最后一个问题,可以通过白名单来处理,说简单点只有在白名单上的系统才能请求生产信任关系,同理只有在白名单上的系统才能被免登录。

更多相关问题请访问PHP中文网:PHP视频教学

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。