您的位置:首页 > 其它

关于单点登录和系统耦合性的一些问题

2013-03-03 15:15 218 查看
      单点登录应该没有什么很准确的描述,简单点来说就是从一个系统进入另外一个系统,而不需要登录校验,如果更延伸一些也可以把一个系统需要做的事情放到另外一个系统来做,当然这样可能就涉及接口的事宜了,这里就讨论简单的一个系统进入另一个系统的情况。

      单点登录的好处,呵呵,不用多说,就像QQ,一个QQ号似乎是腾讯的通行证了。。。。。

      至于单点登录的解决方案也许应该有很多,而且应该根据具体系统及其环境具体分析和实施,总的来说单点登录要考虑几个重要的问题:

第一个便是安全性的问题,我经常遇到这种情况,就是从QQ客户端点进去QQ空间的时候,有时候因为IP变化而链接不进去,得重新输密码,当然那是一个什么策略我不敢妄猜,只是想证明安全性在单点登录是一个很重要的问题,如果用辩证法考虑,单点登录方便了用户,当然也就是系统的弱点,有方法就有破解的方法,所以我们必须使我们的方法尽可能的可靠。

第二个就是在安全性得以保证的情况下就需要考虑效率和性能的问题,也许你拥有强大的硬件,而不去考虑性能那么你就是一个暴君,所有的资源总有一天会被你消耗殆尽的,因为单点登录需要考虑安全性就需要做更多的校验,所以性能上肯定会有些折扣,这样就得优化流程和代码使得性能得以保证。

下面举例两种简单的解决方案,其实归根结底,单点登录的目的就是不去校验用户密码,第一种方法便是给系统一个标志,如果另一个系统判断得到是有这样一个标识就不再去校验密码,直接登录,显而易见这样做的安全性就很低,如果被人截获链接就很容易被破解,所以更可靠点的是给他加密,性能上这种方案应该是比较高的。另一种方法便是动态的,如果是两个比较可靠的系统,就像QQ和QQ空间,动态的存一些信息供另一个系统判断,如果无误才跳转,这样效率就低些,相对安全性也有更好的保障,但是也有一个风险,就是底层的系统安全性,比如数据库系统。

    下面要讨论的是系统的耦合性,要想程序之间没有耦合性似乎是不可能的,所以设计原则才说是低耦合,高耦合的程序代码是很让人蛋疼的,甚至会碎,比如两个系统之间,一个系统需要获取另一个系统的值,但是因为另一个系统里把获取值的方法都写死了,所以别的系统只能按那样的方式去构建代码,而如果功能换成别的方式,就没有办法了,所以低耦合确实是要的,不然不可能有一个可扩展性很强的系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: