上一篇的《企业环境中的账户与身份管理 之:1-认识》中讲到了什么是身份,什么是身份信息,身份信息有哪些,进行身份信息的统一管理,是要解决什么样的根本问题 。。

    如我所猜想的那样,在回复里面马上有人想到了单点登录。因为我们的工作中,谈到账户,就一定会有登录的事情。。其实,有关与账户的管理,账户信息管理与单点登录,本身就是两个紧密联系的东西。所以我们会看到,比如IBM的TIM和TAM,Oracl的OIM和OAM很多时候,都是绑在一起销售的。

    但是,如果我们的IT环境大到一定的程度,这两个系统就应该有一个明确的区分。因为从IT管理上来说,账户信息的管理,和实现单点登录验证,是完全不同的两项工作。

    下面的时间,就花一点时间,希望能帮助大家认识对它们之间的区别,有所帮助


何谓单点登录

    所谓单点登录,http://en.wikipedia.org/wiki/Single_sign-on,这里有一个比较正式和详细的定义。

    虽然上文是英文的,无论是中文还是英文,仅从字面意义上都很容易猜出一个大概意思。单点,就是指大家都去一个地方,同一个地方;登录,就是去那同一个地方要干的事情。。所以很简单,就是说所有的用户,都去同一个地方进行登录,进行身份的验证。

    我们先不去讨论单点登录的好处、和功能,相信大家多少都有一定了解。我们先来看看这样一个单点登陆过程。

    

    上图可以看出,这个业务系统本身的验证模块,其实并没有进行验证的工作,而是将发来的请求,提交到了第三方进行验证。然后第三方经过验证后,无需告诉应用系统详细的情况,只需要告诉他,这个用户是否可以允许通过,就OK了。。那么这只是一个应用系统和一个第三方验证系统之间的过程。。如果说,有好多个业务系统,都去找这同样一个验证系统来进行验证,那么,这个系统,就是我们所谓的单点登录系统。相信这点肯定没有疑问。


有何特点

    我们再来分析一下,如果需要充当这样一个第三方的单点登录系统,需要具备什么条件。简单分析就可以发现:

    第一,单点登录系统中必须同时保存账户名和密码,且账户名需要保证唯一性

    第二,单点登录系统必须有一个专门的服务,来处理一系列账户名和密码的比对工作

    第三,单点登录系统会时刻侦听由业务系统发来的代理请求,需要针对每一个请求,必须做出答复,并且这个答复只会回复给提交请求的系统。

    第四,单点登录系统接收的是账户名和密码两种数据,而返回的是不同与两前者的第三种数据


对比分析

    看到这里,我们再来与账户信息管理系统的特点进行一些对比:

    第一,账户信息管理系统中,是不会包含密码信息的。并且,用户名是有可能出现重名的。因为它的数据唯一性是通过比如员工工卡号等方式实现的。

    第二和第三点,在账户信息管理系统中,根本就不存在验证的服务。而他最重要的工作,是将由HR系统或者其他某个唯一的信息来源获得的数据,向所有与它对接的系统进行数据更新。

    第四,账户信息管理系统会把接收到的更新数据,老老实实的传达给其他系统。而不是转达另一种信息。


小结

    经过以上的一些分析,相信大家应该可以看出这两个系统之间的根本区别了。

    所以,简单来说,账户管理系统,管理的对象是信息,是属性信息,是与人有关的属性信息,是将与某个人有关的属性信息同步到所有与某人有关的业务系统当中。它最大意义在于保证不同业务系统中的数据一致性。

    而单点登录系统,它是一个权威,是一个门神。一个人想进来,所有的通道入口都必须征得它的同意,从而确保了一个企业整体IT环境的安全。当然,还有另一个极大的好处,实际上也是实现单点登录系统的初衷,就是它能够使用户只需要到一个地方进行验证,就可以登录到所有的IT资源中了。它的意义在于降低用户身份验证的复杂度,同时在安全性上获得一定的提高。


    通过上面一些简短的比较,相信应该对账户信息管理和单点登录系统的区别,能够有一些比较根本的认识。。

    也欢迎各位拍砖,大家共同讨论,共同学习。。