首页> 中国专利> 使用横向扩展目录特征的在线服务访问控制

使用横向扩展目录特征的在线服务访问控制

摘要

各实施例提供在线计算环境的应用和/或资源访问控制特征,但不限于此。在一个实施例中,一种计算机实现的方法部分地基于使用与直接客户访问隔离且被部署在已定义数据中心体系结构中的多个目录服务实例为在线应用环境提供访问控制特征。在一种实施例中,作为向客户提供在线应用服务的特征的一部分,计算环境使用基于web的访问控制特征和具有组织单元和相应映射的多个目录服务实例来维护支持基础设施。包括且可获得其他实施例。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-06-29

    授权

    授权

  • 2015-08-12

    专利申请权的转移 IPC(主分类):G06F9/46 变更前: 变更后: 登记生效日:20150720 申请日:20110616

    专利申请权、专利权的转移

  • 2013-03-27

    实质审查的生效 IPC(主分类):G06F9/46 申请日:20110616

    实质审查的生效

  • 2013-02-27

    公开

    公开

说明书

背景

提供公司范围内的协作环境的一种常见实践要求购买用于在用户或公司网络 内本地安装和部署的有形软件产品。例如,公司可以部署公司范围内的网络体系结 构以便控制用户对文件和资源的访问,部分依赖于公司防火墙资源和本地目录应用 以便维持对该体系结构的访问许可。该目录可以被用来包含该系统的用户的集中式 列表。例如,目录可以被用来为目录中的每一用户创建私有工作空间(我的站点)。 当用户和网络组件的数量增加时,对依赖于所安装的产品的企业底线来说,维护安 全和访问许可的任务可能是耗时和昂贵的。

作为从旧模式的自然进化,当企业倾向于摆脱在已定义的网络内的应用和/或 用户的往往低效和繁重的安装和管理时,越来越多地使用在线应用服务。把维护、 更新和安全的重任留给分离的实体是有吸引力的选项。最终,必须具有某种适当的 机制来确保对客户数据的访问限于经授权用户。例如,所托管的应用服务需要考虑 服务品质、站点密度、安全、和/或其他服务问题。与控制当前的和将来的客户对 所托管的应用服务的访问相关联的复杂性与规模混合起来,且变得更难以维护。

概述

提供本概述以便以简化形式介绍下面在详细描述中进一步描述的概念的选 集。本概述不旨在标识所要求保护的本主题的关键特征或必要特征,也不预期用来 帮助确定所要求保护的本主题的范围。

各实施例提供在线计算环境的应用和/或资源访问控制特征,但不限于此。在 一个实施例中,一种计算机实现的方法部分地基于与直接客户访问隔离且被部署在 已定义数据中心体系结构中的多个目录服务实例的使用为在线应用环境提供访问 控制特征。在一种实施例中,作为向客户提供在线应用服务的特征的一部分,计算 环境使用基于web的访问控制特征和具有组织单元和相应映射的多个目录服务实 例来维护支持基础设施。包括且可获得其他实施例。

从下列详细描述的阅读和相关附图的回顾将明显看出这些和其他特征和优 点。应理解,前述的一般描述和下列详细描述两者都仅是解释性的,且不限制所要 求保护的本发明。

附图简述

图1是示例性计算环境的框图。

图2是阐释示例性在线应用服务的各方面的流程图。

图3是阐释控制对在线应用服务和/或资源的访问的示例性过程的流程图。

图4是示例性网格网络环境的框图。

图5是描绘在线服务应用环境的多个示例性组织单元的框图。

图6是阐释用于实现在此描述的各种实施例的示例性计算环境的框图。

详细描述

图1是示例性计算环境100的框图,示例性计算环境100包括向环境100的 经准许用户提供在线应用服务和/或资源的功能性。在一个实施例中,环境100包 括使用多个目录服务实例102(1)-102(n)来管理和控制被递送给订阅客户和其他经 授权用户的在线应用服务和/或资源的各方面,但不限于此。如下面所讨论的,部 分地基于多个目录服务实例参数,订阅客户可以访问和使用包括在线服务网络的环 境100的在线应用服务和/或资源。示例性在线服务网络可以包括在某种通信信道 上进行通信的公共网络和私有网络,例如基于web的网络(例如,因特网)。客 户可以订阅以便使用某些在线服务和/或资源,这些在线服务和/或资源例如可以包 含多个主机、合作伙伴和站点集合。

如图1中所示出和下面更详细地描述的,环境100包括声明提供程序组件或 声明提供程序104、同步器组件或同步器106、与向包括客户系统112(1)-112(n)的 多个实体提供服务和/或资源的在线服务体系结构110相关联的网格管理器组件或 网格管理器108。在一种实施例中,声明提供程序104、同步器106和网格管理器 108被包括为对已定义的网格网络的组件可用的集中式资源中心的一部分。一个实 施例的在线服务体系结构110包括在线应用资源114、在线应用服务116和包括处 理、联网和/或存储器资源的其他资源/应用118。应明白,环境100可以包括附加 的组件和配置。例如,每一网格网络可以包括被配置为服务于不同类型的客户的不 同的服务器和/或组件拓扑。

在各种实施例中,部分地基于不同的客户和目录服务实例102(1)-102(n)中包 含的其他信息,体系结构110的全部或所选择的部分可以由客户和/或环境100的 其他用户访问和使用。如下面所描述的,目录服务实例102(1)-102(n)可以由环境 100的组件用作维护在线服务和/或资源并将其提供给包括任何经准许的雇员、合作 伙伴和/或其他订户或用户的每一客户的一部分。例如,每一目录服务实例可以被 用来部分地基于每一订阅客户的用户身份、安全许可、支持角色和/或关联组来控 制对服务和/或资源的访问。

