CN101262474A - 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统 - Google Patents

一种基于跨域授权中介实现角色和组映射的跨域访问控制系统 Download PDF

Info

Publication number
CN101262474A
CN101262474A CNA2008100474229A CN200810047422A CN101262474A CN 101262474 A CN101262474 A CN 101262474A CN A2008100474229 A CNA2008100474229 A CN A2008100474229A CN 200810047422 A CN200810047422 A CN 200810047422A CN 101262474 A CN101262474 A CN 101262474A
Authority
CN
China
Prior art keywords
domain
user
cross
role
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008100474229A
Other languages
English (en)
Other versions
CN101262474B (zh
Inventor
龙毅宏
张海松
唐志红
林智鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING ITRUSCHINA Co Ltd
Wuhan University of Technology WUT
Original Assignee
BEIJING ITRUSCHINA Co Ltd
Wuhan University of Technology WUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING ITRUSCHINA Co Ltd, Wuhan University of Technology WUT filed Critical BEIJING ITRUSCHINA Co Ltd
Priority to CN2008100474229A priority Critical patent/CN101262474B/zh
Publication of CN101262474A publication Critical patent/CN101262474A/zh
Application granted granted Critical
Publication of CN101262474B publication Critical patent/CN101262474B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明涉及一种基于跨域授权中介实现角色和组映射的跨域访问控制系统,它通过一跨域授权中介系统维护一个角色和组映射策略表,表中有一系列映射策略,一个映射策略定义了一个授权域中角色、组到另一个授权域中角色、组的映射关系。当一个授权域的用户访问另一个授权域时,跨域授权中介系统基于角色和组映射策略将用户在其原授权域中的角色、组映射对应到其要访问的目标授权域中的角色、组,从而将用户在一个域中的权限转换和对应到另外一个域,据此实现基于RBAC或ACL的跨域访问控制。本发明既适合于基于RBAC的跨域访问控制,也适合于基于ACL的跨域访问控制,也适合于基于RBAC的域和基于ACL的域间的跨域访问控制。

Description

一种基于跨域授权中介实现角色和组映射的跨域访问控制系统
技术领域
本发明属于信息安全的访问控制技术领域,特别是一种基于跨域授权中介实现角色和组映射的跨域访问控制系统。
背景技术
为了对网络上的各类信息系统资源,如主机、文件、数据、服务等,进行保护,需要对这些资源实施授权管理(Authorization Management)和进行访问控制(Access Control)。一般地,访问控制的实现包括权限与授权策略管理、在线授权决策以及在线授权实施三个功能部分。权限与授权策略管理(Privilege and Authorization Policy Management),负责对用户权限以及资源访问控制策略(Access Control Policy)或规则进行管理(在本发明中授权策略与访问控制策略是等同的),如确定用户所属用户组、用户的角色,规定哪些用户、用户组、用户角色对哪些资源具有哪些访问操作权限等。在线授权决策(Authorization Decision),则是对在线访问信息系统资源的用户,根据其身份与权限,如所属用户组、具有的角色等以及资源访问控制策略在线决定用户是否能够访问有关资源并进行有关的操作(如读、写、修改文件,进行交易等)。在线授权实施(Authorization Enforcement),又称为在线访问控制实施(Access Control Enforcement),是集成在应用系统上的一个安全功能,它负责拦截、检查用户对资源的访问请求,并请求在线授权决策模块对用户的访问操作进行决策,然后根绝授权决策的结果允许或拒绝(阻断)用户的资源访问。
访问控制机制目前常见的有基于访问控制列表(Access Control List,ACL)的访问控制和基于角色的访问控制(Role-Based Access Control,RBAC)。基于ACL的访问控制,通过在资源ACL中列明允许访问的用户ID(标识)和组ID以及相应的操作,规定用户对资源的访问权限;RBAC则通过角色定义及相应的角色权限和访问控制策略规定,确定用户的资源访问权限。
目前,随着信息系统互联的不断发展,在访问控制技术中出现了一个重要的概念和需求,这就是跨域访问控制。跨域访问控制,即当来自其他域的用户访问本域的系统资源时对该用户进行的访问控制。这里所说的“域”是指授权管理作用与有效的范围,即授权域,它的范围可以是单个系统,一个部门的所有系统,或者一个组织机构的所有系统。需特别指出的是,不要将“授权域”同另一个相似而且密切相关的“身份域”概念相混淆。身份域是指身份管理作用和有效的范围,如身份标识和身份鉴别作用的范围,与之相对应的跨域身份鉴别要解决的是一个域中的用户身份在另一个域中被识别、获得认可、接受的问题。也就是说,跨域身份鉴别与跨域访问控制要解决的问题不一样,一个是解决你是谁的问题,一个是解决你能干什么的问题。在有些情况下,身份域和授权域的范围是一样的,如采用用户名/口令进行身份鉴别时,二者通常是一样的;在有些情况,二者是不一样的,如当不同组织机构采用一个共同的第三方CA(Certification Authority)签发的数字证书进行身份标识时,它们的身份域是相同的,而授权域各自不同。
基于角色映射的跨域访问控制是目前跨域访问控制技术方面出现的一种新理论和技术,它通过在不同安全域(授权域)的角色之间建立映射关系,从而实现跨域的权限转换,并据此实现跨域访问控制。但是,当前基于角色映射的跨域访问控制在技术方面还处于发展阶段,还不成熟,存在以下几个方面的问题。首先,常用的角色映射方案是由每个授权域各自的访问控制系统直接在两两授权域间相互进行角色映射,当授权域很多时这种方案将会使得角色映射工作变得复杂,且不易于维护和扩展,比如,任何一个授权域的安全策略或角色定义、角色权限发生了改变,所有与之相关的授权域的有关系统都要进行相应调整或修改;其次,有关技术只适合于基于RBAC的跨域访问控制,不适合于基于ACL的跨域访问控制(而ACL是目前应用最广泛的访问控制技术),更不能用于基于ACL的域和基于RBAC的域间的跨域访问控制;再其次,有关技术通常需要对已有的访问控制系统(尤其是基于ACL的访问控制系统)进行较大的修改,甚至推倒重来,这显然不是一个令人满意的方案。
发明内容
本发明的目的是提供一种基于跨域授权中介实现角色和组映射的跨域访问控制系统,它针对目前最常用的基于ACL和RBAC的访问控制机制,通过跨域授权中介和相应的角色和组映射策略,在具有不同安全策略的授权域间实现角色、组映射,从而完成跨域的权限信息转换,并据此实现跨域访问控制。
为了实现上述目的,本发明包括基本访问控制系统和跨域系统两部分。
基本访问控制系统位于一个授权域内,它从功能逻辑上包括权限与授权策略管理系统、授权决策引擎及授权实施模块三部分,它与通常的访问控制系统没什么大的差别。每个域的权限与授权策略管理系统通过定义用户角色、用户组及访问控制策略(如ACL、角色操作权限等)对本域的访问控制权限和策略进行管理,并将有关信息存放在数据库中;授权决策引擎基于用户身份信息(如角色、用户组ID、用户ID)以及本地的访问控制策略对用户的在线资源访问做出“允许”或“拒绝”的决定;授权实施模块则通过一定的方式(如API调用、过滤器等)与应用系统集成,它拦截、检查用户的资源访问请求,获取用户身份信息(如用户ID、用户组ID、角色等),通过一定的Session(服务状态)机制跟踪用户并在Session对象中保存用户的身份信息,请求授权决策引擎对用户的访问进行在线授权决策,并根据授权决策结果对用户的服务请求进行控制(通过或阻断)。
跨域系统包括跨域授权中介系统和跨域授权信息查询模块两部分。跨域授权信息查询模块,被基本访问控制系统的授权实施模块调用,负责域内访问控制系统同跨域授权中介系统间的连接,获取跨域用户的权限信息。跨域授权中介系统是实现跨域访问控制的桥梁和核心,它通过角色(组)映射实现不同授权域中权限的对应和转换。跨域授权中介系统中有一个角色和组映射策略表,表中有一系列映射策略(mapping policy),一个映射策略定义了一个域(源域)中角色(组)到另一个域(目标域)中角色(组)的映射关系。每个映射策略又由一系列的映射元素(mapping element)构成,它将源域中的一个角色(组)集映射到目标域中的一个角色(组)集。映射关系是不可逆的,单向的,即域A到域B的映射,不一定就是域B到域A映射的反映射。映射元素具体地有如下几种形式:
ROLES(SR1,SR2,...,SRm)=>ROLES(TR1,TR2,...,TRn),
GROUPS(SG1,SG2,...,SGm)=>ROLES(TR1,TR2,...,TRn),
ROLES(SR1,SR2,...,SRm)=>GROUPS(TG1,TG2,...,TGn),
GROUPS(SG1,SG2,...,SGm)=>GROUPS(TG1,TG2,...,TGn)。
这里ROLES(...)表示一角色集,GROUPS(...)表示一用户组集,集合有角色名或组名(或ID),不同的角色、组间用逗号分隔;“=>”表示映射关系,“=>”左边是源域角色(组)集,“=>”右边目标域角色(组)集。以上映射的语义是,若用户在源域中同时拥有源集合中所包含的角色(组),那么,他相当于在目标域中具有目标集合中所包含的角色(组),也即他在目标域中将拥有对应角色(组)具有的权限。在这里,映射策略是源授权域和目标授权域依据各自的安全策略和双方达成的协议而制定的。
除了角色和组映射策略表外,跨域般权中介系统还配有一个授权域权限与授权策略管理系统地址表,表中有与跨域授权中介系统相连的各授权域中的权限与授权策略管理系统的地址(DNS主机名或IP地址)及其端口号。
基于发明的跨域访问控制方法的工作流程如下:
A1.来自某授权域(用户域)的用户通过网络访问本授权域(应用域)的应用系统。
A2.应用系统的授权实施模块拦截、检查服务请求,并通过Session机制确定该用户是否已完成身份鉴别,若是,则转入步骤A19;否则,继续到步骤A3。
A3.应用系统的授权实施模块通过一定方式完成对用户的身份鉴别,并确定用户是否为本授权域的用户,
A4.对于来自本授权域的用户,应用系统中的授权实施模块从本地的权限与授权策略管理系统查询、获得用户的角色(组ID)信息,并将用户的身份ID、角色(组ID)信息保存在该用户的Session对象中,然后转入步骤A19;
A5.对于来自其他授权域的用户,应用系统中的授权实施模块通过一定的方式确定用户来自的授权域及身份标识(ID)信息。
A6.应用系统中的授权实施模块调用跨域授权信息查询模块,请求获取该跨域用户的跨域权限信息。
A7.跨域授权信息查询模块向跨域授权中介系统请求查询该跨域用户的权限信息,请求中有跨域用户来自的授权域名(用户域)、用户ID及本授权域名(应用域)。
A8.跨域授权中介系统接收到跨域权限信息查询请求后,首先查看其角色和组映射策略表中是否有从用户域(为源域)到应用域(为目标域)的映射策略,
A9.否无,则跨域授权中介系统返回查询失败,并给出失败理由(无域间映射策略)。
A10.若有,则跨域授权中介系统(依据用户域名)从授权域权限与授权策略管理系统地址表中找到用户所在域中的权限与授权策略管理系统地址,然后,向用户域中的权限与授权策略管理系统获取用户的角色、用户组信息,请求中有该用户ID。
A11.用户域中的权限与授权策略管理系统接收到来自跨域授权中介系统的查询请求后,根据用户ID从其数据库中查找用户的角色(包括所继承的所有父角色)、组信息,若有相应用户,则返回查询成功(查询结果空也是成功)及有关的查询结果;若找不到对应用户,则返回查询失败,给出原因(无对应用户)。
A12.跨域授权中介系统接收到来自用户域的角色、组查询结果后,判断查询结果是成功还是失败,
A13.若查询结果是失败,则跨域授权中介系统向应用域的跨域授权信息查询模块返回查询失败;
A14.若查询结果是成功,则跨域授权中介系统从角色和组映射策略表中,找到与用户域(为源域)和应用域(为目标域)对应的映射策略,取出一个个的角色(组)映射元素,依据映射元素对从用户域获得的用户角色(组)进行从源域到目标域的角色(组)映射,最后将映射获得的所有角色、组集合进行整合,返回给应用域中的跨域授权信息查询模块。
A15.应用域中的跨域授权信息查询模块将从跨域授权中介系统获得查询结果返回给应用系统的授权实施模块。
A16.应用系统的授权实施模块获得了查询结果后,判断结果是成功还是失败,
A17.若失败,授权实施模块阻断用户的服务访问;
A18.若成功,授权实施模块将跨域用户经角色(组)映射后所拥有的(本地)角色、组保存到该用户的Session对象中,然后继续。
A19.应用系统的授权实施模块请求授权决策引擎对用户的服务(资源)访问进行授权决策,请求中有从用户Session对象取出的用户角色(组)信息以及用户要访问的服务(资源)名(即URL)和相应的操作。
A20.授权决策引擎根据用户的角色、组及从本地权限与授权策略管理系统获得的访问控制策略,做出允许或拒绝用户访问的决定,并将决定返回给应用系统的授权实施模块。
A21.应用系统的授权实施模块根据返回的授权决定结果进行访问控制实施(授权实施),允许或阻断用户的服务访问。
在步骤A2,授权实施模块通过Session机制确定用户是否已完成身份鉴别的方法如下。应用系统、Web容器、或授权实施模块可基于一定的Session维护机制识别、跟踪不同的用户,并为每个用户创建一个Session对象用于存放服务状态和身份(授权)信息;对初次登录用户或未完成身份鉴别用户,其Session对象中没有相关身份(或授权)信息,或者信息不完全;因此,授权实施模块可据此判断用户是否已完成身份鉴别。
在步骤A3中对用户的身份鉴别并确定其是否来自本授权域可按如下两种情形进行:
(A31)身份域同授权域一致
这时可使用户提交的身份鉴别信息中包含域信息,如对于基于用户名/口令(包括动态口令)的身份鉴别,除了用户名(ID)、口令外,用户还需提交来自的域信息(类似于Windows中的域身份鉴别);而对于基于数字证书的身份鉴别,数字证书中将直接或间接(如通过信任链间接指示)包含域信息。这样,授权实施模块可从鉴别信息中判断出用户是否为本授权域用户。对于跨域用户,可以利用已有的跨域身份鉴别技术,如Kerberos,或通过SAML、WS-Trust/WS-Federation等,进行跨域身份鉴别。
(A32)身份域同授权域不一致
这时通常是有一个全局身份ID(如数字证书或其它全局ID)在多个授权域中有效,在这种情形下,若通过该全局身份ID在本授权域的权限与授权策略管理系统中找不到对应的用户,则可以认为该用户为非本授权域的用户,而对该用户的身份鉴别可基于该全局身份ID进行,如通过验证证书信任链或采用其他适用的跨域身份鉴别技术。
在步骤A5,应用系统中的授权实施模块获取用户来自的授权域及身份标识(ID)信息的方式也可相应地分为两种情形:
(A51)身份域同授权域一致
这对应于(A31)的情形,这时可从身份鉴别信息中直接或间接地获得授权域名及身份标识(ID)信息(对于数字证书的情形,可通过将证书信任链对应到相应的授权域,从而间接获得授权域名)。
(A52)身份域同授权域不一致
这对应于(A32)的情形,这时在基于全局身份ID完成身份鉴别后,可以弹出一个用户界面,让用户填写、提交其来自的授权域名。
在步骤A7,跨域授权信息查询模块向跨域授权中介系统查询用户权限信息的请求分为三类,仅用户组信息(GROUPS_ONLY),仅角色信息(ROLES_ONLY),同时用户组和角色(GROUPS_ROLES)。仅用户组信息,即跨域授权中介系统完成角色、组映射后,只返回映射后的用户组信息;仅角色信息,即跨域授权中介系统完成角色、组映射后,只返回映射后的角色信息;同时用户组和角色,即跨域授权中介系统完成角色、组映射后,同时返回映射后的组和角色信息。
本发明的方法具有如下特点:
1)简单,映射快速,而且易于扩展。
2)同一个技术既适合于基于RBAC的跨域访问控制,也适合于基于ACL的跨域访问控制,而且适合于基于RBAC的域和基于ACL的域间的跨域访问控制。
3)对现有的、非跨域的访问控制系统只需进行很小的修改、改动,便可在原有基础上实现跨域访问控制。
附图说明
图1为基于本发明的跨域访问控制系统整体结构图。
图2为本发明的跨域授权中介系统结构图。
图3为本发明的跨域授权中介系统的映射提供者结构图。
具体实施方式
下面结合附图对本发明作进一步的详细描述。
本发明的跨域访问控制系统的整体结构如图1所示,图中域A和域B表示不同的授权域,每个域中有一个或多个应用系统对外提供服务,并由访问控制系统对用户实施资源访问控制,而访问控制系统又分为基本访问控制系统和跨域系统两部分,其中权限与授权策略管理系统S1、授权决策引擎S2、授权实施模块S3构成了基本访问控制系统,而跨域授权中介系统S5及跨域授权信息查询模块S4构成了跨域系统,跨域授权中介系统S5还配置有角色和组映射策略表S51和授权域权限与授权策略管理系统地址表S52。
将基本访问控制系统划分为权限与授权策略管理系统S1、授权决策引擎S2、授权实施模块S3三部分只是从功能逻辑上的划分,特别是授权决策引擎S2与授权实施模块S3,它们在具体实施上既可以是作为分离的模块,也可以是一个模块中的两个功能。基本访问控制系统的实施与通常的基于ACL或RBAC的访问控制系统的实施基本相同,其中权限与授权策略管理系统S1、授权决策引擎S2无需考虑跨域访问控制的问题。它与通常的访问控制系统的主要差别是:授权实施模块S3需在原有基础上增加跨域访问控制的功能;权限与授权策略管理系统S1需额外增加基于SAML(Security Assertion Markup Language)对外提供用户组、角色信息查询的服务(如果它以前不对外提供这种服务的话)。
除了在实现的功能上需要考虑跨授权域用户,也即实现前面工作流程的A2-A6,A16-A21,以及A31-A32,A51-A52外,授权实施模块S3的具体实施与通常的实施方法、技术是一样的,比如可以是以过滤器的方式实现(如Servlet、ASP.Net、ISAPI、NSAPI过滤器),也可以是以加入到应用程序中的代码块方式实现。对于Session机制,可直接利用各种Web容器,如ASP.NET、JSP\Servlet容器,本身的Session机制来维护Session和Session对象。基于这些实施技术,授权实施模块的具体实现是直截了当的。
权限与授权策略管理系统S1在通常访问控制系统的权限与授权策略管理系统的基础上,要对外增加用户信息查询服务的功能,该查询服务的具体实施可在权限与授权策略管理系统中或之外增加一个基于SAML的用户信息查询服务模块或系统,将用户角色、组信息作为用户属性信息,并通过SAML/SOAP/HTTP对外提供查询服务。只要实现本发明所述功能,用户信息查询服务的具体实现技术和方案有多种,如采用Java Servlet或ASP.NET技术额外开发一个用户信息查询服务系统或模块。另外需要指出的是,在实际应用中,权限与授权策略管理系统S1既可以是仅属于一个应用系统的(一个应用系统对应于一个授权域),也可以是作用于多个应用系统的集中式授权管理系统(一个授权域包含多个应用)。
下面重点说明本发明的核心与主要内容跨域授权中介系统S5和跨域授权信息查询模块S4的具体实施例。
在继续说明前,先说明一下本发明授权域的标识方法,即授权域的命名。本发明授权域的标识借用DNS域名的形式,如whut.edu.cn,itrus.com.cn分别表示不同的授权域。这里域名仅作为一种授权域标识,不与IP地址对应。但是,一个机构、组织通常可以取其网络系统的域名作为其授权域的域名,这样非常方便。
跨域授权信息查询模块S4以能够被授权实施模块S3通过API直接调用的模块形式出现,如Java类、C/C++动态链接库、COM组件等。跨域授权信息查询模块S4的功能是进行跨域用户权限查询请求、查询响应信息的转换,即将授权实施模块S3通过API调用的查询请求转换为向跨域授权中介系统S5发出的SAML请求,以及将跨域授权中介系统S5返回的SAML响应结果转换为通过API返回给授权实施模块S3的查询结果。跨域授权信息查询模块API的定义是简单而直接的,只要查询API包含跨域用户的ID(如用户名或数字证书)、用户所在的域、权限信息查询请求的类别即可。这里查询请求的类别有三种,仅用户组信息(GROUPS_ONLY),仅角色信息(ROLES_ONLY),同时用户组和角色(GROUPS_ROLES)。跨域授权信息查询模块S4与跨域授权中介系统S5间的请求/响应协议采用SAML(见后面协议实现说明),传输协议采用SOAP/HTTP绑定。只要能实现其功能,跨域授权信息查询模块编码是直接的。具体地,跨域授权信息查询模块S4实现如下接口(以Java为例,其他实现技术可定义类似接口):
public interface ICrossDomainAttrbQuery{
public static final int GROUPS_ONLY=0;
public static final int ROLES_ONLY=1;
public static final int GROUPS_ROLES=2;
public Result attrbQuery(String user ID,String domain,int queryType);
public Result attrbQuery(Certificate userCert,String domain,int
queryType);
}
方法attrbQuery(String userID,String domain,int queryType)负责连接跨域授权中介系统S5获取跨域用户权限信息(映射后的角色、组信息),其输入参数意义如下:
输入参数user ID,存放字符串形式的用户身份标识。
输入参数doma in,存放要查询的用户所在授权域的域名。
输入参数queryType,查询请求的类型,可以是GROUPS_ONLY、ROLES_ONLY、GROUPS_ROLES中的一个。
其返回结果由如下Result类描述,
public class Result{
public static final int SUCCESS=0;
public static final int FAILURE=1;
public int statusCode;
String reason;
String userRoles;
String userGroups
}
若statusCode为SUCCESS,则表示有关操作成功;若statusCode为FAILURE,则表示有关操作失败,reason给出失败原因描述。userRoles返回查询获得的用户所有角色信息,包括父角色(如有的话),多个角色间以逗号分隔。userGroups返回查询获得的用户所有组信息(以组ID的形式),多个组间以逗号分隔。
方法attrbQuery(Certificate userCert,String domain,int queryType)的用途、参数、返回结果与前面方法类似,唯一的差别是用户的身份是用数字证书userCert标识的,这里Certificate类是java.security.cert类库定义的一个证书抽象类。
跨域授权中介系统S5是实现跨域访问控制的桥梁,它通过角色(组)映射实现不同授权域中权限的转换。跨域授权中介系统S5的结构如图2所示,由中介服务模块S53,用户权限信息查询模块S54,映射提供者(Mapping Provider)S55,授权域权限与授权策略管理系统地址表S52,角色和组映射策略配置表S511及一系列映射策略文件S512组成。角色和组映射策略配置表S511和相应的映射策略文件S512实际上构成了前述角色和组映射策略表S51。
中介服务模块S53基于Java Servlet实现,它首先进行SAML/SOAP/HTTP请求的接收、转换,然后调用用户权限信息查询模块S54到用户所在域(即映射的源授权域)查询用户的角色、组信息,接下来调用映射提供者S55对用户角色、组进行从源授权域到目标授权域的映射,最后将映射结果转换为SAML响应结果返回。
用户权限信息查询模块S54根据用户的身份ID(标识)、所在授权域的域名,到用户所在授权域查询、获取其角色、组信息,它实现如下Java接口(若跨域授权中介系统基于Java实现):
public interface IAttrbQuery{
public Result attrbQuery(String userID,String domain);
public Result attrbQuery(Certificate userCert,String domain);
}
方法attrbQuery(...)负责连接用户所在授权域的权限与授权策略管理系统获取用户的角色、组信息,其输入参数、返回结果的意义与跨域授权信息查询模块S4的ICrossDomainAttrbQuery接口的对应attrbQuery(...)方法类似,差别是这里没有queryType输入参数,因为它总是同时查询用户的组、角色信息。
授权域权限与授权策略管理系统地址表S52,配置有与跨域授权中介系统s5相联的每个授权域的权限与授权策略管理系统的用户信息查询服务的DNS主机名(或IP地址)及端口号,该地址表包含的信息(或其逻辑结构)如表1所示。
表1授权域权限与授权策略管理系统地址表
  授权域名称(Authorization Domain)   用户信息查询服务主机名/IP地址(Host Name/IP Address)   端口(Port)
  whut.edu.cn(DNS域名)   ips.whut.edu.cn(主机名)   80
  itrus.com.cn   192.168.20.18(IP地址)   8080
  ...   ...   ...
