基与SAML的跨域单点登录和身份认证系统设计与研究
用户数据。具体实现为用户通过子域接口从子域抽取用户数据信息、子域ID信息,在子域进行封装,然后通过数据同步接口传入到跨域访问中心。
跨域访问中心,当跨域访问中心得到这些用户数据信息,首先判断标志位,再根据标志位来判断来源数据是新增、修改、删除中的哪个。
(1)新增操作,是在根据用户信息中的唯一标识信息判断用户唯一标识是否已经存在于跨域认证源中,如果存在,则将用户信息作为映射信息存储在用户唯一标识节点下,作为映射节点信息。如果不存在,则首先为该用户创建一个唯一标识节点,再将用户信息添加到这个唯一标识节点下。
(2)更新操作时,根据用户信息中的唯一标识首先找到唯一标识,然后再根据用户子域信息,对认证源上的对应映射节点信息进行更新。
(3)删除操作时,根据用户信息中的唯一标识首先找到唯一标识,然后再根据用户子域信息,对认证源上的对应映射节点信息进行删除。
(4)跨域用户访问认证模块,是向参与到跨域访问中的子域提供认证接口,对于子域单点登录系统的认证模块进行改造,在原有子域认证源基础上,增加了可选的跨域认证源配置,这样在网络畅通、用户需要开通跨域访问时,开通跨域访问需求。当网络阻断时,用户又需要使用子域中的应用,则可以选择子域认证,保证子域内应用访问正常。
(5)跨域认证即为,用户任意子域登录时,需要提供用户唯一标识、用户名、密码,通过接口,首先根据唯一标识判断用户是否存在跨域认证源中,如果存在则继续判断在该节点下的用户映射信息中是否有一对可以满足用户名、密码。如果满足则返回用户认证成功,并返回用户的跨域访问票据。用户持有该票据可以访问其他多级域而不需要再次输入验证信息。子域会根据跨域访问票据判断用户是否认证成功。如果唯一标识不存在,则返回用户唯一标识不存在。如果映射节点中没有可以匹配的用户名、密码,则返回认证失败。
(6)子域内部的访问权限控制,其特征是对于用户在应用中的访问,可以进行对访问功能模块的控制,不再止步于可以访问那些应用,而是具体到可以访问应用下的那些操作,所述的子域,其单点登录是由服务器和客户端组成的,当用户首次访问应用时,客户端会拦截访问,并查看是否具有服务器颁发的访问服务票据,如果没有则会重定向会服务器端进行认证,认证完成后,会将用户的应用及应用权限信息封装成票据,用户在访问应用的过程中,客户端会拦截请求,并将票据中的权限内容与请求中的内容进行对比,如果符合,则放行通过,如果不符合则拒绝用户访问请求。
4 设计分析
4.1 设计模型
跨域单点登录系统,包括跨域访问中心、域内单点登录子系统和用户管理子系统、域内单点登录控制中心。
跨域访问中心,提供多级域唯一的统一认证源,并且将多级域的用户通过用户数据映射的方式同步到统一认证源中,实现这一点,多级域的每一个子域内的用户都具有相同的唯一标识信息,在用户数据同步的过程中,相同唯一标识的用户信息存储在同一个数据节点下,数据节点下存储着用户每个子域不同的用户名和密码信息。
跨域访问中心,给每个参与了跨域的多级域都分配了域ID,在多级域部署完成后,管理员使用多级域的域ID生成功能,通过跨域访问中心提供的域ID生成接口,将域ID生成,同时保留在跨域访问中心和子域的存储中。
跨域访问中心,在用户的映射数据同步过程中,会将域ID信息、与用户的映射信息进行封装,一并同步到跨域访问中心,这样就标识了在跨域访问中心的每个用户映射数据的数据来源。
域内单点登录子系统用户域内访问,用户域内访问时,通过单点登录系统只能获取到可以访问的应用,但是无法对用户的应用访问权限的细粒度进行约束。
域内单点登录子系统用户域内访问,使用单点登录为应用系统配置的client端,对用于用户的请求进行拦截,在根据用户票据中的权限信息进行比对,对于符合权限信息的请求进行放行,总而,达到对于用户访问权限的控制。
用户管理子系统主要对于用户在域内的应用访问权限进行分配。
该课题采用了跨域访问中心的创建,将多级域的域内认证中提升到了多级域之间的统一跨域认证。克服了原有需要通过多个子域访问各自拥有的应用,通过统一认证源的整合,将多级域的入口整合到了一起,变得更为高效,节省了用户访问多级域的时间,认证效率。
4.2 跨域单点登录流程设计
(1)在分布部署域内单点登录系统时,分别录入用户数据,录入的用户数据需要以用户的身份证号为唯一标识信息,这样便于在将用户数据同步到跨域访问中心时,提供可依据的用户映射关系。
(2)为分布的域内单点登录系统,由域内管理员申请该域单点登录系统的SSOID,便于在提供数据访问、数据同步过程中,表示用户数据的来源,域内单点登录系统的描述信息。
(3)由域内管理员将域内单点登录系统的用户数据进行数据同步,并且由跨域访问中心提供的数据接口进行接收,处理用户数据映射关系。
(4)在域内的单点登录控制中心,将域内的认证模式由域内认证设置为跨域单点登录。
用户可以通过域内单点登录入口进行跨域访问,首次返回用户可以访问的域列表,再次选择域列表则可以返回用户可访问的应用列表。
4.3 跨域认证流程
4.3.1 跨域登录方式
用户有两种跨域登录方式:域登录全域访问和客户端登录全域访问。
域登录:用户登录任何一个域SSO认证成功,域SSO将展示本域和其他域可访问的应用资源访问列表,提供用户进行已授权的访问。
客户端登录:用户通过客户端登录,在客户端应用列表中列出该用户可访问的所有域的应用资源访问列表。用户点击应用资源,客户端浏览器打开该域应用系统界面提供用户进入该系统进行访问。
4.3.2 跨域认证注册流程
在平台层使用用户唯一标识表示账号ID-域内用户信息映射进行管理,其中域内用户信息由跨域访问中心与域内用户管理系统进行同步数据管理。各个应用层权限由各个子域负责管理分配,如图2所示。
4.3.3 跨域认证服务流程
跨域认证服务各域在认证服务遵循先到跨域认证服务中进行用户的认证,读取用户相关跨域信息;如果跨域服务中跨域信息未作其他域的关联或者网络不通等原因未有跨域的信息,域内的认证服务将进行域内的用户认证和权限认证读取。
4.4 服务流程
(1)用户通过跨域认证,可以在任何一个域的SSO进行登录,就可以看到该用户的所授权的所有域的访问列表。
(2)用户在域内SSO登录时,域内SSO将首先调用跨域认证管理的认证服务,并将该用户的所有已授权的域访问列表返回。
(3)用户选择需要访问的子域,跨域访问中心带领用户去子域进行验证,当子域验证用户已经跨域登陆成功后,颁发子域的凭证信息,并且返回用户子域的应用列表。
用户选择需要访问的应用列表,子域SSO代理用户访问应用,验证子域凭证的有效性后,便返回应用信息。
5 结语
该课题对单点登录客户端的优化,采用了过滤器拦截请求内容与票据进行比对,控制了用户访问应用的颗粒度。克服了原有单点登录只能控制到访问应用这一层的问题。带来了对于用户、应用权限管理更加仔细的操作。
参考文献
[1] 周晓斌,董瑞阳.电子政务信息安全十大问题[N].计算机世界, 2009-06-29.
[2] 唐珂.浅谈我国电子政务建设及信息安全管理问题[J].档案学研究,2004(6):38-47.
[3] 刘邦凡.论基于云计算的电子政务信息安全[J].电子商务,2013(11):32-33.
[4] 孙雷.电子政务信息安全和管理[J].应用能源技术,2009(10):42-44.