作为提供在线服务和/或资源的一部分,一个实施例的环境100包括使用多个 域控制器来控制对目录服务实例的访问并管理目录服务实例。分散在整个环境100 中的域控制器可以被用来提供稳健的故障转移的在线服务和资源体系结构。在一种 实施例中,环境100把每一目录服务实例一起部署的多个域控制器用作服务于各种 客户和/或区域的一部分,但不限于此。例如,作为使用目录服务实例102(1)-102(n) 中的一个或多个来促进与客户账户的同步和其他服务的一部分,多个域控制器可以 被部署在远程数据中心中(例如,物理托管位置)。作为改善授权查询和/或其他 操作的性能的一部分,可以为每一目录服务实例部署附加的域控制器。

根据一个实施例,声明提供程序104、同步器106和网格管理器108可以包括 通过使用一个或多个目录服务实例(DSI)数据结构来向订阅客户提供在线服务来 提供用户授权和访问、资源管理、合作伙伴和/或其他访问和使用特征的功能性。 在一种实施例中,作为控制对网格网络的服务的访问的一部分,声明提供程序104 被包括为web服务器角色的一部分,且操作为查询与DSI数据结构相关联的域控 制器。一个实施例的环境100包括与每一DSI数据结构相关联的多个域控制器(例 如,两个、四个、六个等等)。在一种实施例中,可以部分地基于跟踪在线服务的 性能特征的多种性能度量的检查来精简域控制器和DSI数据结构的数量。例如, 性能度量可以部分地基于DSI数据结构中所包含的对象数量的函数跟踪具体的查 询的操作。性能度量可以被用作部署附加的DSI数据结构和/或其他组件的一部分。

可以部分地使用一个实施例的同步器106来用多个不同的客户的客户信息填 充和维护每一DSI数据结构。一种实施例的这样的填充操作部分地取决于每一DSI 数据结构要包含的已分配的对象数量。在一种实施例中,同步器106可以使用一定 模式和数量的web服务调用来填充和管理每一DSI数据结构。一种实施例的同步 器106使用下面描述的同步守护进程来检查给定客户的数据对象(例如,新的、更 新、已删除等等),但不限于此。例如,只要检测到或实现了客户改变(例如,公 司信息已经改变、用户列表已经改变、组已经改变、订阅和许可证改变等等),同 步守护进程可以向可用的web服务组件发出查询以便定位具体的DSI数据结构。 所查询的web服务可以操作为向同步守护进程提供关联DSI数据结构的名称,并 被同步器106用作同步操作的一部分。在一种实施例中,唯一GUID可以由同步器 106用作每一客户的标识符,且被包含在关联DSI数据结构中以便标识关联组织单 元数据结构。

同步器106可以使用各种DSI数据结构的多个组织单元120(1)-120(n)来维护 在线服务的完整性,诸如例如保持在线服务账户最新,其中,可以用不同的在线服 务客户、合作伙伴、成员和/或其他用户的信息填充每一组织单元。例如,每一组 织单元可以被用来表示给定客户的客户订阅细节,包括经准许的客户用户、服务和 /或资源的访问和/或安全组、外联网用户和/或外来原则对象(FPO)。

在一个实施例中,FPO可以被用来表示非雇员用户或某种客户的许可组。在 一种实施例中,一个或多个FPO可以被包含在第一公司的组织单元中,其中,FPO 映射参数指向可以被包括或可以不被包括在相同的网格网络中的一个或多个不同 的组织单元的另一用户对象、组和/或目录服务实例。例如,FPO可以在第一公司 的组织单元中被实例化为被包含在第二客户的组织单元数据结构内的管理员代理 组的虚拟表示。相应地,可以以与把许可给予各组客户组织单元相似的方式为客户 组织单元的非雇员和非外联网用户定义许可。例如,由于FPO对象被包括为有对 站点集合的访问权的经授权安全组的成员(例如,管理员组、专用访问组等等), 与组FPO相关联的用户获得对所有者的站点集合的访问权。

继续参见图1,一个实施例的网格管理器108作为环境100的网格网络的中央 控制中心或管理组件操作。一种实施例的网格管理器108充当一个或多个关联网格 网络的web服务主机。例如,网格管理器108托管多种web服务,这些服务用来 定位服务器、创建新的客户对象、定位目录服务实例和/或提供其他服务或功能。 网格管理器108可以为拥有某种站点集合或站点集合的集合的订阅客户保存到具 体的DSI数据结构的定位和/或映射。

出于各种原因,可以由网格管理器108把一种实施例的DSI数据结构添加到 环境100。在一些情况中,由于现有的DSI数据结构不具有包含给定量的客户信息 的容量,基于新雇员或组的增加的对附加服务的客户请求可以要求增加新的DSI 数据结构以便充当该客户请求的容器。一旦某种容器阈值、查询滞后或对性能构成 负面影响的其他问题发生,网格管理器108也可以管理网格网络的各方面。一种实 施例的网格管理器108明确地跟踪(例如,使用映射)每一DSI数据结构(包括 新的和重新放置的DSI数据结构)的位置。

声明提供程序104可以使用由网格管理器108提供的信息来为每一新请求查 询相应的DSI数据结构。例如,作为响应请求的一部分,声明提供程序104可以 使用与站点集合相关联的元数据来为所请求的集合所有者标识DSI数据结构的名 称,以便部分地基于所标识名称进行查询。在一种实施例中,每一DSI数据结构 可以被用来包括多个订阅客户(包括竞争对手公司、合作伙伴、可信的和/或非可 信的成员)的客户信息,该客户信息可以被用来为给定用户提供某些在线服务和/ 或资源。在一种实施例中,用标识可以呼叫以便解决任何服务问题的支持合作伙伴 (例如,FPO)的支持组填充DSI数据结构。