描述这个地址表的文件的具体形式可自己定义,一种简单的方法是采用逗号分隔值(Comma Separated Value,CSV)方法,即采用普通ASCII文件,文件中每一行依次有逗号分隔的授权域名称,用户信息查询服务主机名或IP地址,端口号,对应于表1中的一行。
用户权限信息查询模块S54的attrbQuery(...)方法在查询用户角色、组信息前,首先根据输入的用户授权域名,从授权域权限与授权策略管理系统地址表S52中找到对应的用户信息查询服务的主机名或IP地址及其端口号,然后使用SAML/SOAP/HTTP协议查询用户的角色、组信息。
角色和组映射策略配置表s511包含的信息(或其逻辑结构)如表2所示。
表2角色和组映射策略配置表
  源授权域(Original Domain)   目标授权域(Target Domain)   映射策略(Mapping Policy)
  xxx.xxx.xxx(DNS域名)   yyy.yyy.yyy(DNS域名)   zzz.txt(文件名)
  ...   ...   ...
这里的一个映射策略项(表中的一行)本身不包含映射策略的具体内容,而是一个映射策略文件名。映射策略配置表的具体实现形式可以多种,如与前述授权域权限与授权策略管理系统地址表文件类似,采用逗号分隔值(CSV)的方法,使ASCII文件中每一行依次有逗号分隔的源授权域名、目标授权域名,映射策略文件名,对应于映射策略配置表2中的一行。
一个映射策略文件S512定义了本发明所述的跨域角色、组映射关系。其具体描述形式可以有多种。若采用简单的ASCII文件定义,则可用ROLES(...)形式的文本格式表示角色集合,不同角色在括号中以逗号分隔,如ROLES(admin,manager);可用GROUPS(...)形式的文本格式表示组集合,不同组标识(或组名)在括号中以逗号分隔,如GROUPS(G0021,SalesGroup,Marketing)等;用”=>”表示映射关系和方向,左边是源域角色(组),右边是目标域角色(组);映射策略文件的每一行包含一个从源角色(或组)集到目标角色(或组)集的映射描述(即映射元素)。另外,采用自定义的XML文档描述映射策略也是一种很好的方式。
映射提供者S55结构如图3所示,它由一个实现IMapProvider接口的MapProvider对象、一系列与映射策略相关的MapPolicyItem对象及相应的MapElement对象组成。映射提供者通过实现如下Java接口IMapProvider的MapProvider对象对外提供映射服务:
public interface IMapProvider{
public boolean domainsMatch(String orgnDomain,String trgtDomain);
public Result mapper(String orgnDomain,String trgtDomain,String
orgnRoles,String orgnGroups);
}
方法domainsMatch(String orgnDomain,String trgtDomain)判断是否存在与源授权域orgnDoma in和目标授权域trgtDoma in对应的映射策略,若有,返回TRUE,否则,返回FALSE。
方法mapper(String orgnDomain,String trgtDomain,String orgnRoles,String orgnGroups)进行角色、组映射,其输入参数、返回结果意义如下:输入参数orgnDomain,trgtDomain分别存放源授权域名与目标授权域名;输入参数orgnRoles,orgnGroups分别存放用户在源授权域中的角色、组集合,多个角色、组间以逗号分隔。
结果类Result同前,用于返回映射结果。
映射提供者的MapProvider对象由如下Java类定义:
public class MapProvider implement IMapProvider{
List<MapPolicyItem>mapPolicyItemList;
pubic MapProvider();
public boolean domainsMatch(String orgnDomain,String trgtDomain);
public Result mapper(String orgnDomain,String trgtDomain,String
orgnRoles,String orgnGroups);
}
其中,MapProvider()是构造方法;mapPolicyItemList存放一系列映射策略项MapPolicyItem对象。一个MapPolicyItem对象对应于一个映射策略文件,即一个源域到目标域的映射策略。MapPolicyItem是一个如下形式的Java类,
public class MapPolicyItem{
private String orgnDomain;
private String trgtDomain;
boolean domainsMatch(String orgnDomain,trgtDomain);
public List<MapElement>mapElementList;
public Result mapper(String orgnRoles,String orgnGroups);
public init(String mapPolicyFileName);
public MapPolicyItem();
public MapPolicyItem(String mapPolicyFileName);
}
orgnDoma in,trgtDoma in字段分别存放源授权域名与目标授权域名;
domainsMatch(String orgnDomain,trgtDomain)方法用于判断输入参数中源、目标授权域是否与本MapPolicyItem对象对应的源、目标授权域对应,若是,则返回真(TRUE),否则返回假(FALSE),它由MapProvider对象的mapper(...)方法调用。
mapElementList对象列表存放对应的映射策略文件中的一系列映射元素。
mapper(String orgnRoles,String orgnGroups)根据本MapPolicyItem对象对应的映射策略进行跨域角色、组映射,它由MapProvider对象的mapper(...)方法调用。其输入参数、返回结果的意义同IMapProvider接口的mapper(..)方法中的对应参数和返回结果(只是这里不包含String orgnDoma in,StringtrgtDomain输入参数)。
MapPolicyItem()构造方法创建一个不包含具体映射策略信息的MapPolicyItem对象。
MapPolicyItem(String mapPolicyFileName)构造方法用相应的策略文件构造MapPolicyItem对象和创建MapEl ement对象列表mapElementList,其中的输入参数mapPolicyFileName是映射策略文件名。
init(String mapPolicyFileName)初始化方法用相应的映射策略文件初始化MapPolicyItem对象和创建MapElement对象列表mapElementList,其中输入参数mapPolicyFileName是对应的映射策略文件名。该方法或者由MapPolicyItem(String mapPolicyFileName)调用,或者在使用MapPolicyItem()创建一个MapPolicyItem后调用。
MapElement类定义如下:
public class MapElement{
public static final int ROLES=0;
public static final int GROUPS=1;
public int orgnAttributeType;
public Set<String>orgnAttributes;
public int trgtAttributeType;
public Set<String>trgtAttributes;
}
字段orgnAttributeType表示一个映射元素的源属性集的类别,可以是角色(对应值ROLES),或组(对应值GROUPS);
字段orgnAttributes存放一个映射元素的源属性(角色或组)集合;
字段trgtAttributeType表示一个映射元素的目标属性集的类别,可以是角色(对应值ROLES),或组(对应值GROUPS)。
字段trgtAttributes存放一个映射元素的目标属性(角色或组)集合。
比如,ROLES(SrcRole1,SrcRole2,SrcRole3)=>GROUPS(TrgtGroupl,TrgtGroup2)映射元素对应的MapElement对象各字段的值如下,
orgnAttributeType=ROLES;
orgnAttributes=(“SrcRole1”,“SrcRole2”,“SrcRole 3”);
trgtAttributeType=GROUPS;
trgtAttributes=(“TrgtGroup1”,“TrgtGroup2”)。
MapPolicyItem类的mapper(String orgnRoles,String orgnGroups)方法按如下流程进行映射:
B1.首先将输入参数orgnRoles和orgnGroups中以逗号分隔的角色、组,分别分离、存放到Set<String>orgnRolesSet和Set<String>orgnGroupsSet定义的角色、组集合中(如orgnRoles中一个以逗号分隔的角色,成为orgnRolesSet中的一个描述角色的串对象元素);
B2.然后依次对MapElement对象列表mapElementList中的每个MapElement对象进行如下处理:
B21.如果MapElement对象的orgnAttributeType=ROLES,则判断MapElement对象的orgnAttributes是否为orgnRolesSet的子集,若是,则将trgtAttributes中的角色取出、合并到输出结果Result对象的userRoles中,不同角色间以逗号分隔;
B22.如果MapElement对象的orgnAttributeType=GROUPS,则判断MapElement对象的orgnAttributes是否为orgnGroupsSet的子集,若是,则将trgtAttributes中的组取出、合并到输出结果Result对象的userGroups中,不同组间以逗号分隔。
B3.重复步骤B2,直到mapElementList中的所有MapElement对象处理完毕;
B4.最后将映射结果返回。
映射提供者的MapProvider对象的domainsMatch(String orgnDoma in,String trgtDoma in)工作流程如下,
C1.依次调用MapPolicyItem对象列表mapPolicyItemList中每个对象的domainsMatch(String orgnDomain,String trgtDomain)方法;
C2.若有一个MapPolicyItem对象的domainsMatch(...)返回TRUIE,则返回TRUE;
C3.否则,返回FALSE;
映射提供者的MapProvider对象的mapper(String orgnDomain,StringtrgtDomain,String orgnRoles,String orgnGroups)方法进行角色、组映射的工作流程如下,
D1.首先依次调用MapPolicyItem对象列表mapPolicyItemList中每个对象的domainsMatch(String orgnDoma in,String trgtDomain)方法,判断列表中哪个MapPolicyItem对象对应于期望的源授权域和目标域授权;
D2.若列表中某个MapPolicyItem对象对应于期望的源授权域和目标授权域,即其domainsMatch(...)返回TRUE,则进一步调用该MapPolicyItem对象的mapper(String orgnRoles,String orgnGroups)方法进行角色、组映射,然后将映射后的结果Result对象返回;
D3.若列表中没有一个MapPolicyItem对象对应于期望的源授权域和目标授权域,则返回结果Result对象指示失败,失败原因是“无对应映射策略”(“nomapping policy”)。
跨域中介服务模块S53(Servlet)的工作流程如下:
E1.接收跨域权限信息查询请求,并从请求中分离出源授权域(用户域)、目标授权域(应用域)、用户ID信息;
E2.调用映射提供者的MapProvider对象的domainsMatch(...)方法查询是否有对应的映射策略;
E3.若无,则跨域中介服务模块返回出错结果,出错原因是“无对应映射策略”;
E4.若有,则跨域中介服务模块进一步在授权域权限与授权策略管理系统地址表中查找对应于源授权域的权限与授权策略管理系统的地址,
E5.如无相应地址,则返回出错,原因是“无法找到源授权域权限与授权策略管理系统”;
E6.如有相应地址,则调用跨域授权中介系统的用户权限信息查询模块的attrbQuery(...)方法到用户所在授权域的权限与授权策略管理系统获取用户的角色、组属性;
E7.若用户权限信息查询模块返回的结果是失败,则跨域中介服务模块S53返回失败结果,以及相应的失败原因(如“用户不存在”);
E8.否则,跨域中介服务模块调用映射提供者的MapProovider对象的mapper(...)方法进行用户角色、组属性的映射;
E9.最后跨域中介服务模块根据映射提供者的MapProovider对象的映射结果产生SAML响应,返回响应结果。
跨域权限信息查询模块S4与跨域授权中介系统S5间交互协议采用SAML1.1,协议信息约定如下:
SAML请求消息格式如下所示:
<Request
    RequestID=″...″
    Majoryersion=″1″
 MinorVersion=″1″
 IssueInstant=″...″
 xmlns=″urn:oasis:names:tc:SAML:1.0:protocol″
 xmlns:xsd=″http://www.w3.org/2001/XMLSchema″
 xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″>
