为企业整体IT能力的提升创造价值

客户导向    服务为本
单点登录与二次验证
江苏美特罗信息科技有限公司   2018-07-13 09:25:39 作者:SystemMaster

单点登录即Single Sign-On(简称SSO)

是一种统一认证和授权机制。它允许用户在网络中主动进行一次身份认证之后,就可以访问所有被授权的网络资源和应用系统,而不必再次登录。为了在复杂的应用环境下实现单点登录的目标,大都采用了多种认证集成机制,具体可以归纳为三种类型。

基于认证平台的应用漫游

统一身份认证平台存储了全部的身份信息和对应的凭证信息,并提供了不同编程语言(Java,.net,PHP)的认证接口。业务系统完成身份信息同步和认证接口的部署之后,可以使用统一身份认证平台完成身份的认证,不需要自己存储凭证信息和实现认证。图1标识了业务系统完成认证的相应过程。具体如下:


①用户请求访问业务系统。
②业务系统在系统中查看是否有对应请求的有效令牌,若有,则读取对应的身份信息,允许其访问;若没有或令牌无效,则把用户重定向到统一身份认证平台,并携带业务系统地址,进入第③步。
③在统一身份认证平台提供的页面中,用户输入身份凭证信息,平台验证此身份凭证信息,若有效,则生成一个有效的令牌给用户,进入第④步;若无效,则继续进行认证,直到认证成功或退出为止。
④用户携带第③步获取的令牌,再次访问业务系统。
⑤业务系统获取用户携带的令牌,提交到认证平台进行有效性检查和身份信息获取。
⑥若令牌通过有效性检查,则认证平台会把令牌对应的用户身份信息返回给业务系统,业务系统把身份信息和有效令牌写入会话状态中,允许用户以此身份信息进行业务系统的各种操作;若令牌未通过有效性检查,则会再次重定向到认证平台,返回第③步。
通过统一身份认证平台获取的有效令牌,可以在各个业务系统之间实现应用漫游。

基于共享密钥的协议登录

基于共享密钥的协议登录机制是信息化建设中常用的一种协议认证集成模式,通过共享密钥和其他的信息组合加密完成系统间的认证,它需要在双方系统部署不同程序,但不需要修改原先的认证模块。图2给出采用协议登录机制形成的一般结构:各个业务系统的登录跳转程序都部署在一个入口系统中,而对应的验证程序则部署在各自的业务系统,跳转程序通过HTTP的get或post方法把双方约定的协议数据提交到业务系统的验证程序,验证程序负责验证数据的有效性,若通过验证则跳转到业务系统,否则拒绝使用。


此机制一般要求入口系统与业务系统端共同约定用户账号、时间戳、校验码、共享密钥四个参数,并且要求双方系统进行时间同步。入口系统通过跳转程序要求访问业务系统时,需要在url中加入username、time、verify三个参数值,并传递给业务系统。其中verify是由username、time和key组成并采用md5方式加密形成的一个串值。
业务系统获取各个参数后,比较业务系统服务器时间与接收的时间戳(time)是否在允许的时间差范围内,如果在允许的范围内,则需将接收到的username 、time及原先设定的key进行md5加密计算,获得的一个串值且同verify进行比较,若一致,则完成了本次的认证登录,并以username的身份访问系统,否则登录失败。
通过此机制可以实现单点到多点的单向应用漫游,也可以扩展双方认定的协议内容并进行功能的扩展,比如指定业务系统应用模块参数(module)来实现到具体应用模块的跳转。

基于自配置的模拟登录

基于自配置的模拟登录机制是针对那些基于Form表单方式登录的Web业务系统设计的,它不需要对业务系统的原有认证模块做任何修改。它利用用户自我配置的业务系统账号、密码等信息,模拟用户使用业务系统登录页面完成登录的过程,在后台直接提交相应的信息到业务系统的登录验证模块,从而完成用户登录的过程。图3描述了形成的主要体系结构。


首先在入口系统中建立一个入口系统账号到各个业务系统账号的映射表,此表一般需要包含以下信息:
1.入口系统账号:存储入口系统自身的账号。
2.业务系统ID:标志不同的业务系统。
3.业务系统账号:存储业务系统与入口系统账号对应的账号。
4 .业务系统基本角色:存储在业务系统中的角色信息。
5.业务系统密码:通过加密方式存储业务系统的密码信息。
其次,需要分析业务系统的登录页面和其对应的验证逻辑,并在入口系统中建立对应的自配置程序,包括业务账号密码配置页面、业务账号密码保存页面、业务账号密码修改页面等。
用户在使用入口系统首次登录业务系统时,需使用自配置程序把自己在业务系统中对应的账号、密码、角色存入入口系统的映射表中,之后就可直接通过入口系统完成到业务系统的应用跳转。

对比三种机制

每种机制都需要先进行一定的数据准备,再部署相应的程序,可以产生不同的应用漫游情况,所以它们适用不同系统的认证集成,具体分析如表1。


在信息化建设中,具体采用何种机制进行认证集成,需要具体情况具体分析,但是一般优先考虑基于认证平台的应用漫游方式,之后是基于共享密钥的协议登录机制,最后才考虑基于自配置的模拟登录机制。
二次身份验证:
Okta的软件能让客户的员工很方便地使用单一、安全的账号,登录他们工作中需要使用的各种网络服务,或者供承包商、合作伙伴和客户所使用的网络服务。Okta的主要卖点之一是安全性,企业利用其软件可以让员工和其他人远程访问企业信息,而不会导致企业的敏感信息泄露。当一名员工离职后,企业也可以利用Okta的软件,快速取消该员工访问此前其所使用过的网络服务的权力。
手机二次认证

令牌
RSA 
基于证书的 Microsoft Windows 域登录