作为提供在线服务特征的一个示例,DSI数据结构可以由声明提供程序104 用来判断某一请求的用户是不是订阅具体的应用服务或资源的客户的成员。声明提 供程序104可以使得访问或拒绝访问部分地以判断该请求是否由使用相应的DSI 数据结构的客户的经准许成员发出为基础。例如,DSI数据结构可以由声明提供程 序104引用或使用来拒绝近来已经降级或从各自的公司或合作伙伴公司停职的用 户的访问。在这样的示例场景中,DSI数据结构可以被用来断开或脱离被链接到客 户资源内部公司访问控制列表,该列表可能仍然包含对已断开或近来未经授权的用 户的“允许”许可。因此,不依赖于底层客户系统是否具有对用户的“允许”许可,DSI 数据结构启用在对哪些用户可以或不可以访问在线服务站点集合的资源的明确控 制。

在一个实施例中,环境100的组件也可以把一个或多个DSI数据结构用作为 在线数据中心提供资源管理模型的一部分。一种实施例的DSI数据结构可以被用 作使用分配给每一各自订阅客户的在线存储资源来通信和/或存储数据的一部分。 客户可以选择在任何具体访问的整个生命周期中实例化附加的资产并使用对在线 服务或资源的订阅。在一种实施例中,可以由客户创建和/或使用的任何最大量的 资产部分地基于特定的订阅和/或使用类型。

在使用网格管理器组件108把新的客户资产添加到现有的DSI数据结构时, 一种实施例的声明提供程序104可以使用DSI数据结构来判断客户是否具有所允 许的总存储的任何剩余存储。例如,部分地基于订阅类型,在客户尝试创建新的资 产时,在允许或阻止订阅客户创建附加的资产之前,可以由声明提供程序104检查 DSI数据结构以判断剩余容量和当前使用的量。

环境100的组件也可以被用来允许客户构建围绕“支持”其他客户的企业模型。 例如,可以给予第一客户对由在由DSI数据结构的参数定义的合伙关系之外没有 已定义关系的不同客户拥有的资产(例如,用于提供某些服务和/或资源的在线站 点集合)的管理员许可。在一种实施例中,与第一客户相关联的第一组织单元120(1) 可以包括到与第二客户相关联的第二组织单元120(n)的用户和用户组的指针或映 射。相应地,DSI数据结构可以被用来判断一个客户的具体用户是不是另一客户或 客户合作伙伴的经授权用户或支持者。

在一个示例性环境100中,各组件可以被配置为操作为使用控制对各种在线 资源的访问的一个或多个DSI数据结构(包括使用分布于整个网格网络的计算资 源)来向客户、支持合作伙伴和/或其他可信用户提供在线服务和/或资源。可以使 用客户许可数据和其他信息来用对应于一个或多个DSI数据结构的客户的信息填 充组织单元。可以用用户列表、组列表、分布列表、外联网用户、FPO、订阅和/ 或其他客户信息填充一个实施例的每一组织单元。

在一种实施例中,作为实现针对环境100的订阅用户的访问控制特征的一部 分,组织单元和/或目录服务实例映射可以被用来发现和定位与用户访问请求相关 联的许可。作为控制对资源和/或服务的访问以便由此借助于雇员、合作伙伴、和/ 或其他经授权或未经授权的关联者的增加或离开来维护访问控制的一部分,可以传 输原始的、新的和/或经修改的客户信息并将其用来填充一个或多个DSI数据结构 的每一组织单元。例如,可以用经准许的用户和经准许的访问类型填充大型企业的 DSI数据结构的组织单元。对于这样的示例,许可可以部分地基于把服务器场的专 用网格网络用作向企业雇员、支持提供程序和/其他已定义用户提供虚拟的应用资 源的一部分的订阅类型和/或安全类型或组。

环境100的组件可以把DSI数据结构用作提供对地理上分散的数据中心的安 全访问的一部分,包括应对服务断供期、资源配额和/或选择客户;使用所要求的 顺应性策略和防病毒签名以及高级配置设置和所要求的安全更新;基于订阅和/或 服务级协议的资产分配和可用性;管理员和其他经允许用户管理选择在线服务的网 站可用性;以及使用同步器106和已定义的信任级别把客户场所内(on-premises) (例如,本地的)目录服务应用与在线服务目录同步起来。

作为用客户数据和访问特权填充DSI数据结构的一部分,一种实施例的同步 器106操作为把客户系统112(1)-112(n)中的一个或多个的信息与在线服务目录组 件同步起来。在一种实施例中,可以用包括经授权用户、访问级别、订阅参数、服 务协议访问限制等等的客户信息填充每一DSI数据结构。作为独立地控制对在线 服务和/或资源的访问的一部分,DSI数据结构可以在物理上和/或逻辑上与彼此以 及客户系统隔离,或者通信上与彼此以及客户系统解耦。尽管以上描述了某种数量 和类型的组件,但应明白,根据各种实施例,可以包括其他数量和/或类型。因此, 根据所期望的实现,组件功能性可以进一步分割,和/或与其他组件功能性组合。

图2是阐释可以被用来提供包括访问控制和订阅维护服务但不限于此的在线 应用服务和/或资源的示例性过程200的流程图。尽管为图2的示例性流程描述了 某种数量和顺序的操作,但应明白,可以根据所期望的实现使用其他数量和/或顺 序。在202,作为提供在线数据中心的一部分,通过创建包括组织单元和部分地被 用来描绘不同的订阅客户的其他数据结构的一个或多个DSI数据结构,一个实施 例的过程200可以被用来部署服务和联网体系结构。在一种实施例中,在202,过 程200包括在每一DSI数据结构的创建期间支持在线应用服务和资源的服务器场 和其他组件的部署和/或使用。