<ds:Signature xmlns:ds=″http://www.w3.org/2000/09/xmldsig#″>
   ......
</ds:Signa ture>
<AttributeQuery Resource=″...″>
   <Subject xmlns=″urn:oasis:names:tc:SAML:1.0:assertion″>
      <NameIdentifier
         NameQualifier=″...″Format=″...″>
         ...
      </NameIdentifier>
      <SubjectConfirmation>
         <ConfirmationMethod>
            urn:oasis:names:tc:SAML:1.0:cm:holder-of-key
         </ConfirmationMethod>
         <ds:KeyInfo
             xmlns:ds=″http://www.w3.org/2000/09/xmldsig#″>
               <ds:X509Data>
                  <ds:X509Certificate>
                     ...
                  </ds:X509Certificate>
               </ds:X509Data>
         </ds:KeyInfo>
         </saml:SubjectConfirmation>
      </Subject>
      <AttributeDesignator
         xmlns=″urn:oasis:names:tc:SAML:1.0:assertion″,
          AttributeName=″...″
         AttributeNamespace=″...″>
      </AttributeDesignator>
   </AttributeQuery>
</Request>
有关信息的设置如下:
1)Request/@RequestID
该属性表示SAML请求ID号,是一个具有xsd:ID类型的标识,具体用法见SAML1.1规范。
2)Request/@IssueInstant
该属性表示SAML请求发送的时间,是一个具有xsd:dateTime类型的UTC时间,具体用法见SAML1.1规范。
3)Request/ds:Signature
SAML信息的签名信息,由SAML请求发出者签名,参见XML Signature规范。
4)Request/AttributeQuery/@Resource
在本发明中,其值为SAML请求发送方所在授权域的域名,如whut.edu.cn。
5)Request/AttributeQuery/Subject
通过NameIdentifier以及SubjectConfirmation标识被查询用户。
6)Request/AttributeQuery/Subject/NameIdentifier
NameIdentifier元素表示被查询用户,当用户采用用户ID/口令进行身份标识时,该元素的值采用Domain\UserID的形式,其中Domain是用户所在授权域的域名,UserID是用户标识(用户名),即Format是Windows Domain Qualified Name;当用户采用数字证书作身份标识时,其值是用户数字证书的主体甄别名(Subject Distinguished Name),即Format是X509 Subject Name。
7)Request/AttributeQuery/Subject/NameIdentifier/@NameQualifier
当用户采用用户ID/口令进行身份标识时,该属性可以不用,若采用的话,可用来表示被查询用户所在的域,如itrus.com.cn,这样若NameIdentifier元素的值(内容)不包含Doma in(域)信息,则可以用该属性设置用户所在授权域的域名;若二者皆指定域信息,则必须一致。
当用户采用数字证书作身份标识时,该属性必须使用,其值是被查询用户所在的域。
8)Request/AttributeQuery/Subject/NameIdentifier/@Format
该属性用来指定NameIdentifier信息的格式,当用户采用用户ID/口令进行身份标识时,其值为
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
当用户采用数字证书作身份标识时,其值为
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName。
9)Request/AttributeQuery/Subject/SubjectConfirmation
当基于数字证书标识用户时采用,该元素包含用户的数字证书。
3)Request/AttributeQuery/Subject/SubjectConfirmation/ds:KeyInfo
KeyInfo元素包含用户的数字证书(参见XML Signature)。
4)Request/AttributeQuery/AttributeDesignator
该元素用来表示请求方需要查询的用户属性,本发明中一个SAML请求最多包含两个这个元素。
5)Request/AttributeQuery/AttributeDesignator/@AttributeName
该属性值标识请求方需要查询的用户属性名,在本发明中其值可以是,“Roles”或“Groups”。
本发明中一个SAML请求最多包含两个AttributeDesignator元素,其中一个的AttributeName属性值为“Roles”,另一个为“Groups”。
6)Request/AttributeQuery/AttributeDesignator/@AttributeNamespace
该属性表示属性名的命令空间,在本发明中可不用,或者其值是xsd:anyURI类型的一个URI(自定义)。
SAML响应信息格式如下:
<Response
   ResponseID=″...″
   InResponseTo=″...″
   Majoryersion=″1″
   MinorVersion=″1″
   IssueInstant=″...″
   Recipient=″...″
   xmlns=″urn:oasis:names:tc:SAML:1.0:protocol″
   xmlns:xsd=″http://www.w3.org/2001/XMLSchema″
   xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″>
   <ds:Signature xmlns:ds=″http://www.w3.org/2000/09/xmldsig#″>
      ......
   </ds:Signature>
   <Status>
    ...
   </Status>
   <Assertion
      AssertionID=″...″
      MajorVersion=″1″
      MinorVersion=″1″
      IssueInstant=″...″
   Issuer=″....″
   xmlns=″urn:oasis:names:tc:SAML:1.0:assertion″>
   <Conditions NotOnOrAfter=″...″>
      <AudienceRestrictionCondition>
         <Audience>...</Audience>
      </AudienceRestrictionCondition>
   </Conditions>
   <AttributeStatement>
      <Subject>
         <NameIdentifier
           NameQualifier=″...″Format=″...″>
          ...
         </NameIdentifier>
         <SubjectConfirmation>
            ......
         </SubjectConfirmation>
      </Subject>
      <Attribute AttributeName=″...″AttributeNamespace=″...″>
         <AttributeValue>
         ...
         </AttributeValue>
         ...
      </Attribute>
      ...
   </AttributeStatement>
