SSO单点登录

单点登录:一个登陆,所有网站都可以使用,验证客户端cookie来登陆系统。

cookie安全问题

跨域设置cookie

名词介绍:

公钥加密:
所有人都可以对文本进行加密,但是只有本人才能解开。 不让别人看到这个数据,比如这个数据是艳照。隐私等。

数字签名:
自己加密,所有人可以看到里面的信息,并且知道这个信息是我发出的。声明所有权。

传统的cookie和session登陆

session保存在服务器一段时间,可以存储指定客户端的信息。使用和存储方式是 $_SESSION.
PHP开启session,cookie会有唯一的SESSION_ID。服务器可以根据这个SESSION_ID来区分是那个用户的请求,找到这个用户存在SESSION里面的东西,然后根据这个给用户推送符合他用户习惯的东西,比如说这个用户的权限信息。
cookie禁用了怎么办,提示session_id($_GET[sessionname()]

安全问题:

cookie不安全,可以加数字签名解决。获取sso单点系统公钥加密,让应用验证。加密的信息可以包含:appid,生效时间戳,以及和应用约定的特定字符串。

一种方案:用户请求网址,如果没有就请求sso单点系统,单点系统给所请求的应用分配 ticket(cookie 里面的 session_id)。
第二种:用户请求单点系统,单点系统给所有的应用加上ticket,如果服务器压力不大,用ticket申请权限

问题:因为用户不会停留在单点系统(页面关闭,cookie消失),会不会存在频繁登陆sso系统的情况?
答:后台可以设置过期时间。15分钟左右。

问题:权限是不是暴露在外名了?
答:分配权限只分配合理的ticket。具体的权限验证存到cache中。

问题:ticket不安全?
答:保存在服务器中。

posted @ 2016-02-25 17:13  UCanBeFree  阅读(198)  评论(0编辑  收藏  举报