一种实施例的过程200采用包括用于自动地创建新的DSI数据结构的应用代 码的部署脚本的使用,包括确保适当地配置服务器、设定许可并且准备好使用DSI 数据结构。例如,过程200可以被用来部署位于分离的洲的分离网格网络,这些分 离网格网络采用了使用对应于部分地被用来向作为示例诸如大型企业、中等企业和 小型企业以及个体用户等的相应用户提供在线服务和/或资源的在线站点集合的不 同的目录服务实例。在一些实施例中,站点集合(例如,服务器场)的组件可以由 网格网络的服务组件和其他组件共享或分布式地使用。

在一种实施例中,过程200包括其中客户订阅某一种或多种期望的在线特征 (包括定义可以呼叫的所选择的支持和其他合作伙伴)的订阅阶段,作为维护向请 求的用户传递服务和/或资源的一部分。订阅客户可以在订阅阶段期间以及在订阅 阶段之后为各自的组织单元数据结构中的人群定义诸如每一雇员、安全组、支持实 体、合作伙伴、FPO、分布列表和其他经准许用户的访问特权等的信息。在一个实 施例中,FPO可以被配置成映射到为其他客户提供支持服务的另一租户的专用类 型的租户对象。部分地基于关联DSI数据结构的拓扑,可以对于每一用户或组控 制不同的许可级别。

作为示例,作为向具有不同的订阅类型的不同的客户提供在线服务和/或资源 的一部分,一旦已创建,DSI数据结构就可以被用来控制对网格网络的服务器场的 访问,所述网格网络的服务器场被配置为形成服务器逻辑场,包括各种服务器角色 (例如,web前端、后端、内容、通信、应用等等)的一组虚拟机。应明白,部分 地取决于在线服务网络和关联客户的规模,每一网格网络可以包括多个服务器场。 客户可以创建自定义的在线服务拓扑,包括创建外联网站点集合以及把来自不同的 命名空间的关联用户指派成外联网用户。

在204,用对应于每一订户的订阅定义的信息填充相应的DSI数据结构的每一 组织单元。例如,可以用客户标识信息、雇员数据、组和/或FPO填充每一组织单 元。在一种实施例中,定义可以部分地基于订阅类型、服务的级别或许可协议以及 与每一客户相关联的当前分配阈值。在示例性同步操作期间,过程200可以操作为 从合作伙伴系统拉出客户数据(例如,用户名称、电子邮件地址、联系人信息、组、 订阅信息、许可证信息等等)、把已提取的数据推送到与每一DSI数据结构相关 联的计算系统(例如,专用的服务平台)。根据用户偏好和/或定义,也可以作为 DSI数据结构的一部分而填充外联网用户。

在206,过程200接收可以影响订户服务和/或资源的可访问性的更新或修改 请求。例如,部分地基于订阅或许可证类型,如果客户配额还没有达到某种已定义 阈值,则同步守护进程可以被用来用原始的、新的、经修改的和/或其他的客户信 息填充目录服务实例。应明白,对任何具体的网格网络的更新可以包括对每一客户 的企业模型和/或基础设施做出的有时连续的改变,这潜在地影响关联目录服务实 例。例如,公司改变可以影响雇员、合作伙伴和外联网访问特权,例如新雇员特权、 撤销合作伙伴特权、终止许可证协议等等。

在208,如果与请求相关联的DSI数据结构接近某种容量或其他阈值,则一种 实施例的过程200可以操作为创建一个或多个新的DSI数据结构。例如,技术规 模限制和其他因素可以限制每一数据源实例可以有效地包含的对象的数量。在一种 实施例中,客户可以获得的对象的数量可以部分地基于适当的扩展订阅或许可证。 如果客户不具有适当的扩展订阅或许可证,则在210,过程200可以操作为拒绝该 请求。在一种实施例中,拒绝服务可以包括升级到不同的订阅类型或许可证的请求。

作为说明性的示例,过程200可以被用来同步订阅选择在线应用和/或支持服 务的新的客户或租户的信息。例如,部分地基于服务位置和/或标识按照所定义的 和/或每一客户所自定义的服务和访问的级别的订阅协议的类型,可以把新的客户 添加到服务实例中所包含的客户池。部分地取决于有针对性的服务实例的服务实例 状态(例如,停用状态、接近容量、3/4满、1/2满等等),过程200可以在现有的服 务实例中创建新的租户或创建用于包含附加的租户对象的新的服务实例。在一种实 施例中,该服务实例的同步守护进程收集新的租户信息并查询网格管理器以便把目 录服务实例或实例集合指派给租户,包括存储用于将来的引用和使用的映射参数。 同步守护进程可以使用网格管理器响应来创建租户并把租户对象写到关联目录服 务实例。

作为另一说明性示例,过程200可以被用来同步在线服务的现有租户消费资 源的更新。例如,具有对在线站点集合的访问权的租户公司可以雇佣具有不同的信 任级别的新雇员、解雇雇员或收购其他公司。对于这一示例,作为更新操作的一部 分,同步守护进程抓取具体的服务实例的租户的所有更新(例如,弗吉尼亚数据中 心与伦敦数据中心相比较)。对于每一租户,同步守护进程查询网格管理器以便标 识其中维持了租户信息的目录服务实例或集合。在一种实施例中,网格管理器维护 在租户和目录服务实例之间的全局映射。同步守护进程可以使用由网格管理器提供 的全局映射信息来同步对正确的目录服务实例的任何更新。

