单点登陆
本文于 1817 天之前发表,文中内容可能已经过时。
单点登陆一般的做法有两种。
共享cookie。cookie可以设置作用域,实现单点登陆的功能。设置简单,只需要配置一下cookie就可以实现。
缺点是只能在同个域名下操作,而且session_id是共享的易被修改且不安全通过第三方实现验证中心实现,cas登陆模式。可以通过cookie或者session去实现。
cas单点登陆介绍
CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。分为客户端和服务端。客户端有各种语言提供,服务端的话,官网目前只有java版本。
实现原理
具体实现流程
https://www.processon.com/view/link/5b88adffe4b0bd4db9259e7d
注意事项
- 验证权限的时候,使用的是ticket验证,存储ticket有两种验证的方式分为cookie和mysql。cookie存在一些风险。
官方推荐的使用mysql的方式,确保验证的正确,操作数据库的时候使用了mysql的锁
1 | SELECT GET_LOCK('123123',10); // 打开一个10s超时的锁 |
登陆验证成功后的处理逻辑。可以有一个各个客户端公用的cookie,或者各个客户端单独的cookie或session。考虑公司网站正常运营,使用原有的cookie或session机制。
退出的操作。客户端退出全部退出,server端退出的话,cas没有给出具体的处理,可以自己进行逐个通知客户端,清除session或者cookie