去年下学期的时候做过一个网关账户的集成,现在想起来,觉得可以写一写,特别是对那些在新的业务系统中希望使用已有账户的那些公司和个人应该有些帮助吧。
统一认证其实是一件很麻烦的事,原有的系统的账户集成本身就是一个令人头疼的问题,要用统一的账户密码,一般都会设一个认证中心,所有的业务系统改造后都去认证中心进行身份认证,但在系统集成后,如果又购买了新的系统,假设新系统的账户认证完全是自己内部的,不支持认证中心的那种认证方式,这该怎么办?
其实新的系统可以利用原有认证中心的账户,这可以总结出下面几种方法:
一:新的系统改造成支持到原有认证系统的帐号的认证。但这一点很难做到,除非新系统开发的时候就考虑了。因为除了帐号和密码以外,一般的认证还会绑定一些与业务相关的信息。如果新的系统不直接支持,除非新系统的开发者愿意进行新的开发(这个一般对新系统的影响比较大,毕竟要完全更换新系统中认证方法就要更改新系统的核心代码,一般购买的已开发好的系统是很难做出这样的调整的),否则这种方法无法实施。
二:把现有认证系统中的账户信息导入新系统。这里面比较麻烦的是密码,这要求密码是可以导出的密文并且加密的方式在新系统中也支持,否则就很难做到。另外,把认证系统中的账户信息导入新系统必须符合新系统的添加账户的完整性规则,这也要求新系统的开发者能够参与,否则也会出现意想不到的后果。
三:利用新系统添加账户的接口进行二次开发。这种方法不需要导出原有认证系统的密码,也不需要更换新系统的认证方法。由于一般新系统添加账户的接口本身是存在的,这种只需要新系统的开发人员公布这个接口就可以了,实施者可以做外围的开发,外围开发的东西可以让用户到现有的认证系统进行认证,如果一旦认证通过,便可以截取用户的用户名和密码,还可以从原有认证系统中读取新系统需要的信息,然后通过新系统添加账户的接口添加用户信息。这种方法不需要更改新系统的核心代码,不失为统一认证实施中的好方法。