php 登录原理,php实现单点登录的原理是什么

php实现单点登录的原理是什么

php实现单点登录的原理是:首先将信任存储在客户端的cookie中;然后进一步验证cookie即可。为了高效存储大量临时性的信任数据,可以采用类似与memcached的分布式缓存的方案。

c71215d8ea50291649b8cf5214599395.png

单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任。

(相关推荐:php培训)

单点登录在大型网站里使用得非常频繁,例如像阿里巴巴这样的网站,在网站的背后是成百上千的子系统,用户一次操作或交易可能涉及到几十个子系统的协作;

如果每个子系统都需要用户认证,不仅用户会疯掉,各子系统也会为这种重复认证授权的逻辑搞疯掉。

实现单点登录说到底就是要解决如何产生和存储那个信任,再就是其他系统如何验证这个信任的有效性;

因此要点也就以下几个:

1、存储信任

2、验证信任

只要解决了以上的问题,达到了开头讲得效果就可以说是SSO。

最简单实现SSO的方法就是用Cookie,实现流程如下所示:

283f977df14d153701f9b429422e29ba.png

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

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

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

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

对于第一个问题,一般可以采用类似与memcached的分布式缓存的方案,既能提供可扩展数据量的机制,也能提供高效访问。

对于第二个问题,一般采取数字签名的方法,要么通过数字证书签名,要么通过像md5的方式,这就需要SSO系统返回免登URL的时候对需验证的参数进行md5加密,并带上token一起返回;

最后需免登的系统进行验证信任关系的时候,需把这个token传给SSO系统,SSO系统通过对token的验证就可以辨别信息是否被改过。

对于最后一个问题,可以通过白名单来处理,说简单点只有在白名单上的系统才能请求生产信任关系,同理只有在白名单上的系统才能被免登录。

推荐学习:php mysql(专题)

php实现单点登录的原理是什么的教程已介绍完毕,更多请关注跳墙网其他文章教程!

php实现单点登录的原理是什么相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值