</Assertion>
</Response>
有关信息的设置如下:
1)Response/@ResponseID
该属性表示SAML响应ID号,是一个具有xsd:ID类型的标识,具体用法见SAML1.1规范。
2)Response/@InResponseTo
该属性的值为对应SAML请求中的RequestID。
3)Response/@IssueInstant
该属性表示SAML响应的时间,是一个具有xsd:dateTime类型的UTC时间,具体用法见SAML1.1规范。
4)Response/Recipient=″...″
表示响应信息的接收者,可以不用,或者设置为SAML请求来自的域。
5)Response/ds:Signature
SAML信息的签名信息,SAML响应发出者签名,参见XML Signature规范。
6)Response/Status
该元素表示SAML响应的状态,成功或出错,若发生错误则该元素中包含了相关的SAML异常信息,具体用法参见SAML1.1规范。
7)Response/Assertion
该元素存放返回的断言(属性断言)。
8)Response/Assertion/AssertionID
该元素为断言的标识(ID),是一个具有xsd:ID类型的标识,具体用法见SAML1.1规范。
9)Response/Assertion/IssueInstant=″...″
该属性表示断言的签发时间,是一个具有xsd:dateTime类型的UTC时间,具体用法见SAML1.1规范。
10)Response/Assertion/Issuer=″....″
该属性表示断言的签发者,即跨域授权中介系统,它的值可以是xsd:anyURI类型的一个URI(如跨域授权中介系统的主机名),或其他标识。
11)Response/Assetiion/Conditions
该元素限定返回的断言的应用条件。
12)Response/Assertion/Conditions/@NotOnOrAfter
该属性限定断言的应用时间范围,具体用法参见SAML1.1规范。
13)Response/Assertion/Conditions/Audience
该元素设置为断言应用的授权域,即SAML请求发送者所在的域。
14)Response/Assertion/AttributeStatement
该元素存放被查询用户的属性声明。
15)Response/Assertion/AttributeStatement/Subject
该元素表示被查询的用户,其用法与SAML请求中Subject用法相同。
16)Response/Assertion/AttributeStatement/Attribute
返回与请求中AttributeDesignator元素指定的属性对应的用户属性信息。
本发明中最多有两个Attribute元素,每个元素与请求中的一个AttributeDesignator元素指定的用户属性相对应。
17)Response/Assertion/AttributeStatement/Attribute/@AttributeName
该属性表示对应的用户属性名称,它与请求中对应的AttributeDesignator元素的AttributeName属性值相同。
18).../Assertion/AttributeStatement/Attribute/@AttributeNameSpace
该属性可以不用,如果使用的话,其值与请求中对应的AttributeDesignator元素的AttributeNameSpace属性值相同。
19).../Assertion/AttributeStatement/Attribute/AttributeValue
该元素存放用户对应属性类别的属性值,当一个用户对一个属性类别有多个值时,将有多个该元素,如当属性类别是角色而用户有多个角色时,每个AttributeValue元素对应一个角色名。
跨域信息查询模块S4通过API接收到授权实施模块S3的查询调用后,按如下方法分离、产生相关信息,形成SAML请求:
F1.从userID或userCert获得用户ID,从Doma in获得用户所在授权域,然后用相应的信息生成SAML请求中的Subject元素(包括其包含的所有元素及各元素的相应属性)。
F2.按如下方法,根据queryType生成AttributeQuery中的AttributeDesignator元素:
F21.若queryType是GROUPS_ONLY,则产生一个AttributeDesignator元素,其AttributeName属性值为“Groups”;
F22.若queryType是ROLES_ONLY,则产生一个AttributeDesignator元素,其AttributeName属性值为“Roles”;
F23.若queryType是GROUPS_ROLES,则产生两个AttributeDesignator元素,其中一个的AttributeName属性值为“Groups”,另一个的AttributeName属性值为“Roles”。
F3.产生SAML请求的其他信息,如<ds:Signature>...</ds:Signature>等。
跨域信息查询模块S5生成了SAML请求后,将请求提交给跨域授权中介系统。当跨域授权中介系统返回SAML响应后,若响应结果是出错,则进行出错处理,若响应结果是成功,则跨域信息查询模块S5按如下方法获得有关信息:
G1.从SAML响应中的Subject元素获得用户的身份标识,从而确定返回的信息是否是被查询用户的,若不是,则进行出错处理;若是,继续;
G2.按如下方法从每个Attribute元素中分离出所需要的用户信息:
G21.若Attribute的AttributeName属性是“Groups”,则将Attribute中包含的每个AttributeValue元素的值取出来,它们对应的是用户所属的用户组ID,然后将这些组ID以逗号分隔的形式保存在返回结果Result对象的userGroups中。
G22.若Attribute的AttributeName属性是“Roles”,则将Attribute中包含的每个AttributeValue元素的值取出来,它们对应的是用户的角色,然后将这些角色以逗号分隔的形式保存在返回结果Result对象的userRoles中。
完成有关处理后,跨域信息查询模块S5将查询结果(Result对象)返回给授权实施模块。
跨域授权中介系统S5中的用户权限信息查询模块S54与权限与授权策略管理系统S1间的SAML交互协议的使用,同前面所述的跨域信息查询模块S4与跨域授权中介系统S5间的SAML交互协议的使用几乎是一样的,其主要差别是S54提交给S1的SAML请求中总是包含两个AttributeDesignator元素,其中一个的AttributeName属性值为“Groups”,另一个的AttributeName属性值为“Roles”。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (4)

