具体实施方式
转向附图,其中,相同的标号指相同的元件,示出本发明在合适的计算环境中实现。尽管并非所需,但本发明将在计算机可执行指令的一般上下文中描述,计算机可执行指令如程序模块,由计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以在其它计算机***构造中实践,包括手持式设备、多处理器***、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
本描述从对可用于实现本发明的示例性***中的通用计算装置的描述开始,之后将参考图2-5更详细地描述本发明。现在转向图1,以常规计算机形式20示出了通用计算装置,包括处理单元21、***存储器22以及将各类***组件包括***存储器耦合至处理单元21的***总线23。***总线23可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线结构的本地总线。***存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出***(BIOS)26,包含如在启动时协助在计算机20内的元件之间传输信息的基本例程,储存在ROM 24中。计算机20也包括用于对硬盘60进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光盘31如CD-ROM或其它光媒质进行读写的光盘驱动器30。除上述计算机可读媒质外,通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至***总线23。驱动器及其相关的计算机可读媒质为计算机20提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失存储。尽管这里描述的示例环境采用了硬盘60、可移动磁盘29以及可移动光盘31,本领域的技术人员可以理解,也可以在示例性操作环境中使用能够储存可由计算机访问的数据的其它类型的计算机可读媒质,包括盒式磁带、闪存卡、数字多功能盘、Bernoulli盒式磁盘、随机存取存储器、只读存储器、存储区域网络等等。
众多程序模块可储存在硬盘60、磁盘29、光盘31、ROM 24或RAM 25中,包括操作***35、一个或多个应用程序36、其它程序模块37以及程序数据38。用户可以通过诸如键盘40和指向设备42等输入设备向计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至***总线的串行端口接口46连接到处理单元21。但是也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器47或另一类型的显示设备也通过接口,如视频适配器48连接到***总线23。除监视器之外,个人计算机通常包括其它***输出设备(未示出),如扬声器和打印机。
计算机20可以在使用到一个或多个远程计算机,如远程计算机49的逻辑连接的网络化环境中操作。远程计算机49可以是服务器、路由器、网络PC、个人计算机、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机20相关的元件,尽管在图1中仅说明了存储器存储设备50。图1描述的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机20通过网络接口或适配器53连接至局域网51。当在WAN网络环境中使用时,计算机20通常包括调制解调器54或其它装置,用于通过WAN 52建立通信。调制解调器54可以是内置或外置的,通过串行端口接口46连接至***总线23。描述的与计算机20相关的程序模块或其部分可储存在远程存储器存储设备中,如果存在的话。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
在此,将参考由一个或多个计算机执行的行动和操作的符号表示来一般描述本发明,除非另外指示。由此,可以理解,这类行动和操作,有时候也被称为计算机执行的,包括计算机的处理单元对以结构化形式表示数据的电信号的操作。这一操作转化数据或在计算机的存储器***中的位置上对其进行维护,以本领域的技术人员都理解的方式重新配置或另外改变了计算机的操作。维护着数据的数据结构是存储器上的物理位置,具有由数据的格式定义的特定属性。然而,尽管本发明在上述上下文中描述,如本领域的技术人员所理解的,它并不意味着是局限性的,后文描述的各种行动和操作也可以以硬件实现。在以下描述中,计算装置如验证装置和超级授权机构装置可以是如上文对图1关于计算机20和/或远程计算机49的描述,或者可以作为替换是另一类型的计算装置。
图2A示意地示出了在其中使用现有网络资源管理技术的示例性网络环境200。特别地,主体A 201、主体B 203、主体C 205、主体D 207、主体E 209和主体F 211每一个都与授权机构X 213、授权机构Y 215和授权机构Z 217之一关联。主体以及至少它们的相应验证授权机构通过网络219通信地连接。每一主体可在网络219上由诸如参考图1所讨论的计算机20的计算机、工作站或能够执行所必须的网络通信和处理任务的任一其它类型的计算装置表示。网络219可包括任意数量和类型的网络连接,包括有线和无线连接、LAN、WAN和因特网连接或其任一组合以及任一类型的网络连接。
在现有技术中,授权机构X 213、授权机构Y 215和授权机构Z 217中的每一个负责在特定的名字空间内验证账号ID,因此当接收账号ID用于验证时,立即从该账号ID本身清楚哪一授权机构负责该验证。由此,当主体之一试图登录特定域(即,与特定授权机构关联的名字空间内的网络资源)时,适当的授权机构通过适用于该目的的众多已知协议之一执行验证,并向该主体或者授权或者拒绝访问。注意,尽管主体201、203、205、207、209、211可以仅与众多授权机构213、215、217之一关联,环境200内可存在网络连接,使主体能够直接或间接与其它域上的授权机构和机器进行通信。
现在参考图2B,示意地示出了对应于图2A的网络图的逻辑域体系结构202。在所示的示例中,主体A 201和主体C 205与授权机构X 213关联(如,有它的账号),主体B 203、主体D 207和主体F 211与授权机构215关联,主体E 209与授权机构217关联。尽管每一主体可以具有或不具有与除相应的关联验证授权机构之外的授权机构和机器的网络连接,在图2B的逻辑结构202中不对这类连接进行描述,因为图2B的机构202仅为示出验证关系。
由于如上所述因网络资源安全原因所采纳的名字空间约定,不可能在当前***中将主体从一个域移动到另一个而不改变该主体的账号ID,导致潜在的服务中断。即,由于账号ID包括便于验证的名字空间标识符,并且由于验证授权机构在非交迭名字空间中进行验证,对特定验证机构有用的账号ID对另一验证机构没用,即便对第二个域的访问的权限是另外可授权的。
有许多原因,特定的组织可能选择维护包括多个域或具有多个授权机构的网络***,且特定组织可能想要在这多个域之间移动主体。例如,在组织合并中,可以从独立的部分形成单个公司或组织,每一部分先前与一个或多个域关联。如果要维护组成组织的实体,所得到的组织网络经常将与合并的公司关联的域作为组成部分包括在内。在另一示例中,法律可能要求跨国公司或跨区域组织或集团维护独立的控制域。例如,本地法律可能需要跨国金融公司为在特定的国家内的管理人员建立单独的控制域,以使仅对本地人员授予对本地活动的控制和对本地数据的访问。
维护多个授权机构的其它原因包括管理分离和数据分离。当分散的、松散地联合的集团想要在某种程度上共享资源,但是不希望共享对资源或与其关联的主体的管理时,管理分离的主体就有用了。当网络资源包括宝贵的、机密的或者敏感的数据或资源时,数据分离的主体就有用了,并且多个授权机构的创建将可访问该组特定资源的个人的数量减到最小。
如上所述,横跨安全边界移动主体经常是有用或方便的。例如,当与特定用户账号关联的个别用户在组织内改变职位,从一个部门调动到另一个部门时,经常期望能这样做。如果每一部门与其自己的授权机构关联,调任的雇员需要将其账号从一个授权机构传输到另一个。在现有技术中,这需要改变账号ID并且伴随服务或访问的中断。可能期望移动用户账号的另一示例情况在合并或收购之后,当交易的一方希望将其主体迁移到与交易的另一方关联的原有授权机构时出现。
本发明描述的示例性实施例的***维护管理隔绝和数据分离,而在不中断服务的情况下使主体能够移动并且能够合并授权机构。一般而言,通过结合身份目录使用超级授权机构来实现这一级别的性能。如后文更详细描述的,超级授权机构不是验证授权机构,而是将访问尝试指引到适当的普通授权机构用于验证。超级授权机构采用身份目录来方便这一任务。身份目录有效地将账号ID映射到验证授权机构,借此每一账号ID与单个验证授权机构关联。
图3A的示意图示出了依照本发明的一个实施例可在其中实现超级授权机构的网络体系结构300。超级授权机构也可以被称为控制授权机构,因为它控制主体的验证,但不是实际上实施对那些主体的验证。除与图2A所示的主体和验证机构类似的主体和验证机构之外,体系结构300还包括通过示例超级授权机构I(321)和示例超级授权机构II(323)所示的一个或多个超级授权机构。每一超级授权机构321、323可以通过网络319连接到图中所示的其它网络实体的一些或全部。然而,唯一需要的连接是每一超级授权机构321、323和与该超级授权机构关联的任一一个或多个验证授权机构之间的连接。验证授权机构和超级授权机构之间的相互关系将在后文更详细描述。
参考图3B,通过逻辑结构302示意地示出了验证授权机构和超级授权机构之间的示例性逻辑关系。如图所示,每一超级授权机构321、323与一个或多个验证授权机构关联,而每一验证授权机构最多与一个超级授权机构关联。注意,尽管授权机构可与单个主体关联和/或超级授权机构可与单个授权机构关联,这一情况通常,尽管并非必须,是瞬时的。
尽管本发明不需要每一验证机构仅与一个超级授权机构关联,然而这是优选的,因为它往往简化了管理和验证任务。在示出的示例中,超级授权机构I(321)与授权机构X(313)和授权机构Y(315)关联,而超级授权机构II(323)与授权机构Z(317)关联。
进而,授权机构X(313)、授权机构Y(315)和授权机构Z(317)的每一个与特定的用户或主体,如特定的账号关联。然而,与其它验证技术不同,验证授权结构和主体之间的连接不是基于非交迭名字空间,而是基于由相关的超级授权机构维护的身份目录中包含的政策选择。后文将要详细讨论的身份目录本质上将每一主体的账号标识符映射到验证授权机构,并且可以改变目录的映射而不改变账号标识符。
由于映射由政策确定,而不是被强制来遵守名字空间边界,两个相异的验证授权机构可在同一名字空间中验证,并且任一验证授权机构可在多个名字空间中验证。映射可基于组织内主体的组织从属关系、主体的地理位置、资历、职位等等。
图4A示出了诸如超级授权机构I(321)和超级授权机构II(323)的超级授权机构的示意表示。图4A的示图是为了用于说明和简化目的,并表示超级授权机构401的一个可能的实现。给定本发明的教导,本领域的技术人员可以理解,本发明包括其它的实现。示例性超级授权机构401包括网络接口403、授权机构解析逻辑405以及身份目录407。组件间可通信地相互关联,使网络接口403和身份目录407对授权机构解析逻辑405可用。
超级授权机构401可以在众多类型的计算装置的任一个上实现。在本发明的一个实施例中,超级授权机构401在服务器上实现,并且超级授权机构401的组件是软件模块和元件,如上文一般对于图1所描述的。在本发明的一个实施例中,组件之间的通信路径包括服务器计算机的总线或内部通信路径。
图4B示意地示出了依照本发明的一个实施例的身份目录407的细节。特别地,身份目录407提供了主体账号ID(如,
[email protected])到验证授权机构的映射。在图4B中示出该映射是列表格式的一对一映射,其中,身份列455中的每一条目453通过表映射到验证授权机构列459中对应的条目457。
如示出的示例所说明的,主体账号ID到验证授权机构的映射不需要考虑名字空间边界。例如,“msn.com”域中的客户机由验证授权机构A和验证授权机构B两者验证。对“microsoft.com”域中的客户机也是如此。只要改变身份目录中的映射就将得到相关主体到同一超级授权验证机构下的不同验证授权机构的重映射。如上所述,这是有利的,因为可以改变验证责任而不需要改变账号ID本身。
总览言之,依照本发明的一个实施例,超级授权机构401的操作如下。属于用户或主体的机器,如标签为主体A(413)的机器联系验证机构,如驻留在标签为授权机构411的机器上者,请求对资源的访问。这一请求的形式可以是登录请求或尝试。所联系的授权机构411然后通过网络409和网络结构402向超级授权机构401发送该请求,用于由授权机构解析逻辑405利用身份目录407标识适当的授权机构,以验证由该请求所标识的主体。超级授权机构401然后或者直接将验证请求传输到所选择的验证授权机构,或者通过初始的接收授权机构促使该请求得以传输。选择的验证授权机构可以是但不必是最初从主体接收登录请求的验证授权机构。
注意,依照本发明的一个实施例,改变身份目录407的内容,例如将给定的账号ID重映射到另一验证授权机构的过程也较佳地在授权机构解析逻辑405需要时执行。通常,管理员发布命令,引发授权机构解析逻辑405对身份目录407作出适当的改变。这类命令可以通过主含(hosting)超级授权机构401的计算机的用户接口接收,或者可以从远程位置通过网络接口403或其它网络连接到达。
图5的流程图更详细地传达出本发明描述的新体系结构在处理对网络资源的访问的请求时的操作。特别地,在步骤501,主体通过向授权机构发送登录请求试图登录到特定的网络资源。请求中包括主体账号ID,通常包括如图4B所示的个人标识符和域标识符。在步骤503,接收请求的授权结构不直接决定是否验证该请求的主体,而是将该请求转发到对特定的接收授权机构负责的超级授权机构。
随后在步骤505,超级授权机构从传输中提取账号ID信息,并在步骤507中使用该账号ID信息作为输入到身份表的关键字来标识与特定的主体关联的验证授权机构。注意,超级授权机构可以首先进行检查以确定特定的发送授权机构是否是超级授权机构所负责的。授权机构标识符可用于此目的。也要注意,根据身份目录的内容,与特定主体身份关联的验证授权机构可以是或不是接收并传递登录请求的同一授权机构。在步骤509,超级授权机构促使将登录请求传输到通过身份目录标识的适当的授权机构。
在这一步,超级授权机构可以或者直接发送该请求,或者促使第三方发送该请求。直接转发请求的过程可以被称为“链连(chaining)”。然而,链连不是必需的,请求也可以通过众多其它机制的任一个完成。例如,超级授权机构在步骤507解析了适当的验证授权机构之后,可以“移送”(refer)该请求而不是链连它。“移送”需要超级授权响应转发该请求的授权机构并向该授权机构告知适当的验证授权机构。然后将请求从最初向超级授权机构转发请求的授权机构传递到适当的验证授权机构。尽管可以使用链连或移送,或实际上其它方法,如果相关的授权机构是可通信地连接的,优选使用移送。这是由于移送一般允许更大的***规模,因为在特定的时间段内,单个超级授权机构可以是更大数量的验证请求中的一方。
最后,在步骤511,选择的授权机构适当地验证该请求。如果成功,作为验证的结果,验证授权机构可向主体发送许可通知。
应当理解,本发明描述的示例性实施例中的这一新体系结构和***允许提高的验证灵活性,而没有随之增加***对冒充和其它不法行为的易损性。例如,在传统的***中,信任两个相异的授权机构A和B来验证“@msn.com”和“@microsoft.com”主体,验证机构A和B必须彼此具有高管理可信度,因为授权机构A的管理员可能验证应当仅由授权机构B验证的主体,反之亦然。换言之,授权机构A需要如它信任它自己的管理员一样足够信任授权机构B的管理员,在一些情况下这简直是不可能的。然而,本发明描述的示例性***允许授权机构共享名字空间,而不需要相互的管理可信度。每一授权机构仅需要具有超级授权机构管理员的可信度,这是更合乎人意的,因为超级授权机构管理员的数量、位置和从属关系通常比标准授权机构更有约束。本发明的许多实施例中可达到的有利结果还有,主体可以横跨名字空间边界移动而不改变其身份;超级授权机构身份目录中的简单改变是记录主体身份到验证授权机构的新映射的全部所需。
可以理解,描述了用于主体账号验证的改进***和方法。由于可以应用本发明的主体的许多可能实施例,应当认识到,本发明参考附图描述的实施例仅为说明性的,并不应当作为限制本发明的范围。例如,本领域的技术人员可以认识到,以软件示出的说明的实施例的一些元件可以以硬件实现,并且反之亦然,或者在不脱离本发明的精神的情况下可以在排列和细节上修改说明的实施例。此外,可以理解,本发明可以在任意大小和形状的合适的网络环境中实现。而且,尽管本发明的说明示出了少量的主体、授权机构和超级授权机构,本发明意指具有更多或更少这些实体的***。因此,本发明如所述地考虑处于所附权利要求书及其等效技术方案的范围之内的所有这些实施例。