跨域SSO单点登录授权,看这一篇就够了,没有漏洞的安全身份验证

本文详细讨论了SSO单点登录的常见安全问题和解决方案,包括令牌ID的唯一性、时效性和加密传输,以及如何避免轮循带来的额外负担。作者提出了一种高效且安全的SSO实现方式,强调只处理用户实际使用的系统,确保用户只需登录一次即可使用多个子系统,并保证信息安全性。同时,文中也探讨了注销功能的处理策略,防止用户信息泄露。
摘要由CSDN通过智能技术生成

前言

1.最近公司做的系统增加了不少,需要考虑用户的登录问题,于是在网上了解了一番SSO,好像大部分都写得有问题,比如说所有子系统都用同一个sso生成的令牌ID,不谈ID是否加密的,加密还好,明文的不就完蛋了吗,要知道子系统通过这个ID换取最终的子系统中要使用的用户ID或信息,该操作是子系统通过web请求sso来实现的,不是从浏览器发出的,而是在系统的服务上发出的请求,莫非sso里面要做IP请求限制吗?不处理的话任何人拿到这个令牌ID不都可以直接进入子系统了吗?(此处不要犯迷糊,说什么其他人又没有登录SSO没有cookie或者session,说这个有什么用呢?还是说请求是从服务器通过webrequest请求的SSO,莫非服务器上有保存的cookie,还是说你很牛逼,能跨域读取cookie)

2.还有说什么维护一个子系统的列表通过轮循的方式给系统发请求然后写cookie,先不说安全,我想说要是有100个系统接入使用这一个sso,用户想用其中的一个,你也要轮循100次啊,那用户可以洗洗睡了用户用的正好是第一百个,等你轮循过来,用户都睡醒一觉了,再说安全方面,sso能给你发请求,其他人就不能往你这个地址发请求吗?要知道sso主动给子系统发请求,和sso通知子系统让子系统来请求sso是不一样的,虽然可以加密或者校验,何必呢,这不是自己给自己找事做吗.

3.还有说什么注销的,不知道有没有搞清楚sso的意图,是单点登录,或者说是授权用户能够通过验证后使用最终的产品,只要用户验证通过,sso就和子系统之间没有关系了,说白一点,SSO就是只负责用户能够进入房间的一道门,至于你进去做什么,什么时候出来,从哪里出来SSO都管不了,有时候sso保存的cookie或者session到期了,子系统是照样可以用的,因为子系统已经被授权可以使用了,但如果退出子系统想再次登录就需要再次输入账号密码了.举例说明:用户登录sso成功后cooike或者session有效期1个小时,用户成功进入了子系统,然后子系统里面使用cookie保存用户的ID等信息有效期1天,那用户只要是用这个浏览器登录这个子系统一天内都不需要登录账号密码,即便是sso的登录已经超时.

我们要达到的目的:

1.不给

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值