作为又一说明性的示例,在同步守护进程初始化期间,过程200可以被用作 发现目录服务实例拓扑的一部分。例如,同步守护进程例如在初始化期间可以发现 存在于给定网格网络的目录服务实例的列表,该列表标识专用于各自的目录服务实 例的同步操作的域控制器的名称。在一种实施例中,同步守护进程可以选择第一域 控制器作为“向其写入的”域控制器并选择第二域控制作为“从中读取的”域控制器。 可以获得其他实施例。

图3是阐释控制对在线应用服务和/或资源的访问的示例性过程300的流程图。 例如,过程300可以把多个目录服务实例用作控制对在线站点集合的访问一部分。 尽管对图3的示例性流描述了特定数量和顺序的操作,但应明白,根据所期望的实 现可以使用其他数量和/或顺序。在302,接收到请求访问在线服务和/或资源的访 问请求。例如,作为在线应用服务的一部分,用户可能正在使用智能电话来尝试访 问由第三方管理的在线公司资源。

在一种实施例中,作为控制对所订阅的在线服务和/或资源的访问的一部分, 一个或多个web前端组件处理到来的请求。一种实施例的过程300可以操作为在 允许访问之前判断经授权用户的类型(例如,雇员、外联网用户、FPO用户等等)。 例如,一旦成功向由用户雇主或合作伙伴拥有的在线站点集合认证,在线服务认证 器(例如,LiveID服务)就可以生成包括用户标识符(例如,从用户电子邮件地 址提取的域)的服务令牌。服务令牌参数可以部分地用来标识与请求的用户相关联 的目录服务实例和/或组织单元。

在304,可以使用所接收的访问请求的信息来为雇员用户或外联网用户生成服 务集合令牌。在一种实施例中,被包括为web前端拓扑的一部分的声明提供程序 组件可以操作为使用用任何组声明来扩充的请求的用户电子邮件地址(例如, usercompanyA)的全部或某些部分来构建服务集合令牌。在一种实施例中,声明 提供程序组件使用在包含雇主组织单元信息的目录服务实例内的用户的标识符(例 如,PUID、GUID等等)来定位关联用户对象。一旦已定位,声明提供程序组件 可以操作为用来自已定位组织单元的安全组的声明扩充关联服务集合令牌,包括维 护到具体的用户的组织单元的映射。

在一种实施例中,作为处理访问请求的一部分,web前端组件可以标识给定 站点集合的订阅ID,并把订阅ID解析成拥有该站点集合的租户的组织单元的组织 单元区别名称(OUDN)。作为示例,用户可以借助于包含用户主要名称(UPN) 和唯一用户ID(例如,通行证唯一ID(PUID))的有效现场令牌导航到站点集合, 且web前端组件可以把PUID、UPN和/或OUDN传送到声明提供程序组件以供响 应于访问请求进一步处理。

在306,一个实施例的声明提供程序组件可以操作为例如部分地基于所接收的 访问请求为诸如非雇员合作伙伴等的外来用户生成服务令牌。例如,声明提供程序 可以操作为给已授权合作伙伴用户(例如,OU(1)-OU(5))构建服务令牌以便访问 由某一在线服务订户(例如,OU(N))拥有的站点集合。在一种实施例中,作为令 牌生成的一部分,声明提供程序组件操作为请求到包含具体的组织单元的目录服务 实例的目录连接,以便用任何组声明为外来的用户访问请求扩充服务令牌(例如, 使用外来的PUID)。

作为从用户对象读取属性(例如,tokenGroups)的一部分,一个实施例的声 明提供程序组件可以发送查询(例如,轻量级目录访问协议(LDAP)查询)以便 为PUID的用户对象搜索具体的组织单元。在一种实施例中,属性可以被配置为包 含用户所属于的所有组(包括所有级别的嵌套组)的安全标识符(SID)的列表。 声明提供程序组件可以把组声明添加到每一SID的服务令牌。在一种实施例中, 声明提供程序组件包括带有访问一个或多个站点集合的任何已认证资源所要求的 服务令牌的基础访问声明,用匹配合作伙伴角色的组声明扩充服务令牌。

在一种实施例中,过程300可以确定经授权为访问某种订阅客户的资源的合 作伙伴代理类型或合作伙伴代理。一种实施例的合作伙伴代理要求客户与关联合作 伙伴具有契约。例如,契约对象可以被用来包含对加入契约的两个组织和被准许在 契约下动作的合作伙伴代理角色的列表的上下文的引用。当创建契约对象时,一个 或多个FPO可以被用来填充客户组织单元。

一种实施例的客户组织单元内的每一FPO包含对合作伙伴租户和在代表客户 工作时代理可以采用的支持代理角色(例如,管理员或帮助台)的引用。例如,支 持代理角色判断代理是否可以充当任何客户的管理员或帮助台。在一种实施例中, FPO对象可以包括契约对象,该契约对象包含对所允许的合作伙伴代理角色在获 得对客户的站点集合的访问之前需要匹配的合作伙伴组织的引用。对于这一示例, 被指派给合作伙伴上下文中的代理的合作伙伴代理角色应匹配FPO中的代理角 色,FPO被包含在包括具有合作伙伴上下文中的匹配契约对象的客户组织单元中。

作为另一示例,作为尝试访问属于A公司的应用站点集合的一部分,假设支 持用户适当地认证。web前端组件从支持用户的计算设备或系统接收包含作为服务 ID(例如,LiveID)的一部分的该用户的PUID和UPN(例如,usersupport.com) 请求。声明提供程序组件可以通过调用网格管理器来把用户UPN的域部分(例如 support.com)解析成目录服务实例名称和OU特异名称(OUDN)来定位目录服务 实例和包含支持用户记录的组织单元。然后,声明提供程序组件可以通过在目录服 务实例中搜索已标识OU,基于其PUID来定位支持用户对象。声明提供程序组件 可以构建用任何组声明扩充的支持用户的服务令牌。如上所述,支持用户的FPO 可以在A公司OU中被实例化,且被映射到属于支持实体或租户的OU。声明提供 程序组件可以确证,支持用户持有对应于某种支持契约的合作伙伴代理角色,用在 公司A中指派合作伙伴代理角色的来自A公司OU的安全组的声明扩充服务令牌。 在308,经准许用户可以访问在线服务和/或资源。可以获得其他实施例。

