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

资源魔 42 0

单点登录SSO(Single Sign On)说患上简略点就是正在一个多零碎共存的环境下,用户正在一处登录后,就不必正在其余零碎中登录,也就是用户的一次登录能失去其余一切零碎的信赖。单点登录正在年夜型网站里应用患上十分频仍,例如像阿里巴巴这样的网站,正在网站的面前是成千盈百的子零碎,用户一次操作或买卖可能触及到几十个子零碎的合作,假如每一个子零碎都需求用户认证,不只用户会疯掉,各子零碎也会为这类反复认证受权的逻辑搞疯掉。完成单点登录说到底就是要处理若何孕育发生以及存储阿谁信赖,再就是其余零碎若何验证这个信赖的无效性,因而要点也就如下几个:

一、存储信赖

二、验证信赖

只需处理了以上的成绩,达到了扫尾讲患上成果就能够说是SSO。最简略完成SSO的办法就是用Cookie,完成流程以下所示:

登录.gif

没有难发现以上的计划是把信赖存储正在客户真个Cookie里,这类办法尽管完成不便但立马会让人质疑两个成绩:

一、Cookie没有平安

二、不克不及跨域免登

关于第一个成绩普通都是经过加密Cookie来解决,第二个成绩是硬伤,其实这类计划的思绪的就是要把这个信赖关系存储正在客户端,要完成这个也纷歧定只能用Cookie,用flash也能处理,flash的Shared Object API就提供了存储才能。

普通说来,年夜型零碎会采取正在效劳端存储信赖关系的做法,完成流程以下所示:

登录01.gif

以上计划就是要把信赖关系存储正在独自的SSO零碎(暂且这么称说它)里,提及来只是简略地从客户端移到了效劳端,但此中几个成绩需求重点处理:

一、若何高效存储年夜量暂时性的信赖数据

二、若何避免信息通报进程被窜改

三、若何让SSO零碎信赖登录零碎以及免登零碎

关于第一个成绩,普通能够采纳相似与memcached的散布式缓存的计划,既能提供可扩大数据量的机制,也能提供高效拜访。关于第二个成绩,普通采取数字署名的办法,要末经过数字证书署名,要末经过像md5的形式,这就需求SSO零碎前往免登URL的时分对需验证的参数进行md5加密,并带上token一同前往,最初需免登的零碎进行验证信赖关系的时分,需把这个token传给SSO零碎,SSO零碎经过对token的验证就能够分别信息能否被悔改。关于最初一个成绩,能够经过白名单来解决,说简略点只有正在白名单上的零碎能力申请消费信赖关系,同理只有正在白名单上的零碎能力被免登录。

更多相干成绩请拜访PHP中文网:PHP视频教程

以上就是php单点登录完成原理实例详解的具体内容,更多请存眷资源魔其它相干文章!

标签: php 登录 php开发教程 php开发资料 php开发自学 原理 单点

抱歉,评论功能暂时关闭!