1、一种基于跨域授权中介实现角色和组映射的跨域访问控制系统,包括基本访问控制系统和跨域系统两部分,其中基本访问控制系统位于一个授权域内,它从功能上又划分为权限与授权策略管理系统、授权决策引擎、授权实施模块三部分;跨域系统主要包括跨域授权中介系统和跨域授权信息查询模块两部分,其中跨域授权中介系统位于不同的授权域间,而跨域授权信息查询模块位于一个授权域内,作为域内访问控制系统与跨域授权中介系统连接的桥梁,其中:
权限与授权策略管理系统:定义用户角色、用户组及访问控制策略,从而对本域的用户身份、访问控制权限进行管理;
授权决策引擎:基于用户身份信息以及本地的访问控制策略对用户的在线资源访问与操作请求做出“允许”或“拒绝”的决定;
授权实施模块:通过一定的方式与应用服务系统集成,负责拦截、检查用户的资源访问请求,获取用户身份信息,通过一定的服务状态(Session)机制跟踪用户及在Session对象中保存用户的身份信息,并依据授权决策引擎的在线授权决策结果,对用户的服务请求进行控制;
跨域授权信息查询模块:一种能被授权实施模块直接调用的模块,用于域内访问控制系统同跨域授权中介系统连接,查询、获取跨域用户权限信息;
跨域授权中介系统:通过角色和组映射实现不同授权域中权限的转换,跨域授权中介系统还配置有如下两个表:
A、角色和组映射策略表,该表定义了将一个授权域中的角色、组集合映射到另一个授权域中的角色、组集合的映射策略;
B、授权域权限与授权策略管理系统地址表,表中有与授权中介系统相连的、各个授权域中的权限与授权策略管理系统的用户信息查询服务地址和端口号。
2、根据权利要求1所述的基于跨域授权中介实现角色和组映射的跨域访问控制系统,其特征在于:所述的跨域授权中介系统配置的角色和组映射策略表包含如下信息和具有如下语义:
A、表中有一系列映射策略(mapping policy),一个映射策略定义了一个授权域中角色、组到另一个授权域中角色、组的映射描述;
B、每个映射策略又由一系列的映射元素(mapping element)构成,它定义了源授权域中的一个角色、组集合到目标域中的一个角色、组集合的单向映射关系,映射元素具体地有如下几种形式:
B1、将源授权域中的一角色集映射到目标域中的一角色集,即
ROLES(SR1,SR2,...,SRm)=>ROLES(TR1,TR2,...,TRn);
B2、将源授权域中的一用户组集映射到目标域中的一角色集,即
GROUPS(SG1,SG2,...,SGm)=>ROLES(TR1,TR2,...,TRn);
B3、将源授权域中的一角色集映射到目标域中的一用户组集,即
ROLES(SR1,SR2,...,SRm)=>GROUPS(TG1,TG2,...,TGn);
B4、将源授权域中的一用户组集映射到目标域中的一用户组集,即
GROUPS(SG1,SG2,...,SGm)=>GROUPS(TG1,TG2,...,TGn);
C、以上映射元素的语义是,若用户在源授权域中同时拥有源域角色或组集合所包含的角色或组,那么,他相当于在目标授权域中具有目标域角色或组集合所包含的角色或组,也即他在目标域中将拥有对应角色或组的权限。
3、根据权利要求1所述的基于跨域授权中介实现角色和组映射的跨域访问控制系统,其特征在于:该系统按如下步骤进行访问控制:
步骤1:来自某授权域的用户通过网络访问本授权域的应用系统;
步骤2:应用系统的授权实施模块拦截、检查服务请求,并通过Session机制确定该用户是否已完成身份鉴别,若是,则转入步骤19;否则,继续到步骤3;
步骤3:应用系统的授权实施模块通过一定方式完成对用户的身份鉴别,并确定用户是否为本授权域的用户;
步骤4:对于来自本授权域的用户,应用系统中的授权实施模块从本地的权限与授权策略管理系统查询获得用户的角色、组ID信息,并将用户的身份ID、角色、组ID信息保存在该用户的Session对象中,然后转入步骤19;
步骤5:对于来自其他授权域的用户,应用系统中的授权实施模块通过一定的方式确定用户来自的授权域及身份标识(ID)信息;
步骤6:应用系统中的授权实施模块调用跨域授权信息查询模块,请求获取该跨域用户的跨域权限信息;
步骤7:跨域授权信息查询模块向跨域授权中介系统请求查询该跨域用户的权限信息,请求中有跨域用户来自的授权域名,即用户域,用户ID及本授权域名,即应用域;
步骤8:跨域授权中介系统接收到跨域权限信息查询请求后,首先查看其角色和组映射策略表中是否有从用户域到应用域的映射策略;
步骤9:否无,则跨域授权中介系统返回查询失败,并给出失败理由;
步骤10:若有,则跨域授权中介系统依据用户域名从授权域权限与授权策略管理系统地址表中找到用户所在域中的权限与授权策略管理系统地址,然后,向用户域中的权限与授权策略管理系统获取用户的角色、用户组信息,请求中有该用户ID;
步骤11:用户域中的权限与授权策略管理系统接收到来自跨域授权中介系统的查询请求后,根据用户ID从其数据库中查找用户的角色,包括所继承的所有父角色,以及组信息,若有相应用户,则返回查询成功及有关的查询结果;若找不到对应用户,则返回查询失败,给出原因,如无对应用户;
步骤12:跨域授权中介系统接收到来自用户域的角色、组查询结果后,判断查询结果是成功还是失败;
步骤13:若查询结果是失败,则跨域授权中介系统向应用域的跨域授权信息查询模块返回查询失败;
步骤14:若查询结果是成功,则跨域授权中介系统从角色和组映射策略表中,找到与用户域和应用域对应的映射策略,取出一个个的角色、组映射元素,依据映射元素对从用户域获得的用户角色、组进行从源域到目标域的角色、组映射,最后将映射获得的所有角色、组集合进行整合,返回给应用域中的跨域授权信息查询模块;
步骤15:应用域中的跨域授权信息查询模块将从跨域授权中介系统获得查询结果返回给应用系统的授权实施模块;
步骤16:应用系统的授权实施模块获得了查询结果后,判断结果是成功还是失败;
步骤17:若失败,授权实施模块阻断用户的服务访问;
步骤18:若成功,授权实施模块将跨域用户经角色和组映射后所拥有的角色、组保存到该用户的Session对象中,然后继续;
步骤19:应用系统的授权实施模块请求授权决策引擎对用户的服务访问进行授权决策,请求中有从用户Session对象取出的用户角色、组信息以及用户要访问的资源名(URL)和相应的操作;
步骤20:授权决策引擎根据用户的角色、组及从本地权限与授权策略管理系统获得的访问控制策略,做出允许或拒绝用户访问的决定,并将决定返回给应用系统的授权实施模块;
步骤21:应用系统的授权实施模块根据返回的授权决定结果进行访问控制实施,允许或阻断用户的服务访问。
4、根据权利要求3所述的一种基于跨域授权中介实现角色和组映射的跨域访问控制方法,其特征在于:所述步骤14中,取出一个个对应的角色、组映射元素进行角色和组映射时,按如下步骤进行映射:
第1步:根据用户在其源授权域中的角色、组形成相应的角色、组集合;
第2步:对每个映射元素判断其源集合是角色集还是组集,若是角色集转入步骤4,否则转入第3步;
第3步:判断映射元素的源集合是否为用户在源域中组集合的子集,若是,则根据映射元素的目标集合的类型,将映射元素的目标集合整合到映射结果的相应角色或组集合中,否则,转入第5步;
第4步:判断映射元素的源集合是否为用户在源域中角色集合的子集,若是,则根据映射元素的目标集合的类型,将映射元素的目标集合整合到映射结果的相应角色或组集合中,否则,转入第5步;
第5步:重复第2步开始的映射操作,直到对所有的相对应的映射元素完成映射操作。
CN2008100474229A 2008-04-22 2008-04-22 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统 Expired - Fee Related CN101262474B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100474229A CN101262474B (zh) 2008-04-22 2008-04-22 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100474229A CN101262474B (zh) 2008-04-22 2008-04-22 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统