图4是示例性网格网络环境400的框图。例如,网格网络环境400可以被配 置为使用多种服务器场体系结构来向通信客户机提供应用和其他服务。服务器场可 以包括具有满足解决方案目标所要求的各种关系、相互关系和分离的任何数量的物 理和虚拟组件。在一种实施例中,例如,作为向客户提供在线服务的一部分,可以 使用诸如因特网等的计算网络来访问一个或多个服务器场的资源/服务。在一种实 施例中,例如,作为在因特网或某种其他通信路径或网络上提供在线服务的一部分, 网格网络环境400包括多个目录服务实例,目录服务实例包括多个客户的信息。

应明白,环境400可以包括其他组件,这些其他组件包括附加的网格网络和 关联目录服务实例。在一种实施例中,网格网络环境400可以被用作提供具有多个 网格网络的在线数据中心的一部分。网格网络可以被配置为服务于某种已定义客户 人口。例如,不同的网格网络可以被配置和部署为服务于北美、亚洲和欧洲地区, 包括使用目录服务实例来管理每一区域的客户和其他经授权用户的访问控制。网格 网络可以被配置成一组处理、存储器和应用资源,应用资源例如包括具有快速网络 连接和低时延的通信耦合。

如所示出的,图4的示例性网格网络环境400包括第一数据中心404、第二数 据中心406和第三数据中心407。对于这一示例,数据中心404包括目录服务实例 (DSI)408,目录服务实例(DSI)408包括通信上耦合到联合管理环境412的四 个域控制器(共同地表示为410)和服务于网格网络400的资源域414。在一种实 施例中,全局实例可以被用来表示包括单域目录森林的联合管理环境412。作为示 例,联合管理环境域可以被配置为包含由服务场使用的所有物理机器(例如,虚拟 机主机)、虚拟机和服务账户。

部分地取决于包括物理、逻辑和其他拓扑约束的部署考虑,示例性在线服务 网络可以包括多个网格网络。示例性网格网络可以被配置为例如部分地用来向订阅 和已授权客户提供应用和其他在线服务的、具有低时延和高吞吐量网络连接性的一 组网格服务器和网络设备。一种实施例的每一网格网络包含联合管理环境目录412 (例如,活动目录应用)的副本、多个服务器/应用场和/或表示包括合作伙伴和外 联网用户在内的订阅客户和/或经准许用户的多个客户对象。例如,每一网格网络 可以被部署为包含提供在线应用服务的多组服务器计算机,和在某些服务器计算机 当中分布的客户森林,其中,客户森林可以包括订阅、合作伙伴许可以及与订阅至 少一个在线服务的每一客户相关联的其他信息。

数据中心406包括目录服务实例416和目录服务实例420,目录服务实例416 包括关联域控制器418,目录服务实例420包括关联域控制器422。数据中心407 包括目录服务实例424、426和428,它们包括各自的域控制器430、432和434。 如所示出的,数据中心406和407的DSI也通信上耦合到服务于网格网络400的 联合管理环境412和资源域414。图4描绘了在网格网络环境400的组件之间的多 个示例性信任关系。在一种实施例中,目录服务实例是相互独立,且不借助于信任 关系链接。

在一个实施例中,资源域414通信上与每一目录服务实例(例如,在部署中 定义)耦合起来,且包括操作上与每一目录服务实例的各自的域控制器联合使用的 网格管理器、同步守护进程和/或提供程序守护进程。在一种实施例中,资源域414 包括网格网络的所有机器(物理和虚拟)、角色、和/或账户,排除目录服务域控 制器。在部署目录服务实例之前,资源域414的每一组件可以带外部署。一种实施 例的带外部署包括建立实际的实例以及与联合管理环境组件412的信任关系、创建 将访问所部署的目录服务实例的服务域账户以及管理器网关的部署。

在一个实施例中,网格管理器部分地操作为通过为新的域控制器建立虚拟机 并发起在线目录服务服务器角色的部署脚本来协调目录服务实例部署过程。在一种 实施例中,可以使用包括用于每一虚拟机的多种处理资源(例如,2、4个CPU核 心等等)和一定量的处理存储器(例如,七千兆字节(GB)的随机存取存储器 (RAM))的默认网格拓扑来安装新的虚拟机。每一虚拟机可以被提升为新的森 林的域控制器。在一个实施例中,可以使用分离的主机来部署虚拟机,以便避免多 个域控制器由于相同的根本原因事件而失效。一种实施例的网格管理器操作为监视 目录服务实例的部署状态并在目录服务实例准备好填充和使用时使得新的目录服 务实例对应用编程接口(API)(例如,GetDSITopology())的调用者可用。

在一个实施例中,同步守护进程的单个实例可以由网格网络中的所有目录服 务森林共享。同步守护进程可以使用域控制器名称或其他标识符来标识每一网格网 络的专用域控制器。同步守护进程可以部分地使用域映射来标识每一目录服务实例 的组织单元。一种实施例的同步守护进程可以用于用从与客户系统相关联的同步通 信流拉出的对象来填充目录服务森林。在一个实施例中,环境400可以把单个同步 通信流用于每一网格网络。在另一实施例中,同步通信流可以被用于每一目录服务 森林。