Publications (2)

Publication Number Publication Date
CN101262474A true CN101262474A (zh) 2008-09-10
CN101262474B CN101262474B (zh) 2012-02-01

Family

ID=39962677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100474229A Expired - Fee Related CN101262474B (zh) 2008-04-22 2008-04-22 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统

Country Status (1)

Country Link
CN (1) CN101262474B (zh)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771676A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 一种跨域授权的设置、鉴权方法、相关装置及系统
CN101917448A (zh) * 2010-08-27 2010-12-15 山东中创软件工程股份有限公司 基于.net的应用中实现rbac访问权限控制方法
CN102073817A (zh) * 2010-12-29 2011-05-25 北京理工大学 一种基于rbac模型的动态访问控制改进方法
CN102143091A (zh) * 2010-08-06 2011-08-03 华为技术有限公司 跨域操作的实现方法、系统、服务器和浏览器
CN102148829A (zh) * 2011-03-29 2011-08-10 苏州市职业大学 一种网格环境下实体节点可信度的计算方法
CN101478536B (zh) * 2008-12-08 2011-09-14 山东浪潮齐鲁软件产业股份有限公司 一种解决权限管理中访问控制的方法
CN102202065A (zh) * 2010-10-13 2011-09-28 天维讯达无线电设备检测(北京)有限责任公司 一种访问控制方法及系统
CN102404232A (zh) * 2011-12-20 2012-04-04 上海电机学院 多域访问控制系统及方法
CN102523197A (zh) * 2011-11-23 2012-06-27 何伦 企业社交信息交互方法、服务器及企业社交网络系统
CN102761551A (zh) * 2012-07-09 2012-10-31 郑州信大捷安信息技术股份有限公司 多级跨域访问控制系统及控制方法
CN102932386A (zh) * 2011-08-10 2013-02-13 深圳市金蝶友商电子商务服务有限公司 一种消息传输控制方法及系统
CN102957697A (zh) * 2012-10-26 2013-03-06 上海交通大学 一种多域间基于rbac模型的访问控制策略合成方法
CN103227750A (zh) * 2013-04-26 2013-07-31 华为技术有限公司 控制报文传输的方法、装置和系统
CN103929426A (zh) * 2014-04-22 2014-07-16 清华大学 社交云服务系统中应用的访问控制方法
CN105225072A (zh) * 2015-11-05 2016-01-06 浪潮(北京)电子信息产业有限公司 一种多应用系统的访问管理方法及系统
WO2016095365A1 (zh) * 2014-12-18 2016-06-23 中兴通讯股份有限公司 授权处理方法及装置
CN105991613A (zh) * 2015-03-03 2016-10-05 北京神州泰岳信息安全技术有限公司 一种资源远程登录方法及系统
CN107332816A (zh) * 2009-04-20 2017-11-07 交互数字专利控股公司 多个域和域所有权的系统
CN107391568A (zh) * 2017-06-16 2017-11-24 福建省华渔教育科技有限公司 突破跨域请求限制的方法及其系统
CN107637038A (zh) * 2015-06-09 2018-01-26 英特尔公司 用于管理安全发布‑订阅系统的生命周期的系统、装置和方法
CN108632209A (zh) * 2017-03-20 2018-10-09 北京京东尚科信息技术有限公司 用于处理信息的系统、方法和装置
CN110096621A (zh) * 2019-03-19 2019-08-06 中国科学院计算机网络信息中心 一种基于标识的跨数据溯源模型系统的数据溯源方法
CN110502880A (zh) * 2019-07-30 2019-11-26 同济大学 一种基于属性聚合的异构身份关联方法
CN110650143A (zh) * 2019-09-26 2020-01-03 柯利达信息技术有限公司 一种集成平台多重授权认证方法及系统集成化平台
CN110958334A (zh) * 2019-11-25 2020-04-03 新华三半导体技术有限公司 报文处理方法及装置
CN111314318A (zh) * 2020-01-20 2020-06-19 扆亮海 不同域间安全互操作的跨域授权访问管制系统
CN112000936A (zh) * 2020-07-31 2020-11-27 天翼电子商务有限公司 基于跨域属性异构的身份服务方法、介质及设备
WO2021046782A1 (zh) * 2019-09-11 2021-03-18 Oppo广东移动通信有限公司 访问控制方法、设备及存储介质
CN112565189A (zh) * 2020-11-04 2021-03-26 国网安徽省电力有限公司信息通信分公司 一种基于云计算数据安全的访问控制系统
CN113297550A (zh) * 2021-06-17 2021-08-24 中国农业银行股份有限公司 权限控制的方法、装置、设备、存储介质及程序产品
CN113468511A (zh) * 2021-07-21 2021-10-01 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读介质及电子设备
CN113839865A (zh) * 2021-11-30 2021-12-24 北京鲸鲮信息系统技术有限公司 一种跨域调用服务的管理方法及系统
CN114461676A (zh) * 2022-04-11 2022-05-10 武汉中科通达高新技术股份有限公司 跨区域数据查询方法、装置、电子设备及存储介质
CN114650292A (zh) * 2020-12-17 2022-06-21 中移(苏州)软件技术有限公司 一种跨域数据传输方法、装置及存储介质
WO2022206549A1 (zh) * 2021-03-31 2022-10-06 贵州白山云科技股份有限公司 域名获取的方法、系统、电子装置、设备以及介质
CN115378635A (zh) * 2022-07-08 2022-11-22 西安工业大学 一种基于角色的系统间跨域访问控制方法及平台
WO2023024057A1 (zh) * 2021-08-27 2023-03-02 京东方科技集团股份有限公司 跨域授权处理方法及跨域调用处理方法
CN112243003B (zh) * 2020-10-13 2023-04-11 中移(杭州)信息技术有限公司 访问控制方法、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9467452B2 (en) 2013-05-13 2016-10-11 International Business Machines Corporation Transferring services in a networked environment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100574210C (zh) * 2004-12-29 2009-12-23 北京邮电大学 一种基于无等级角色间映射的访问控制方法
CN101030858A (zh) * 2007-02-09 2007-09-05 华中科技大学 一种基于隐藏证书的信任协商方法