一种实施例的声明提供程序可以操作为用FPO的标识符以及FPO属于站点所 有者的组织单元的任何组扩充支持代理用户的令牌。作为示例,声明提供程序可以 使用操作为部分地基于已认证标识(例如,LiveID)令牌和目录服务实例的内容给 到来的用户创建服务令牌的提供程序守护进程。可以搜索目录服务实例的内容以便 抓取组织单元中可用于各种管理任务的用户和/或组的列表。作为说明性示例,为 了使得“合作伙伴用户”访问另一租户的内容,合作伙伴用户必须是租户组织单元中 所包含的FPO所引用的安全组的成员(参见图5作为示例)。如果不是安全组的 成员,则请求的用户将被拒绝访问。在一种实施例中,作为访问控制操作的一部分, 当为给定合作伙伴用户生成声明时,提供程序守护进程可以把FPO的对象GUID 用作声明值而不是在外来组织单元中引用对象的GUID。

在某些实施例中,客户或目录服务森林可以被用来表示一部分在线服务或网 格拓扑,且被配置为由具有多个目录服务实例和关联域控制器的一个单域目录服务 森林组成,包括同步和供应守护进程。在一种实施例中,每一在线租户占用一个客 户森林。应明白,作为向与客户森林相关联的订阅客户提供在线服务和资源的一部 分,每一网格网络可以包括不同的目录服务实例。在一种实施例中,环境400的组 件操作为以规模为单位将租户或组织单元划分为在线目录服务森林。每一目录服务 森林可以被包含在单个服务实例中,该单个服务实例包含被指派给该服务实例的租 户的子集。

如上所述,环境400的组件可以被配置为控制和管理各种类型的用户和/或关 联级别对在线服务和/或资源的访问。例如,客户可以订阅在线服务,这些在线服 务包括使用诸如代表在线服务客户执行管理动作的合作伙伴公司等的默认合作伙 伴来向默认服务的订阅客户提供支持服务。合作伙伴也可以是在线服务客户。

示例性在线支持服务可以包括接收来自合作伙伴的支持的一个在线服务客 户。相应的合作伙伴组织单元可以被用来包含合作伙伴公司的所有对象。同样地, 客户组织单元包含客户公司的所有对象,这些对象包括指代合作伙伴组织单元的对 象。示例性在线支持服务包括各种管理员服务和支持角色。例如,帮助台管理员可 以被定义为包含仅被授予对资源的有限制访问的负责人的安全组,且该组的经允许 的动作的范围可以跨越各系统而不同(例如,仅可以读取数据、重置密码和管理支 持票)。租户管理员可以被定义为包含被授予在线应用服务中的全部和每一管理权 限的负责人的安全组。

示例性帮助台代理是被允许代表合作伙伴的客户在根据相应的客户组织单元 中所定义的关联的帮助台管理员组所允许的范围内执行动作的合作伙伴的雇员。示 例性管理员代理是被允许代表合作伙伴的客户在根据客户组织单元中所定义的关 联租户管理员组所允许的范围内执行动作的合作伙伴的雇员。如上所述,一个或多 个FPO可以被包含在客户组织单元中,以便表示一个或多个安全负责人(组和/或 用户)。

图5是描绘在线应用服务环境500的多个示例性组织单元(OU1-OU4)的框 图。在一个实施例中,如上所述,一个或多个组织单元可以被包含在一个或多个目 录服务实例中。例如,第一目录服务实例可以被用来包含A公司的OU1和B公司 的OU3,且第二目录服务实例可以被用来包含C公司的OU2和D公司的OU4。 在一种实施例中,每一目录服务可以由专用的服务器场或组件托管。

如图5中所示出,OU1包括安全组对象502,安全组对象502包含安全组A 的一个用户对象504。OU2包括FPO1 506和FPO2 508。如上所述,FPO可以被用 来指代为在线应用服务的某一方面提供支持服务的组或用户,但不限于此。OU3 包括分别表示安全组B、安全组C和安全组D的安全组对象510、512和514。OU4 包括FPO3 516、FPO4 518、包含外联网用户信息的对象520、包含雇员用户信息 的对象522和包含具体的客户的组信息的对象524。

如所示出的,FPO1 506包括指向OU1的安全组对象502的映射,且FPO2 508 包括指向OU3的安全组对象512的映射。FPO3 516包括指向安全组对象514的映 射,且FPO4 518包括指向OU3的安全组对象510的映射。如以上所讨论的,映射 可以是在可以被用来验证具体用户和/或组具有访问某一在线客户的特定资产的许 可的相应OU的具体对象之间。例如,来自OU1的用户1 502将获得被授权给在 OU2中的FPO1 506的任何许可,这是因为用户1 502是FPO1 506所映射到的安 全组A的504的成员。应明白,每一OU可以包括对应于具体的客户或实体访问 许可的不同的访问管理信息。

尽管在此描述了某些实施例,但可获得其他实施例,且所描述的实施例不应 被用来限制权利要求。各种实施例的示例性通信环境可以包括使用安全网络、非安 全网络、混合网络和/或某种其他网络或网络的组合。作为示例而非限制,环境可 以包括诸如有线网络或直接有线连接等的有线介质和/或诸如声学、射频(RF)、 红外等的无线介质和/或其他有线和/或无线介质和组件。除了计算系统、设备等等 之外,各种实施例可以被实现为计算机进程(例如,方法)、诸如计算机程序产品 等的制品或计算机可读介质、计算机可读存储介质和/或被实现为各种通信体系结 构的一部分。

在此所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介 质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等的 信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移动 介质。系统存储器、可移动存储和不可移动存储都是计算机存储介质示例(即,存 储器存储)。计算机存储介质可以包括但不限于RAM、ROM、电可擦除只读存储 器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字多用盘(DVD) 或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可以被用来存储信 息且可由计算设备访问的任何其他介质。任何这样的计算机存储介质都可以是设备 的一部分。

在此所使用的术语计算机可读介质也可以包括通信介质。通信介质可以由诸 如载波或其他传输机制等的经调制的数据信号中的计算机可读指令、数据结构、程 序模块或其他数据具体化,且包括任何信息传输介质。术语“经调制的数据信号” 可以描述以编码信号中的信息的方式设定或改变一个或多个特性的信号。作为示例 而非限制,通信介质可以包括诸如有线网络或直接有线连接等的有线介质和诸如声 学、RF、红外和其他无线介质等的无线介质。

在此描述的实施例和示例不预期是限制性的,且可以获得其他实施例。此外, 以上所描述的组件可以被实现为联网式、分布式和/或其他计算机实现的环境的一 部分。各组件可以经由有线通信网络、无线通信网络和/或通信网络的组合通信。 网络组件和/或在组件之间的耦合可以包括任何类型的网络、任何数量的网络和/或 网络的任何组合,且相应的网络组件包括但不限于广域网(WAN)、局域网(LAN)、 城域网(MAN)、私有网络、后端网络等等。

客户机计算设备/系统和服务器可以是任何类型的基于处理器的设备或系统和 /或其组合。另外,服务器功能可以包括多个组件且包括其他服务器。以单数形式 描述的计算环境的组件可以包括这样的组件的多个实例。尽管某些实施例包括软件 实现,但它们不限于此,且包含硬件或混合硬件/软件解决方案。可以获得其他实 施例和配置。

示例性操作环境

现在参见图6,下列讨论旨在提供可以在其中实现本发明的各实施例的合适计 算环境的简要、一般的描述。尽管将在与在个人计算机上的操作系统上运行的程序 模块联合执行的程序模块的一般上下文中描述本发明,但本领域中的技术人员将认 识到,本发明也可以与其他类型的计算机系统和程序模块组合实现。

一般地,程序模块包括执行具体的任务或实现具体的抽象数据类型的例程、 程序、组件、数据结构和其他类型的结构。此外,本领域中的技术人员将明白,本 发明可以与包括手持式设备、多处理器系统、基于微处理器的或可编程的消费性电 子设备、小型计算机、大型计算机等等的其他计算机系统配置一起实践。本发明也 可以在分布式计算环境中实践,分布式计算环境中,任务由通过通信网络链接的远 程处理设备执行。在分布式计算环境中,程序模块可以位于本地存储器存储设备和 远程存储器存储设备两者。

现在参见图6,将描述用于本发明的各实施例的说明性操作环境。如图6中所 示出的,计算机2包括能够执行一个或多个应用程序的通用台式计算机、膝上型计 算机、手持式计算机或其他类型的计算机。计算机2至少包括一个中央处理单元8 (“CPU”)、包括随机存取存储器18(“RAM”)和只读存储器(“ROM”) 20的系统存储器12和把存储器耦合到CPU 8的系统总线10。包含例如在启动期 间帮助在计算机内的元件之间传递信息的基本例程的基本输入/输出系统被存储在 ROM 20中。计算机2还包括用于存储操作系统24、应用程序和其他程序模块的大 容量存储设备14。

大容量存储设备14通过连接到总线10的大容量存储控制器(未示出)连接 到CPU 8。大容量存储设备14及其关联的计算机可读介质为计算机2提供非易失 性存储。尽管在此包含的计算机可读介质的描述是指诸如硬盘或CD-ROM驱动器 等的大容量存储设备,但本领域中的技术人员明白,计算机可读介质可以是可以由 计算机2访问或使用的任何可用介质。

作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他 数据等的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和 不可移动介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、 闪速存储器或其他固态存储器技术、CD-ROM、数字多用盘(“DVD”)或其他光 存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可以被用来存储所期望的信 息且可由计算机2访问的任何其他介质。

根据本发明的各种实施例,计算机2可以使用通过诸如例如本地网络、因特 网等等的网络4到远程计算机的逻辑连接来在联网环境中操作。计算机2可以通过 连接到总线10的网络接口单元16连接到网络4。应明白,网络接口单元16也可 以北用来连接到其他类型的网络和远程计算系统。计算机2也可以包括用于接收和 处理来自包括键盘、鼠标等等(未示出)的多个其他设备的输入/输出控制器22。 类似地,输入/输出控制器22可以向显示屏、打印机或其他类型的输出设备提供输 出。

如上面简要地提到,多个程序模块和数据文件可以被存储在计算机2的大容 量存储设备14和RAM 18中,包括诸如华盛顿州雷蒙德市微软公司出品的 WINDOWS操作系统等的适用于控制联网个人计算机的操作的操作系统24。大容 量存储设备14和RAM 18也可以存储一个或多个程序模块。尤其,大容量存储设 备14和RAM 18可以存储诸如字处理、电子表格、画图、电子邮件和其他应用和/ 或程序模块等等的应用程序。

应明白,本发明的各种实施例可以被实现为(1)计算机实现的动作的序列或运 行在计算系统上运行的程序模块和/或(2)互连的机器逻辑电路或在计算系统内的电 路模块。该实现是依赖于实现本发明的计算系统的性能要求的选择问题。因此,包 括相关算法的逻辑操作可以被不同地称为操作、结构设备、动作或模块。本领域中 的技术人员应认识到,在不偏离在此陈述的权利要求内所叙述的本发明的精神和范 围的前提下,可以以软件、固件、专用数字逻辑及其任何组合实现这些操作、结构 设备、动作和模块。

尽管已经结合各种示例性的实施例描述了本发明,但本领域中的普通技术人 员将理解,可以在下面的权利要求的范围内对其做出多种修改。因此,不预期本发 明的范围以任何方式受到以上描述的限制,而是完全参考下面的权利要求来确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号