Cited By (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478536B (zh) * 2008-12-08 2011-09-14 山东浪潮齐鲁软件产业股份有限公司 一种解决权限管理中访问控制的方法
CN101771676B (zh) * 2008-12-31 2013-04-24 华为技术有限公司 一种跨域授权的设置、鉴权方法、相关装置及系统
WO2010075798A1 (zh) * 2008-12-31 2010-07-08 华为技术有限公司 一种跨域授权的设置、鉴权方法、相关装置及系统
CN101771676A (zh) * 2008-12-31 2010-07-07 华为技术有限公司 一种跨域授权的设置、鉴权方法、相关装置及系统
CN107332816A (zh) * 2009-04-20 2017-11-07 交互数字专利控股公司 多个域和域所有权的系统
CN102143091A (zh) * 2010-08-06 2011-08-03 华为技术有限公司 跨域操作的实现方法、系统、服务器和浏览器
CN102143091B (zh) * 2010-08-06 2014-07-16 华为技术有限公司 跨域操作的实现方法、系统、服务器和浏览器
CN101917448A (zh) * 2010-08-27 2010-12-15 山东中创软件工程股份有限公司 基于.net的应用中实现rbac访问权限控制方法
CN102202065A (zh) * 2010-10-13 2011-09-28 天维讯达无线电设备检测(北京)有限责任公司 一种访问控制方法及系统
CN102073817A (zh) * 2010-12-29 2011-05-25 北京理工大学 一种基于rbac模型的动态访问控制改进方法
CN102073817B (zh) * 2010-12-29 2012-09-26 北京理工大学 一种基于rbac模型的动态访问控制改进方法
CN102148829A (zh) * 2011-03-29 2011-08-10 苏州市职业大学 一种网格环境下实体节点可信度的计算方法
CN102932386A (zh) * 2011-08-10 2013-02-13 深圳市金蝶友商电子商务服务有限公司 一种消息传输控制方法及系统
CN102932386B (zh) * 2011-08-10 2015-06-17 深圳市金蝶友商电子商务服务有限公司 一种消息传输控制方法及系统
CN102523197A (zh) * 2011-11-23 2012-06-27 何伦 企业社交信息交互方法、服务器及企业社交网络系统
CN102523197B (zh) * 2011-11-23 2015-09-02 何伦 企业社交信息交互方法、服务器及企业社交网络系统
CN102404232A (zh) * 2011-12-20 2012-04-04 上海电机学院 多域访问控制系统及方法
CN102761551A (zh) * 2012-07-09 2012-10-31 郑州信大捷安信息技术股份有限公司 多级跨域访问控制系统及控制方法
CN102761551B (zh) * 2012-07-09 2014-12-17 郑州信大捷安信息技术股份有限公司 多级跨域访问控制系统及控制方法
CN102957697A (zh) * 2012-10-26 2013-03-06 上海交通大学 一种多域间基于rbac模型的访问控制策略合成方法
CN103227750A (zh) * 2013-04-26 2013-07-31 华为技术有限公司 控制报文传输的方法、装置和系统
CN103227750B (zh) * 2013-04-26 2016-05-25 华为技术有限公司 控制报文传输的方法、装置和系统
CN103929426B (zh) * 2014-04-22 2017-04-19 清华大学 社交云服务系统中应用的访问控制方法
CN103929426A (zh) * 2014-04-22 2014-07-16 清华大学 社交云服务系统中应用的访问控制方法
WO2016095365A1 (zh) * 2014-12-18 2016-06-23 中兴通讯股份有限公司 授权处理方法及装置
CN105991613A (zh) * 2015-03-03 2016-10-05 北京神州泰岳信息安全技术有限公司 一种资源远程登录方法及系统
CN107637038A (zh) * 2015-06-09 2018-01-26 英特尔公司 用于管理安全发布‑订阅系统的生命周期的系统、装置和方法
CN107637038B (zh) * 2015-06-09 2021-04-30 英特尔公司 用于管理安全发布-订阅系统的生命周期的系统、装置和方法
CN105225072A (zh) * 2015-11-05 2016-01-06 浪潮(北京)电子信息产业有限公司 一种多应用系统的访问管理方法及系统
CN108632209A (zh) * 2017-03-20 2018-10-09 北京京东尚科信息技术有限公司 用于处理信息的系统、方法和装置
CN107391568A (zh) * 2017-06-16 2017-11-24 福建省华渔教育科技有限公司 突破跨域请求限制的方法及其系统
CN107391568B (zh) * 2017-06-16 2020-01-21 福建省华渔教育科技有限公司 突破跨域请求限制的方法及其系统
CN110096621A (zh) * 2019-03-19 2019-08-06 中国科学院计算机网络信息中心 一种基于标识的跨数据溯源模型系统的数据溯源方法
CN110502880A (zh) * 2019-07-30 2019-11-26 同济大学 一种基于属性聚合的异构身份关联方法
CN110502880B (zh) * 2019-07-30 2021-06-04 同济大学 一种基于属性聚合的异构身份关联方法
WO2021046782A1 (zh) * 2019-09-11 2021-03-18 Oppo广东移动通信有限公司 访问控制方法、设备及存储介质
CN110650143A (zh) * 2019-09-26 2020-01-03 柯利达信息技术有限公司 一种集成平台多重授权认证方法及系统集成化平台
CN110958334A (zh) * 2019-11-25 2020-04-03 新华三半导体技术有限公司 报文处理方法及装置
CN111314318A (zh) * 2020-01-20 2020-06-19 扆亮海 不同域间安全互操作的跨域授权访问管制系统
CN112000936A (zh) * 2020-07-31 2020-11-27 天翼电子商务有限公司 基于跨域属性异构的身份服务方法、介质及设备
CN112243003B (zh) * 2020-10-13 2023-04-11 中移(杭州)信息技术有限公司 访问控制方法、电子设备及存储介质
CN112565189A (zh) * 2020-11-04 2021-03-26 国网安徽省电力有限公司信息通信分公司 一种基于云计算数据安全的访问控制系统
CN114650292B (zh) * 2020-12-17 2024-01-30 中移(苏州)软件技术有限公司 一种跨域数据传输方法、装置及存储介质
CN114650292A (zh) * 2020-12-17 2022-06-21 中移(苏州)软件技术有限公司 一种跨域数据传输方法、装置及存储介质
WO2022206549A1 (zh) * 2021-03-31 2022-10-06 贵州白山云科技股份有限公司 域名获取的方法、系统、电子装置、设备以及介质
CN113297550A (zh) * 2021-06-17 2021-08-24 中国农业银行股份有限公司 权限控制的方法、装置、设备、存储介质及程序产品
CN113468511A (zh) * 2021-07-21 2021-10-01 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读介质及电子设备
WO2023024057A1 (zh) * 2021-08-27 2023-03-02 京东方科技集团股份有限公司 跨域授权处理方法及跨域调用处理方法
CN113839865B (zh) * 2021-11-30 2022-03-01 北京鲸鲮信息系统技术有限公司 一种跨域调用服务的管理方法及系统
CN113839865A (zh) * 2021-11-30 2021-12-24 北京鲸鲮信息系统技术有限公司 一种跨域调用服务的管理方法及系统
CN114461676A (zh) * 2022-04-11 2022-05-10 武汉中科通达高新技术股份有限公司 跨区域数据查询方法、装置、电子设备及存储介质
CN115378635A (zh) * 2022-07-08 2022-11-22 西安工业大学 一种基于角色的系统间跨域访问控制方法及平台
CN115378635B (zh) * 2022-07-08 2024-04-19 西安工业大学 一种基于角色的系统间跨域访问控制方法及平台

Also Published As

Publication number Publication date
CN101262474B (zh) 2012-02-01

Similar Documents

Publication Publication Date Title
CN101262474B (zh) 一种基于跨域授权中介实现角色和组映射的跨域访问控制系统
Camenisch et al. Privacy and identity management for everyone
Chadwick et al. PERMIS: a modular authorization infrastructure
Damiani et al. Managing multiple and dependable identities
Ahn et al. Managing privacy preferences for federated identity management
CN105871914A (zh) 客户关系管理系统访问控制方法
Badr et al. The integration of corporate security strategies in collaborative business processes
Kagal et al. Developing secure agent systems using delegation based trust management
US20140013447A1 (en) Method for User Access Control in a Multitenant Data Management System
Pham et al. On a taxonomy of delegation
Schläger et al. Attribute-based authentication and authorisation infrastructures for e-commerce providers
Mont et al. EnCoRe: dynamic consent, policy enforcement and accountable information sharing within and across organisations
Ahn et al. User-centric privacy management for federated identity management
Koshutanski A Survey on distributed access control systems for web business processes.
Mont et al. Identity management: a key e-business enabler
Pashalidis et al. Privacy in identity and access management systems
Pham et al. Commitment issues in delegation process
Chadwick The X. 509 privilege management infrastructure
Nazareth Spade: Spki/sdsi for attribute release policies in a distributed environment
Schläger et al. Enabling attribute-based access control in authentication and authorisation infrastructures
Morin Exception based enterprise rights management: Towards a paradigm shift in information security and policy management
Song et al. A Blockchain-Based Digital Identity System with Privacy, Controllability, and Auditability
Morin et al. A Model for Credential Based Exception Management in Digital Rights Management Systems
Zhou et al. A Framework for Cross-Institutional Authentication and Authorisation
Wu et al. Evaluation of Authorization-Authentication Tools: PERMIS, OASIS, XACML & SHIBOLETH

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120201

Termination date: 20170422