背景技术:
计算机系统当前被广泛使用。一些这种计算机系统部署在多租户环境中,其中多租户服务向多个不同的租户提供服务。每个租户能够对应于分离的组织。
多租户系统所提供的服务的级别能够广泛地变化。例如,它们的范围能够从基础设施即服务(iaas)(其中基础设施的项由服务提供方管理而其它所有项由单独的租户管理)到软件即服务(saas)(其中即使是正在被租户使用的应用也由服务提供方运行并管理)。
这种系统能够呈现关于安全性的困难。服务提供方所服务的每个组织希望服务提供方能够对组织的数据具有充分的访问权,以使得服务提供方能够提供足够的服务。然而,组织还希望提供安全性,以使得组织的数据不被服务提供方的管理系统上的任何隐秘攻击危害。
解决该问题的一些当前方法包括对在系统内具有长期的、持续的主管许可(administrativepermission)的主管人员执行背景检查。另一种方法是对访问进行分隔,以使得仅特定的主管人员能够访问系统的特定部分。
当服务提供方在多国家基础上提供多租户服务时,安全性问题可能会加剧。一些组织可以坚持仅驻留在其国家中的主管人员可以访问他们的信息。此外,这些组织可以坚持安全性策略和许可的所有强制执行都由驻留在其国家或管辖区域内的系统来执行。
提供上述讨论仅用于一般性的背景信息,而并非旨在用作对确定所要求保护的主题的范围的辅助。
技术实现要素:
当用户输入要在目标机器上执行的动作请求(例如,请求的命令)时,管理系统接收请求并利用分离的认证和许可系统对其进行验证。认证和许可系统验证请求上的签名并对其进行签署并且生成已批准的工作流分组。已批准的工作流分组被发送到目标机器。提供该发明内容是为了以简化的形式引入在下面的具体实施方式中进一步描述的概念的选择。该发明内容并非旨在识别所要求保护的主题的关键特征或必要特征,也并非旨在用作对确定所要求保护的主题的范围的辅助。所要求保护主题不限于解决在背景技术中指出的任何缺点或所有缺点的实现方式。
附图说明
图1示出了整体授权架构的一个示例。
图1a是认证和许可架构的一个示例的框图。
图1b是更详细地示出图1a的一部分的框图。
图2a-2d(在本文中统称为图2)示出了示例说明图1所示的架构的整体操作的一个示例的流程图。
图3a-3c(在本文中统称为图3)更详细地示出了图1所示的架构的操作的示例的流程图。
图3d是将工作流(或命令请求)映射到执行环境的映射生成系统的一个示例的框图。
图3e是示出图3d所示的系统的操作的一个示例的流程图。
图4a-4c(在本文中统称为图4)示出了图1所示的架构的操作的另一示例,其中使用公共密钥基础设施。
图4d-4g是更详细地示出图1a和图1b所示的多个项的框图。
图5是示出容量机器中的授权工作者组件在执行命令或工作流时的操作的一个示例的流程图。
图6a和图6b(在本文中统称为图6)是示出在执行基于任务的访问验证时容量机器上的授权工作者组件的操作的一个示例的流程图。
图7是示出图1所示的架构的一个示例的框图,其被部署在云计算架构中。
图8-10示出了能够在先前的附图所讨论的架构中使用的移动设备的各种示例。
图11是能够在先前的附图所阐述的架构的各种部分中使用的计算环境的一个示例的框图。
具体实施方式
图1示出了整体授权架构80的一个示例。架构80示出了多个容量实例82-84每个均能够是服务于多个不同的租户容量86的多租户系统。容量实例82-84中的每个容量实例能够由对应于不同租户的一个或多个终端用户88通过一个或多个终端用户系统90进行访问。容量实例82-84由管理实例92图示地进行管理。管理实例与许可网关实例94交互,该许可网关实例94本身可以与其它许可网关实例96交互。在图1所示的架构80中,主管用户97能够登录到架构80,并被认证以在管理实例92或容量实例82-84(或甚至单独的租户实例86)中执行各种任务或命令。这样做时,许可网关实例94-96准许受时间约束和受任务约束的许可,许可网关实例94-96甚至能够准许降级到单独的数据类型的许可。
每个单独的容量实例86上的认证组件执行基于声称的强制执行。也就是说,其执行关于在单独的租户容量实例86中给定的主管用户是否被授权在特定机器上执行任务的最终检查。主管用户从被签署且安全的许可网关实例94-96获得声称。主管用户使用该声称在各种容量实例82-84和管理实例92中进行工作。这以主管用户被准许基于任务的特权的方式来执行。基于任务的特权可以是执行给定命令中的任务所需的最小特权的环境。这在下文更详细地描述。
还注意到,许可网关实例能够用于支持针对基本上运行任何工作流的批准,甚至是第三方的那些工作流。例如,一个或多个第三方管理实例能够使用许可网关实例94-96来获得执行一个或多个第三方容量实例82-84上的工作流的许可。管理实例92、许可网关实例94-96、以及容量实例82-84不需要全部由同一方支持或由同一方运行。一方可以运行并支持许可网关实例94-96,而另一方可以运行并支持管理实例92和容量实例82-84。或者实例中的全部实例能够由分离的方来运行并支持。在本文中构思了这些架构和其它架构。
图1a是更详细的认证和许可架构100的一个示例的框图。架构100图示地包括多租户工作负载系统102、认证和许可系统104、以及一个或多个客户端系统106。图1b更详细地示出了多租户工作负载系统102中的项。现在将彼此结合地对图1a和图1b进行描述。
客户端系统106被示出为生成具有用户输入机制110的用户界面显示108,以用于由主管用户112进行交互。在一个示例中,用户112是主管人员(例如,随时待命的工程师或其他主管人员),其与用户输入机制110交互以控制并操纵客户端系统106,以使得用户112能够在多租户工作负载系统102内执行服务操作。多租户工作负载系统102本身图示地向一个或多个租户组织114提供多租户服务。租户组织114本身图示地具有终端用户88,终端用户88使用由多租户工作负载系统102提供的信息。
在图1a和图1b所示的示例中,多租户工作负载系统102图示地包括多租户管理系统116(其可以是来自图1的管理实例92),多租户管理系统116使得用户112能够在系统102内执行管理操作。多租户管理系统116本身包括一个或多个管理机器118-120。每个管理机器图示地包括一个或多个处理器119、认证工作者组件122、本地策略123,并且其能够包括其它项124。多租户管理系统116还图示地包括认证前端系统126、命令请求队列系统(crqs)128、请求队列130、本地策略131、已批准的请求队列132、一个或多个服务器133,并且其能够包括其它项134。命令请求队列系统128本身图示地包括签名验证组件138。
多租户工作负载系统102还图示地包括一个或多个多租户容量系统140(其可以是来自图1的容量实例82-84或86)。还注意到,多租户管理系统116能够与多租户容量系统140分离(如在图1中由实例92和82-84示出的)。仅为了示例起见,在图1a和图1b中多租户管理系统116和多租户容量系统140一起示出。每个多租户容量系统140图示地包括一个或多个容量机器142-144,容量机器142-144本身图示地包括认证工作者组件146、本地策略145、处理器147,并且能够包括其它项148。多租户容量系统140还图示地包括认证前端系统150、本地策略的集合152、服务器153,并且其能够包括其它项154。
认证和许可系统104图示地对在架构100内准许基于任务的许可进行控制。在图1a所示的示例中,认证和许可系统104图示地包括信任、认证、以及授权系统156,角色请求和批准系统158,秘密存储库160,访问管理系统162,基于角色的访问控制和接口系统164,身份管理系统166,认证前端168,处理器和/或服务器170,并且其能够包括其它项172。秘密存储库160图示地包括密码174和其它的认证信息176。访问管理系统162能够包括用户访问账户178,以及服务器访问账户180。认证前端168图示地包括能力令牌服务182,并且其能够包括其它项184。
另外,在图1a所示的示例中,主管客户端系统106图示地包括认证前端186、远程访问系统188、数据存储库190、处理器和/或服务器192、以及用户界面组件194。主管客户端系统106还能够包括其它项196。
在图1a所示的示例中,各种组件被示出为通过网络198进行通信。可以理解,网络198能够是广域网、局域网,或者网络198能够包括多个不同的网络。网络198能够包括多种不同的网络配置。
在更详细地描述架构100的整体操作之前,将首先提供架构100中的项中的一些项的简要概述。首先参考客户端系统106,认证前端186图示地对允许用户112在架构100内被认证的认证和许可通信和操作进行处理。远程访问系统188图示地允许用户112远程地访问多租户工作负载系统102中的各种机器,以执行主管操作。用户界面组件194图示地生成具有用户输入机制110的用户界面显示108,并检测与机制110进行的用户交互。
在多租户管理系统116和多租户容量系统140中,每个认证工作者组件122和146分别接收工作项(例如,命令或工作流),并针对该工作项识别基于任务的(例如,最小特权的)执行环境。组件122和146图示地在对应的基于任务的执行环境中执行工作项。组件122和146能够被实施为在多租户工作负载系统102中的每个节点上运行的过程。另外,在一个示例中,认证工作者组件122和146能够以安全的方式安装在其相应的机器上。例如,能够通过网络接收组件122和146,并且能够维护预启动执行环境,以启动实施组件122和146的组装。在另一示例中,每个机器上的现场可编程门阵列(fpga)能够包括安全码或验证码,其能够用于安全地安装并认证组件122和146。组装能够被签署,如fgpa中的验证码所能够的。因此,当将机器放入库存或从库存取出时,机器的安全性能够得到验证。自然,这只是一个示例。
多租户管理系统116中的认证前端系统126图示地处理与架构100中的其它项进行的认证通信。为了便于参考,系统126在本文中也被称为管理认证前端(mafe)系统126。请求队列130接收命令请求,并且命令请求队列系统(crqs)128使用签名验证组件138来验证所请求的命令上的各种签名。命令请求队列系统(crqs)128还与认证和许可系统104通信以确定所请求的命令是否已经被批准。如果所请求的命令已经被批准,则命令请求队列系统(crqs)128将其放置在已批准的请求队列132中。
在多租户容量系统140中,认证前端系统150图示地处理与架构100的其它组件进行的认证通信。本地策略145和152能够由认证前端150和认证工作者组件146用于做出用户112确实被授权在多租户容量系统140内的目标机器上执行所请求的命令的最终验证。
在认证和许可系统104中,信任、认证、以及授权系统156采用基于证书的模型,该证书用于识别用户和服务以及用于向发布者提供经签署的能力权证(capabilityticket)。这能够包括用于部署证书技术的公共密钥基础设施。这在下文更详细地描述。
角色请求和批准系统158提供用于执行工作流的角色请求和批准的机制。角色请求和批准系统158还图示地包括允许相对于角色的成员关系根据需要被请求、批准、并且然后移除的强制执行引擎。访问管理系统162图示地针对需要获得对任何多租户工作负载系统102(或数据中心)的访问权的任何用户存储用户访问账户178和服务器访问账户180,该多租户工作负载系统102(或数据中心)由认证和许可系统104进行管理。身份管理系统166提供实现填充访问管理系统162中的用户访问账户178和服务器访问账户180的馈送的配置的功能。身份管理系统166执行身份相关任务,例如,供给(例如,创建和更新)用户账户的权利(例如,分组成员关系和账户属性等)。这些权利能够用于驱动服务内的访问控制。基于角色的访问控制和接口系统164图示地提供用于授权、存储、以及验证角色成员关系和许可查询的接口。基于角色的访问控制和接口系统164能够与角色请求和批准系统158集成,以提供用于使得角色成员关系需要请求和批准、并使得角色成员关系受限于特定的时间量的功能。基于角色的访问控制和接口系统164仅为了示例起见被分离地示出。
秘密存储库160图示地存储用于在架构100中对用户112进行认证的密码174和其它类型的秘密信息。认证前端168图示地包括能力令牌服务182。如在下文将更详细地描述的,其图示地针对用户和服务提供请求用于认证和授权的能力令牌的功能。
出于本说明书的目的,架构100中的项之间存在网络拓扑。在一个示例中,多租户容量系统140中的认证前端系统150信任从多租户管理系统116中的认证前端系统126接收的信息。进而,mafe系统126信任从认证和许可系统104中的认证前端168接收的信息。在一个示例中,这种信任关系是传递性的。因此,认证前端系统150通过其信任mafe系统126的方式信任认证前端168。
在更详细地描述各种组件之前,作为概述,首先描述运行时场景的一个示例,以便于增强理解。图2a-2d(在本文中统称为图2)示出了示例说明运行时场景的一个示例的流程图,在该运行时场景中用户112希望在多租户容量系统140中的目标机器上执行主管操作。出于本示例的目的,假设用户112希望在容量机器142上执行主管操作。
在一个示例中,客户端系统106上的用户界面组件194首先对指示用户希望访问认证环境(例如,图1所示的认证架构100)的用户交互或输入进行检测。这由框200指示。对访问认证环境的用户输入进行检测能够包括强制执行智能卡认证、输入人员识别号码(例如,pin)、以及其它操作。作为响应,客户端系统106将客户端认证前端186加载到客户端106。客户端认证前端186能够以客户端控制台应用用于认证并授权用户112执行动作的形式被加载,或者以其它方式。这由框202指示。
远程访问系统188图示地生成具有用户输入机制的用户界面显示,其允许用户112提供指示用户希望在目标机器142上执行的命令或操作的命令输入。然后,远程访问系统188检测用户与该用户输入机制的交互。用户交互图示地识别用户正请求执行的特定命令。接收用户命令输入在图2中由框204指示。
认证前端186图示地对所请求的命令进行签署,并将其发送到多租户管理系统116中的mafe126。对命令请求进行签署并将其从客户端106发送到mafe系统126在图2中由框206指示。mafe系统126图示地确定用户112是否需要手动批准(例如,来自用户管理器的批准)以便于执行请求。这由框208指示。如果不需要,则处理跳至下文描述的框230。
然而,在框208处,如果mafe系统126确定用户112需要手动批准,则mafe系统126将指示这种情况的代码返回到客户端系统106中的认证前端186。这由框210指示。代码还将图示地识别批准请求所需的特定批准者。这由框212指示。还能够包括其它项,并且这由框214指示。
客户端系统106图示地向用户112显示批准请求用户输入机制。显示将图示地指示用户112需要具有来自他或她的管理者(或其它批准者)的批准来执行所请求的命令,并且显示将包括用户能够致动以发起批准过程的用户输入机制。在客户端106处显示批准请求用户输入机制在图2中由框216指示。然后,用户界面组件194检测指示用户112希望发起批准过程的、与用户输入机制的用户交互(例如,致动)。这在图2中由框218指示。
作为响应,客户端系统106图示地将针对批准的请求发送到识别出的批准者。例如,这能够是发给批准者的、连同能够由批准者致动的用户输入机制的电子邮件,以便于批准请求。发送针对批准的请求在图2中由框220指示。当批准者(例如,管理者)与用户输入机制交互批准请求时,通知被发送回客户端系统106以通知用户112他或她已经被批准执行所请求的命令。接收批准和通知用户该批准由框222指示。发给用户的通知本身可以包括对于用户而言能够致动以再次发起执行命令的请求的用户输入机制,因为该执行命令的请求已经被批准。显示通知具有这样的致动器由框224指示。也能够以其它方式执行通知,并且这由框226指示。
然后,用户界面组件194检测指示用户希望执行命令的、与用户输入机制的用户交互。这由框227指示。
然后,客户端系统106中的认证前端186将针对执行命令的请求从客户端系统106发送到mafe系统126。这在图2中由框228指示。进而,mafe系统126调用认证和许可系统104(以及图示地,信任、认证、以及授权系统156)来验证用户具有在目标机器上执行所请求的命令的授权,并且还验证用户已经从用户的管理者(如果可应用)接收到批准。这由框230指示。信任、认证、以及授权系统156对此进行验证,并将验证返回到mafe系统126。这在图2中由框232指示。
一旦已经从信任、认证、以及授权系统156接收到验证,则mafe系统126对命令请求进行签署并将其放置在队列130中以供命令请求队列系统(crqs)128访问。crqs128从队列130取回命令请求,并使用签名验证组件138来验证mafe系统126的签名。这在图2中由框234指示。
然后,crqs128将命令请求发送到认证和许可系统104以供批准。认证前端168(以及特别地,能力令牌服务182)针对命令请求生成能力令牌或批准权证。认证前端168对命令请求进行签署,并将命令请求及其批准权证放置在多租户管理系统116中的已批准的请求队列132中。将命令请求发送到系统104以供批准在图2中由框236指示,并且对命令请求进行批准、签署、以及将其放置在已批准的请求队列132中由框238指示。
然后,crqs128按顺序从已批准的请求队列132中拉出已批准的命令请求。一旦从队列132中拉出已批准的命令请求,则签名验证组件138验证在已批准的命令请求上的认证和许可系统104的签名。这由框240指示。然后其对命令请求进行签署并将该命令请求发送到多租户容量系统140中的目标机器142。这由框242指示。
认证前端系统150验证客户端106、命令请求队列系统128、以及认证和许可系统104的签名,并将命令请求发送到认证工作者组件146。这由框244指示。然后,认证工作者组件146访问本地策略145,并验证认证和许可系统104被授权准许该访问在该特定资源上执行该命令请求。这由框246指示。然后,当已经确认这种情况时,组件146访问本地策略145中的映射,映射将该特定命令请求映射到目标机器142上的基于任务的(例如,最小特权的)访问隔离上下文(或最小特权的执行环境)。这由框248指示。然后,认证工作者组件146在目标机器142上的基于任务的访问隔离上下文中开启命令。这由框250指示。然后,将执行命令的结果返回到客户端系统106。这由框254指示。
注意,在一个示例中,可以存在多个多租户容量系统140、多租户管理系统116、以及认证和许可系统104中的每一个,并且它们能够位于在地理上分散的位置处。它们能够具有相对于其它系统识别其位置的标识符。由每个系统实现的策略可以指示哪个系统(在什么地理位置)将被用于生成各种认证和许可。每个系统还可以具有用于接收在准许认证和许可时要采用的各种不同的策略的插件。因此,不同的系统图示地彼此无缝地工作,而不管它们位于何处。
在一些示例中,架构100能够使用计算机网络认证协议,其在权证(或令牌)的基础上工作。这些令牌允许节点通过不安全网络进行通信以便以安全的方式向彼此证明其身份,而无需公共密钥基础设施。这种方式能够在客户端-服务器架构中使用,并提供相互认证。客户端和服务器二者验证彼此的身份。这种方式使用信任的第三方,并且能够可选地包括公共密钥加密。因此,客户端系统106能够使用这种方式认证到系统102和104。图3a-3c(在本文中统称为图3)示出了流程图,该流程图示出了使用这种类型的认证来执行针对多租户管理系统116中的目标机器(例如,机器118)的命令的架构100的操作的一个示例。
在图3所讨论的示例中,用户112首先提供指示用户希望开启认证前端186的输入。认证前端186能够作为客户端控制台被开启,或者以其它方式。这由框260指示。例如,在一个示例中,用户可以希望作为待命工程师(或oce)登录到系统。这由框262指示。当然,用户也能够提供指示他或她希望以其它方式开启认证前端186的输入,并且这由框264指示。
然后,用户认证到认证和许可系统104。这由框266指示。认证和许可系统104在本文中还可以被称为ap系统104。在一个示例中,认证前端186利用ap系统104强制执行两因素认证。例如,认证前端186能够强制执行如框268所指示的智能卡认证、如框270所指示的账户密码认证、或者如框272所指示的其它认证。一旦用户登入,则用户能够提交针对多租户管理系统116中的目标机器(例如,管理机器118)的访问请求(例如,命令和对应的参数)。这由框274指示。用户能够图示地通过在形成认证前端186的客户端控制台上运行的脚本来完成这一操作。这由框276指示。用户还能够以其它方式提交命令,并且这由框278指示。
然后,作为响应,用户认证到mafe系统126。这在图3的流程图中由框280指示。在一个示例中,ap系统104将用户认证到多租户管理系统116。这能够以多种方式来完成。在一个示例中,这能够使用计算机网络认证协议来完成,计算机网络认证协议在权证的基础上工作以允许通过不安全网络198通信的系统104和116以安全的方式向彼此证明其身份。在这种示例中,客户端系统106和多租户管理系统116使用ap系统104作为受信任的第三方来验证彼此的身份。
一旦认证完成,则mafe系统126将由用户112请求的命令转发到认证前端168,并且在一个示例中,转发到能力令牌服务182。这在图3中由框282指示。
能力令牌服务182图示地确定命令请求是否被授权。这由框284指示。例如,能力令牌服务182能够通过访问基于角色的访问控制和接口系统164来这样做。这由框286指示。也就是说,能力令牌服务182能够访问系统164,以基于用户的角色成员关系来确定用户是否被授权执行命令。这还能够涉及风险分析。能够基于当前在系统102中正在发生什么、基于做出请求的特定用户112的用户简档、基于将在其中执行命令的系统的系统简档、以及其它内容来计算风险度量。例如,如果请求用户112不是正常地做出这种请求的用户,或者如果在异常的时间(例如,非常忙的时间或者在用户112正在度假时等)做出请求,则这可以指示这是相对高风险的命令。系统164图示地考虑各种因素,并计算指示对应于请求用户112在此时并且在这些情境下在目标资源(或目标机器)上执行所请求的命令的风险的风险度量。基于用户的角色成员关系来验证用户是否被授权执行命令由框288指示。用户还能够以其它方式进行验证,并且这由框290指示。
如果在框292处确定用户未被授权执行所请求的命令,则处理跳至框294,在框294处显示合适的错误消息。然而,如果在框292处确定用户被授权执行所请求的命令,则处理移动到框296,在框296处能力令牌服务182生成可以包括风险度量的能力权证(或令牌),并利用对应于能力令牌服务182(或认证前端168)的签署证书对其进行签署。然后将已签署的权证或令牌返回到mafe系统126。这在图3中由框298指示。
作为响应,mafe系统126验证已签署令牌上的认证前端168(或能力令牌服务182)的签名。这由框300指示。然后,mafe系统126使用其自己的签署证书对权证(或令牌)进行签署,并将权证(或令牌)发送到目标机器118上的认证工作者组件122。这分别由框302和304指示。
在接收到已签署权证(或令牌)之后,认证工作者组件122验证(或者认证前端168或者令牌服务182、以及mafe系统126的)两个签名以确定这两个签名是否有效。如果签名无效(如在框308处确定的),则处理再次回到框294,在框294处显示错误消息。然而,如果在框308处签名有效,则认证工作者组件122从权证(或令牌)获得执行级别(或隔离级别)。这由框310指示。例如,在一个示例中,认证工作者组件122访问本地策略123,以识别将单独的命令(或命令的集合)映射到目标机器118中的特权和许可(或定性隔离级别的执行环境的其它项)的集合的映射。
然后,认证工作者组件122根据权证(或令牌)拆解命令及其对应的参数。这由框312指示。然后,认证工作者组件122打开基于任务的执行环境(例如,具有供应执行命令所需的执行级别、或隔离级别所需的最少量的特权或许可的执行环境)。这由框314指示。注意,虽然在一个示例中使用了最小特权和许可,但是情况并不总是这样。例如,在另一示例中,在执行环境中可以准许比绝对需要的许可或特权要稍微多一些的许可或特权。然而,特权和许可是基于要被执行的特定命令确定的。如上文描述的,一个示例是准许执行命令所需的最少数量的许可和特权。
然后,认证工作者组件122在刚刚打开的执行环境中利用对应的参数来开启命令。这由框316指示。然后,当命令已经被执行时,组件122能够将结果返回到客户端系统106。这由框318指示。
在描述关键架构之前,将首先描述命令请求与执行环境之间的映射。如上文简要讨论的,本地策略145能够包括映射。映射图示地将各种不同的命令请求(或工作流)映射到各种不同的执行环境。每个执行环境图示地作为执行命令请求(或工作流)所需的最小特权的执行环境。映射能够以多种不同的方式创建。
如上文简要提及的,命令请求(或工作流)与执行环境之间的映射能够用于识别执行命令或工作流所需的执行环境和对应的特权。在一个示例中,将工作流映射到能够用于执行工作流的最小特权的执行环境。在另一示例中,将每个工作流映射到特权受限的、而不是执行工作流所需的最小特权的执行环境。以这种方式,能够将需要类似的(但是不等同的)特权的多个不同的工作流分组到一起。然后,能够将每个分组映射到具有充分的特权的执行环境,以使得对应的分组中的每个工作流能够被执行。映射能够以各种不同的方式生成。图3d是能够用于自动地接收工作流的表示203并生成从该工作流203到执行环境(其可以由特权的集合或以其它方式定义)的映射205的映射生成系统201的一个示例的框图。图3e是示出系统201的操作的一个示例的流程图。现在将结合彼此描述图3d和图3e。
系统201图示地包括工作流解析逻辑207、许可/特权标识符逻辑209、许可/特权分类逻辑211、工作流到环境映射生成器213,并且系统201还能够包括其它项215。系统201首先接收一个或多个工作流的表示203,以用于映射。这在图3e中由框217指示。表示203能够采取多种不同的形式。例如,表示203可以是执行工作流的管理者的记录219。表示203可以是工作流的元数据描述221,或者其可以是另一表示223。
然后,工作流解析逻辑207对表示203进行解析以识别在执行工作流时使用的各种步骤或任务。这由框225指示。这样做时,逻辑207可以识别在执行工作流期间要被接触或访问的容量实例(或任何其它实例或机器)的不同部分。这可以由元数据指示,或者可以使用机器学习来学习、或者可编程地识别、或以其它方式。
然后,许可/特权标识符逻辑209识别执行被分析的工作流或多个工作流中的步骤或任务所需的特权和/或许可的超集。这在图3e中由框229指示。
基于所识别的特权/许可,分类逻辑211对所识别的供应特权/许可的集合的执行环境进行识别。这由框231指示。这样做时,逻辑211可以将特权/许可的集合分类为多个预定义的执行环境中的一个。这由框233指示。执行环境将图示地具有充分的特权/许可,因此能够执行任务或步骤。在一个示例中,逻辑211能够动态地识别新的执行环境作为用于执行工作流中的任务或步骤的最小特权的环境。这由框235指示。执行环境还能够以其它的方式识别。这由框237指示。
然后,工作流到环境映射生成器213生成被分析的工作流或多个工作流与所识别的执行环境之间的映射。这由框239指示。能够将映射输出或存储以供在运行时期间使用。能够将映射保存到一个或多个位置,或以其它方式输出。
图4a-4c(在本文中统称为图4)示出了允许用户112被认证以在目标机器上执行命令(或其它任务)的架构100操作的一个示例,其中信任、认证、以及授权系统156使用公共密钥基础设施。图4d-4g更详细地示出了图1a和图1b中所示的多个项。
例如,图4d更详细地示出了信任、认证、以及授权系统156的一个示例。图4d示出了系统156能够包括两因素认证组件330、公共密钥基础设施系统332(其本身能够包括密钥组件334、证书组件336、以及其它项338),并且系统156还能够包括其它项340。
图4e更详细地示出了mafe系统126的一个示例。图4e示出了mafe系统126能够包括密钥组件342、散列函数引擎344、证书系统346(其本身能够包括验证组件348、签名组件350、以及其它项352)、队列路由组件354,并且mafe系统126能够包括其它项356。
图4f更详细地示出了能力令牌服务182的一个示例。在图4f所示的示例中,服务182图示地包括签名验证引擎358、签署组件360、工作流封装生成器362,并且服务182还能够包括其它项364。
图4g更详细地示出了认证工作者组件122的一个示例。例如,组件122能够包括签名验证组件366、本地验证组件368、执行(或隔离)级别标识符组件370、执行环境生成器372、命令执行引擎374,并且组件122能够包括其它项376。现在将结合彼此描述图1a、图1b、图4、以及图4d-4g。
再次,图4a-4c(在本文中统称为图4)示出了流程图,该流程图示出了允许用户112在多租户管理系统116中的目标机器上执行命令的架构100操作的一个示例。还能够关于用户112在多租户容量系统140中的目标机器上执行命令或操作来执行相同类型的过程,并且图4中的描述仅通过示例的方式提供。为了图4的描述起见,还假设信任、认证、以及授权系统156设置有图4d所示的公共密钥基础设施332。
首先,用户112开启客户端系统106上的客户端控制台(或认证前端186)。这在图4中由框380指示。然后,用户112图示地使用两因素认证向ap系统104进行认证。这由框382指示。通过示例的方式,认证前端186图示地进行检查以确保用户112具有用户访问请求签署证书。这能够存储在访问管理系统162中的用户访问账户178中。这由框384指示。
如果用户不具有用户访问签署证书(ua签署证书),则认证前端186请求一个ua签署证书。这样做时,认证前端186图示地创建公共/私有密钥对,并且利用该密钥对创建针对ua签署证书的请求。这在图4中由框386和388指示。然后,其将请求发送到发布证书机构(例如,图4d所示的公共密钥基础设施332中的证书组件336)。这由框390指示。证书组件336响应于请求而发布ua签署证书。这由框392指示。这还能够以各种不同的方式完成。例如,证书组件336能够验证用户是给定分组中的成员,使用基于角色的访问控制和接口系统164、或者使用用户访问账户178或服务器访问账户180、通过身份管理系统166、或以其它方式。这分别由框394和396指示。
如果在框384处确定用户具有ua签署证书,或者在框392之后当针对用户发布ua签署证书时,则用户112能够向mafe系统126提交用户希望在多租户管理系统116中的目标机器118上执行的访问请求(例如,命令)。这样做时,认证前端186(或认证客户端控制台)使用ua请求签署证书对请求进行签署。这在图4中由框398指示。已签署的请求包括识别用户正在请求执行的特定命令的用户请求400。已签署的请求还图示地包括请求的数字签名,其能够包括用户请求的单向散列和发布给用户的ua请求签署证书的副本二者。这由框402指示。当然,已签署的请求还能够包括其它项,如框404所指示的。
然后,mafe系统126(图4e所示)中的验证组件348使用包括在请求中的ua请求签署证书来验证客户端签名。这由框406指示。验证组件348能够这样做,因为包含在ua请求签署证书中的公共密钥成功地重新计算访问请求的单向散列函数。因此,例如,密钥组件342从ua请求签署证书获得公共密钥。这由框308指示。然后,散列函数引擎344计算单向散列以获得访问请求数据(例如,表示命令的数据)。这由框410指示。因为用户的ua请求签署证书本身是由发布证书机构(例如,如图4d所示,信任、认证、以及授权系统156中的证书组件336)签署的,所以验证组件348对发布证书链进行验证以查看发布证书机构(证书组件336)是受信任的。这由框412指示。mafe系统126还能够以其它方式验证客户端签名,并且这由框414指示。
然后,mafe系统126中的签名组件350使用mafe访问请求签署证书对用户访问请求进行签署。这由框416指示。
然后,mafe系统126中的队列路由组件354将已签署的请求(例如,在本文中也被称为工作流二进制大对象(blob))放置在请求队列130中。这在图4中由框418指示。然后,crqs系统128从队列130中取回已签署的请求,并将其发送到ap系统104中的能力令牌服务182。这在图4中由框420指示。能力令牌服务182中的签名验证引擎358(图4f)验证mafe系统126的签名和用户签名(或客户端系统106的签名),并且验证用户112被授权执行工作流。然后,签署组件360利用能力令牌(ct)服务签署证书对其进行签名,并且工作流封装生成器362生成新的、已批准的工作流,并将该新的、已批准的工作流放置在已批准的请求队列132中。这在图4中由框422指示。
在一个示例中,工作流二进制大对象识别做出请求的用户、对应于命令的所请求的动作、以及命令要在其上执行的目标资源。这由框424指示。能力令牌服务182能够访问基于角色的访问控制和接口系统164,如框426所指示的。系统164提供关于用户是否被授权执行由工作流指示的命令的指示。
能力令牌服务182还能够访问角色请求和批准系统158,以确定该用户是否需要批准(例如,来自用户的管理者的)以便于执行命令。如果需要,则其能够执行关于图2在上文讨论的批准过程。这由框428指示。
一旦系统182批准工作流,这指示ap系统104已经授权用于目标机器上的目标资源的工作流。这在图4中由框430指示。当然,能力令牌服务182也能够执行其它动作,并且这由框432指示。
当已批准的工作流出现在已批准的请求队列132中时,crqs系统128图示地提取该已批准的工作流,对其进行分解,并且将新的、已批准的工作流分布到对应的目标机器118,以使得命令能够在该机器上开启。这由框434指示。新的、已批准的工作流图示地被分解为要在目标机器上执行的任务436的集合。新的、已批准的工作流还能够图示地被分解为对任务以及针对任务中的每个任务的执行级别或范围进行定义的参数。这由框438指示。分解还能够包括其它信息440。
认证工作者组件122图示地接收目标机器上的分解的已批准的工作流,并且访问其先前接收的根证书机构证书,并且验证工作流上的所有签名,并且还使用本地策略131(或对于机器118而言在本地的本地策略123)本地地验证工作流。这由框442指示。重新调用该操作,工作流将图示地包括用户(或客户端)106、mafe系统126、以及能力令牌服务182的签名。这由框444指示。因此,认证工作者组件122中的签名验证组件366对签名进行验证。本地验证组件368能够访问本地策略123,以确定ap系统104是否被授权针对这些目标资源上的该命令认证该用户。认证工作者组件122还能够验证命令中的各种任务,并且将关于图6在下文描述这一操作的一个示例。当然,认证工作者组件122还能够执行其它动作,并且这由框446指示。
如果签名或工作流是无效的(如在框448处确定的),则能够显示合适的错误消息,如框450所指示的。然而,如果签名和工作流是有效的,则处理在框452处继续。
然后,执行(或隔离)级别标识符组件370针对要在其中操作的工作流识别执行级别(或隔离级别),以便于实现命令。在一个示例中,执行(或隔离)级别标识符组件370访问本地策略131(或123)。本地策略图示地包括各种单独的命令与执行级别(或执行命令所需的隔离级别)之间的映射。例如,映射可以包括命令与执行命令或命令中的各种任务所需的许可或特权的集合之间的映射。识别执行级别(或隔离级别)由框452指示。
然后,认证工作者组件122使用执行环境生成器372来打开执行环境,该执行环境具有供应用于执行对应于命令的工作流的执行级别(或隔离级别)所需的最小特权(或至少基于任务的特权)。这由框454指示。然后,命令执行引擎374在最小特权的执行环境中执行工作流,如框456所指示的。在一个示例中,组件122返回所执行的命令的结果。这由框458指示。
图5是更详细地示出认证工作者组件122的操作的一个示例的流程图。在一个示例中,要在目标机器118上执行的各种工作流存储在队列中,并按顺序执行。因此,认证工作者组件122针对接收到的工作流监测本地工作流队列。这由框460指示。然后,如框462所指示的,认证工作者组件122从本地队列中拉出工作流封装,并且签名验证组件366对工作流封装上的签名进行验证。
然后,组件122拆解工作流以识别各种任务和针对这些任务的对应的范围(或参数)。这由框466指示。例如,给定的工作流可以包括多个较低级别的命令或任务,并且可以暗示跨不同的机器和不同的角色的执行。每个任务可以被应用于指定范围中的机器角色中的仅一些机器角色。例如,范围可以是定义对其而言命令请求被提交的系统、租户、站点等的一个或多个参数的组合。然后,本地验证组件368访问本地授权策略,并验证工作流是通过本地策略授权的。这由框468和470指示。作为一个示例,授权策略可以将不同的范围映射到不同的机器。因此,本地验证组件368可以验证范围是针对当前目标机器的。这由框472指示。组件368还能够执行基于任务的访问验证(这将关于图6在下文更详细地描述)。这由框474指示。此外,本地验证组件368还能够以其它方式验证工作流是通过本地策略授权的,并且这由框476指示。
然后,执行级别标识符组件370识别基于任务的执行环境。在一个示例中,这是执行命令或其它请求中的各种任务所需的最小特权的环境。在另一示例中,特权被划分为分组,并且特权的分组致使系统最小可访问但是仍然使得任务能够被执行。虽然这在技术上可能不是“最小特权的”执行环境,但是它是基于要执行的任务被限制的执行环境。这由框478指示。再次,这能够以多种方式完成。例如,执行环境可以由工作流开发者指定,如框480所指示的。如框482所指示的,可以将执行环境限定到本地服务。如框484所指示的,可以将执行环境限定到网络服务,或者可以基于特定的服务账户对其进行识别,如框486所指示的。还能够以其它方式对执行环境进行识别,并且这由框488指示。
然后,执行环境生成器372生成执行命令或任务的集合所需的执行环境。在一个示例中,执行环境生成器372从ap系统104获得对应于已识别的、最小特权的执行环境的访问令牌。这由框490指示。然后,命令执行引擎374使用最小特权的访问令牌来开启进入到子过程的工作流。这由框492指示。
图6a和图6b(在本文中统称为图6)示出了认证工作者组件122在执行基于任务的访问验证时的操作的一个示例。这也由上文图5中的框474表示。
重新调用该操作,从ap系统104接收到的授权声明(或已授权的命令请求)是已签署的消息,其包含用户的用户(或客户端)已签署的标识符,以及识别工作流和要在其上执行工作流的目标范围的工作流标识符。当ap系统104授权工作流时,ap系统104基于用户的角色成员关系、与用户角色成员关系相关联的范围、以及管理者批准工作流的完成(如果需要)来授权工作流。给定的工作流可以包括多个较低级别的命令或任务,并且可以暗示跨不同的机器和不同的角色的执行。
从ap系统104接收的授权声明图示地是由用户识别的范围中的工作流的高级别授权。然而,这些声明并不在每个目标机器上提供任务级别的访问验证。由于架构100的分布式授权设计,crqs128并不具有对执行工作流进行授权的权力。因此,目标机器上的认证工作者组件122在其执行之前执行任务中的每个任务的授权。认证工作者组件122能够这样做,因为当其从crqs128接收工作项时,系统128已经将工作流分解为所要求的任务和针对这些任务的参数(或范围)。认证工作者组件122上的本地验证组件368对任务进行授权。这能够是验证任务和范围是工作流的一部分,并且由ap系统104授权的范围对应于目标机器。为此,认证工作者组件122中的本地验证组件368针对本地授权策略123检查每个任务,本地授权策略123包括每个工作流到对应的任务的映射。
一般而言,ap系统104发布包括用户识别的工作流和用户识别的范围的声称的集合。当验证工作流包含指定的任务时,crqs128查询本地授权策略131以查看工作流是否包括指定的任务。当验证任务的范围时,认证工作者组件122验证由crqs128提供的范围匹配由ap系统104批准的声称的范围,并且还验证指定的范围实际上包括本地机器(或目标机器)118。图6a和图6b(在本文中统称为图6)更详细地示出了该操作。
首先假设认证工作者组件122已经接收到工作流封装、验证工作流封装上的签名、以及拆解工作流封装。这在图6中由框494指示。在一个示例中,由用户id识别的给定用户请求具有覆盖任务的集合t的给定范围的工作流x。每个任务具有对应的任务范围。这能够如496处所示地表示。当然,还能够以其它方式498表示。
首先,本地验证组件368从工作流封装中选择任务和对应的范围。这由框500指示。然后,本地验证组件368访问本地授权策略数据存储库(例如,本地策略123)。这由框502指示。本地策略123图示地将任务映射到工作流。这由框504指示。还可以包括其它信息,如框506所指示的。然后,本地验证组件368确定所选择的任务是否被映射到在496处指示的所识别的工作流。该确定在图6中由框508指示。如果未被映射,则生成适当的错误消息,如框510所指示的。然而,如果被映射,则本地验证组件368确定对应于所选择的任务的范围是否匹配由能力令牌服务182授权的范围。这由框512指示。如果匹配,则本地验证组件368确定对应于所选择的任务的范围是否应用于该特定的本地机器(例如,机器118)。这由框514指示。如果在框512或514中的任一个框处的答案为否,则处理再次回到框510,在框510处生成适当的错误消息。然而,如果在每个框处的答案为是,则已经对任务进行本地验证以用于在该特定的目标机器上执行。这由框516指示。然后,在框518处,本地验证组件368确定在由框496指示的工作流中是否存在任何附加的任务要处理。如果存在,则处理回到框500。如果不存在,则已经针对该机器对所有任务进行验证。
本讨论提及了处理器和服务器。在一个实施例中,处理器和服务器包括具有相关联的存储器和定时电路(未分离地示出)的计算机处理器。处理器和服务器是其所属的系统或设备的功能部分,并且由这些系统中的其它组件或项的功能激活并促进这些系统中的其它组件或项的功能。
另外,已经讨论了多个用户界面显示。多个用户界面显示能够采取多种不同的形式,并且能够具有布置在其上的多种不同的用户可致动的输入机制。例如,用户可致动的输入机制能够是文本框、复选框、图标、链接、下拉菜单、搜索框等。这些输入机制还能够以多种不同方式致动。例如,能够使用定点和点击设备(例如,轨迹球或鼠标)来致动这些输入机制。能够使用硬件按钮、开关、操纵杆或键盘、拇指开关、或拇指垫等来致动这些输入机制。还能够使用虚拟键盘或其它虚拟致动器来致动这些输入机制。另外,在显示这些输入机制的屏幕是触敏屏幕的情况下,能够使用触摸手势对其进行致动。而且,在显示这些输入机制的设备具有语音识别组件的情况下,能够使用语音命令对其进行致动。
也已经讨论了多个数据存储库。注意,多个数据存储库能够每个均被分解为多个数据存储库。对于访问数据存储库的系统而言,能够全部是本地的,能够全部是远程的,或者能够一些是本地的而其它的是远程的。在本文中构思了这些配置中的全部。
另外,附图示出了具有归于每个框的功能的多个框。注意,能够使用更少的框,因此功能通过更少的组件来执行。另外,能够使用具有分布在更多的组件之间的功能的更多的框。
注意,上文的讨论已经描述了各种不同的系统、组件和/或逻辑。可以认识到,这样的系统、组件和/或逻辑能够包括硬件项(例如,处理器和相关联的存储器、或其它处理组件,下文描述其中的一些),其执行与这些系统、组件和/或逻辑相关联的功能。另外,系统、组件和/或逻辑能够包括软件,其被加载到存储器中并随后由处理器或服务器或其它计算组件执行,如下文所描述的。系统、组件和/或逻辑还能够包括硬件、软件、固件等的不同组合,下文描述其中的一些示例。这些只是能够用于形成上文描述的系统、组件和/或逻辑的不同结构的一些示例。还能够使用其它结构。
图7是图1a所示的架构100的框图,除了其元件被布置在云计算架构520中之外。云计算提供计算、软件、数据访问、以及存储服务,而不需要终端用户知道递送服务的系统的物理位置或配置。在各种实施例中,云计算通过广域网(例如,互联网)使用适当的协议来递送服务。例如,云计算提供方通过广域网来递送应用,并且其能够通过网络浏览器或任何其它计算组件被访问。架构100的软件或组件以及对应的数据能够存储在远程位置处的服务器上。云计算环境中的计算资源能够固定在远程数据中心位置处,或者它们能够是分散的。云计算基础设施能够通过共享数据中心来递送服务,即使它们表现为针对用户的单个访问点。因此,能够从远程位置处的服务提供方使用云计算架构提供本文所描述的组件和功能。可替代地,本文所描述的组件和功能能够从常规的服务器提供,或者其能够直接安装在客户端设备上,或以其它方式。
本说明书旨在包括公共云计算和私有云计算二者。云计算(公共的和私有的二者)提供基本上无缝的池式资源,以及对于管理和配置基层的硬件基础设施的缩减的需求。
公共云由供应商管理,并且典型地支持使用相同的基础设施的多个消费者。另外,与私有云相反,公共云能够释放终端用户免于对硬件进行管理。私有云可以由组织本身管理,并且基础设置典型地不与其它组织共享。组织仍然在一定程度上维护硬件,例如,安装和维修等。
在图7所示的示例中,一些项类似于图1a所示的那些项,并且这些项被类似地编号。图7具体示出了多租户工作负载系统102以及认证和许可系统104能够位于云522(其能够是公共的、私有的、或其中部分是公共的而其它是私有的组合)中。因此,用户112使用用户设备524通过云522来访问这些系统。
图7还描述了云架构的另一示例。图7示出还构思了架构100中的一些元件能够布置在云522中,而其它的元件不在云522中。通过示例的方式,能够将数据存储库160布置在云522的外面,并通过云522进行访问。在另一示例中,ap系统104也能够在云252的外面。不管这些元件位于何处,能够由设备524通过网络(或者广域网,或者局域网)直接对它们进行访问,能够通过服务将它们托管在远程站点处,或者能够将它们提供为通过云的服务或由驻留在云内的连接服务进行访问。这些架构中的全部在本文中被构思。
还注意到,架构100(或架构100的部分)能够布置在多种不同的设备上。这些设备中的一些包括服务器、台式计算机、膝上型计算机、平板计算机、或其它移动设备,例如,掌上计算机、蜂窝电话、智能电话、多媒体播放器、个人数字助理等。
图8是能够用作用户或客户端的手持设备16的手持或移动计算设备的一个示例说明的实施例的简化框图,本系统(或本系统的部分)能够部署在该手持或移动计算设备中。图9-10是手持或移动设备的示例。
图8提供了客户端设备16的组件的一般框图,客户端设备16能够运行数据中心102或ap系统104或主管客户端系统106的组件、或者与架构100交互、或者二者。在设备16中,提供了允许手持设备与其它计算设备进行通信的通信链路13,并且在一些实施例中,提供了用于自动接收信息的信道,例如,通过扫描。通信链路13的示例包括红外端口、串行/usb端口、电缆网络端口(例如,以太网端口)、以及无线网络端口,其允许通过包括以下项的一个或多个通信协议进行通信:通用分组无线业务(gprs)、lte、hspa、hspa+、以及其它3g和4g无线协议,用于提供对网络的蜂窝访问的无线服务1xrtt和短消息业务,以及提供到网络的本地无线连接的wi-fi协议和蓝牙协议。
在其它示例中,应用或系统在连接到sd卡接口15的可移除安全数字(sd)卡上接收。sd卡接口15和通信链路13沿着总线19与处理器17(其也能够体现来自图1a的处理器)进行通信,总线19还连接到存储器21和输入/输出(i/o)组件23,以及时钟25和位置系统27。
在一个实施例中,提供i/o组件23以促进输入和输出操作。用于设备16的各种实施例的i/o组件23能够包括输入组件(例如,按钮、触摸传感器、多触摸传感器、光或视频传感器、语音传感器、触摸屏幕、接近度传感器、麦克风、倾斜传感器、以及重力开关)和输出组件(例如,显示设备、扬声器、和/或打印机端口)。还能够使用其它i/o组件23。
时钟25图示地包括输出时间和日期的实时时钟组件。时钟25还能够图示地为处理器17提供定时功能。
位置系统27图示地包括输出设备16的当前地理位置的组件。例如,这能够包括全球定位系统(gps)接收机、loran系统、航位推测系统、蜂窝三角系统、或其它定位系统。例如,位置系统27还能够包括绘制地图软件或导航软件,其生成期望的地图、导航线路、以及其它地理功能。
存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储库37、通信驱动器39、以及通信配置设置41。存储器21能够包括所有类型的有形的易失性和非易失性计算机可读存储器设备。存储器21还能够包括计算机存储介质(在下文描述)。存储器21存储计算机可读指令,该计算机可读指令当被处理器17执行时,使得处理器根据指令执行计算机实现的步骤或功能。类似地,设备16能够具有客户端系统24,其能够运行各种商业应用或体现租户114、或主管客户端100的部分或全部。处理器17还能够被其它组件激活以促进其功能。
网络设置31的示例包括以下内容:例如,代理信息、互联网连接信息、以及映射。应用配置设置35包括针对特定企业或用户对应用进行裁剪的设置。通信配置设置41提供用于与其它计算机进行通信的参数,并且包括诸如gprs参数、sms参数、连接用户名称和密码的项。
应用33能够是先前存储在设备16上的应用,或在使用期间安装的应用,但是这些应用也能够是操作系统29的一部分,或者托管在设备16的外部。
图9示出了其中设备16是平板计算机600的一个实施例。在图6中,计算机600被示为具有用户界面显示屏幕602。屏幕602能够是触摸屏幕(因此来自用户的手指的触摸手势能够用于与应用进行交互),或接收来自笔或触针的输入的笔使能的接口。计算机600还能够使用屏幕上虚拟键盘。当然,例如,计算机600还能够通过合适的附接机制(例如,无线链路或usb端口)附接到键盘或其它用户输入设备。计算机600还能够图示地接收语音输入。
还能够使用设备16的附加示例。设备16能够是特色电话、智能电话或移动电话。电话能够包括用于拨打电话号码的一组键板,能够显示图像(包括应用图像、图标、网页、照片、以及视频)的显示器,以及用于选择在显示器上显示的项的控制按钮。电话包括用于接收蜂窝电话信号(例如,通用分组无线业务(gprs)和1xrtt、以及短消息业务(sms)信号)的天线。在一些示例中,电话还包括接纳安全数字(sd)卡的sd卡槽。
移动设备还能够是个人数字助理或多媒体播放器或者平板计算设备等(在后文中称作pda)。pda能够包括感应屏幕,其在触针(或其它指针,例如,用户的手指)被定位在屏幕上时感测触针的位置。这允许用户选择、突出显示、以及移动屏幕上的项,以及进行绘制和书写。pda还能够包括多个用户输入按键或按钮,其允许用户滚动通过在显示器上显示的菜单选项或其它显示选项,并且允许用户在不接触显示器的情况下改变应用或选择用户输入功能。pda能够包括允许与其它计算机进行无线通信的内部天线和红外发射机/接收机,以及允许到其它计算设备的硬件连接的连接端口。典型地通过支架进行这种硬件连接,支架通过串行或usb端口连接到其它计算机。这样,这些连接是非网络连接。
图10示出了电话能够是智能电话71。智能电话71具有触敏显示器73,其显示图标或图块或其它用户输入机制75。机制75能够由用户用于运行应用、进行呼叫、执行数据传递操作等。一般而言,智能电话71建立在移动操作系统上,并且提供比特色电话更先进的计算能力和连接性。
注意,其它形式的设备16是可能的。
图11是(例如)其中能够部署架构100或其一部分的计算环境的一个实施例。参考图11,用于实现一些实施例的示例性系统包括以计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820(其能够包括上文讨论的处理器中的任何处理器)、系统存储器830、以及系统总线821,该系统总线821将包括系统存储器的各种系统组件耦合到处理单元820。系统总线821可以是若干类型的总线架构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线架构中的任何一种总线架构的本地总线。通过示例而非限制的方式,这种架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线、以及外围部件互连(pci)总线(也被称为mezzanine总线)。关于图1a描述的存储器和程序能够部署在图11的对应部分中。
计算机810典型地包括多种计算机可读介质。计算机可读介质可以是能够由计算机810访问的任何可用的介质,并且包括易失性和非易失性介质、可移除和不可移除介质二者。通过示例而非限制的方式,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于且不包括调制数据信号或载波。计算机存储介质包括硬件存储介质,硬件存储介质包括以任何方法或技术实现的易失性和非易失性介质、可移除和不可移除介质二者,以用于存储诸如计算机可读指令、数据结构、程序模块、或其它数据的信息。计算机存储介质包括但不限于ram、rom、eeprom、闪速存储器、或其它存储器技术,cd-rom、数字通用盘(dvd)或其它光盘存储,磁带盒、磁带、磁盘存储或其它磁存储设备,或者能够用于存储所期望的信息并且能够由计算设备810访问的任何其它介质。通信介质典型地体现计算机可读指令、数据结构、程序模块、或传输机制中的其它数据,并且包括任何信息递送介质。术语“调制数据信号”表示其特性中的一个或多个特性以对信号中的信息进行编码的方式设置或改变的信号。通过示例而非限制的方式,通信介质包括有线介质(例如,有线网络或直接有线连接)和无线介质(例如,声学、rf、红外、以及其它无线介质)。上述内容中的任何内容的组合也应当包括在计算机可读介质的范围内。
系统存储器830包括以易失性和/或非易失性存储器形式的计算机存储介质,例如,只读存储器(rom)831和随机存取存储器(ram)832。基本输入/输出系统833(bios)典型地存储在rom831中,基本输入/输出系统833(bios)包含帮助在计算机810内的元件之间传递信息的基本例程,例如,在启动期间。ram832典型地包含处理单元820立即可访问的和/或处理单元820目前正在操作的数据和/或程序模块。通过示例而非限制的方式,图11示出了操作系统834、应用程序835、其它程序模块836、以及程序数据837。
计算机810还可以包括其它可移除/不可移除的易失性/非易失性计算机存储介质。仅通过示例的方式,图11示出了从不可移除的、非易失性磁介质读取或对其写入的硬盘驱动841,以及从可移除的、非易失性光盘856(例如,cdrom或其它光介质)读取或对其写入的光盘驱动855。能够在示例性操作环境中使用的其它可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪速存储器卡、数字通用盘、数字视频带、固态ram、固态rom等。硬盘驱动841典型地通过不可移除存储器接口(例如,接口840)连接到系统总线821,并且光盘驱动855典型地通过可移除存储器接口(例如,接口850)连接到系统总线821。
可替代地或另外地,本文描述的功能能够至少部分地由一个或多个硬件逻辑组件执行。例如,但不进行限制,能够使用的硬件逻辑组件的示例说明的类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程器件(cpld)等。
上面讨论的以及图11所示的驱动及其相关联的计算机存储介质提供了对用于计算机810的计算机可读指令、数据结构、程序模块、以及其它数据的存储。在图11中,例如,硬盘驱动841被示为存储操作系统844、应用程序845、其它程序模块846、以及程序数据847。注意,这些组件能够或者与操作系统834、应用程序835、其它程序模块836、以及程序数据837相同,或者与其不同。这里给予操作系统844、应用程序845、其它程序模块846、以及程序数据847不同的附图标记,以示出在最低程度上它们是不同的副本。
用户可以通过诸如键盘862、麦克风863、以及定点设备861(例如,鼠标、轨迹球、或触摸垫)的输入设备将命令和信息输入到计算机810中。其它输入设备(未示出)可以包括操纵杆、游戏垫、圆盘卫星天线、扫描仪等。这些和其它输入设备常常通过耦合到系统总线的用户输入接口860连接到处理单元820,但是可以通过其它接口和总线结构(例如,并行端口、游戏端口或通用串行总线(usb))进行连接。视觉显示器891或其它类型的显示设备也经由接口(例如,视频接口890)连接到系统总线821。除了监视器外,计算机还可以包括其它外围输出设备,例如,扬声器897和打印机896,其可以通过输出外围接口895进行连接。
计算机810在联网的环境中使用到一个或多个远程计算机(例如,远程计算机880)的逻辑连接进行操作。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络pc、对等设备、或其它常见的网络节点,并且典型地包括上文关于计算机810所描述的元件中的许多或全部。在图10中描述的逻辑连接包括局域网(lan)871和广域网(wan)873,但是还可以包括其它网络。这种联网环境在办公室、企业范围的计算机网络、内联网、以及互联网中是很常见的。
当在lan联网环境中使用时,计算机810通过网络接口或适配器870连接到lan871。当在wan联网环境中使用时,计算机810典型地包括调制解调器872,或用于通过wan873(例如,互联网)建立通信的其它模块。调制解调器872(其可以是内部的或外部的)可以经由用户输入接口860或其它适当的机制连接到系统总线821。在联网的环境中,关于计算机810(或其中的部分)描述的程序模块可以存储在远程存储器存储设备中。通过示例而非限制的方式,图11将远程应用程序885示出为驻留在远程计算机880上。可以认识到,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其它手段。
还应该注意,本文描述的不同实施例能够以不同的方式进行组合。也就是说,一个或多个实施例的部分能够与一个或多个其它实施例的部分进行组合。这些中的全部在本文中进行了构思。
示例1是一种许可计算系统,包括:
签名验证引擎,其接收已签署的用户访问请求,用户访问请求识别用户、并请求对远程的多租户容量系统中的目标机器上的目标资源进行访问以在目标资源上执行工作流、并且是从远程的多租户管理系统接收的,签名验证引擎将用户访问请求上的第一签名验证为属于多租户管理系统;
用户访问账户的集合;
基于角色的访问控制系统,其访问用户访问账户并验证用户被授权执行工作流;以及
能力令牌服务,其至少部分地基于签名验证引擎验证第一签名和基于角色的访问控制系统验证用户被授权执行工作流,基于用户访问请求来生成输出封装。
示例2是任何或所有先前示例的许可计算系统,其中,用户访问请求还被对应于用户的远程客户端系统签署,并且其中,签名验证系统将第二签名验证为属于远程客户端系统。
示例3是任何或所有先前示例的许可计算系统,其中,能力令牌服务还包括:
签名组件,其响应于签名验证引擎验证第一签名和第二签名以及基于角色的访问控制系统验证用户被授权执行工作流,利用服务组件签署证书对工作流进行签署。
示例4是任何或所有先前示例的许可计算系统,其中,能力令牌服务包括:
工作流封装生成器,其生成指示许可计算系统已经授权用户访问目标机器上的目标资源以执行工作流的已批准的工作流封装。
示例5是任何或所有先前示例的许可计算系统,其中,工作流封装生成器将已批准的工作流封装输出到远程的多租户管理系统中的已批准的请求队列。
示例6是任何或所有先前示例的许可计算系统,还包括:
批准请求系统,其识别用户是否需要来自另一用户的批准以执行工作流。
示例7是任何或所有先前示例的许可计算系统,其中,远程客户端系统利用用户访问签署证书对用户访问请求进行签署,并且还包括:
证书组件,其接收针对用户访问签署证书的请求,并验证对应的用户是被授权接收用户访问签署证书的给定分组中的成员,并且如果是,则响应于针对用户访问签署证书的请求而将用户访问签署证书返回到远程客户端系统。
示例8是任何或所有先前示例的许可计算系统,其中,针对用户访问签署证书的请求是利用公共/私有密钥对中的密钥加密的,并且还包括:
密钥组件,其使用公共/私有密钥对中的至少一个密钥来解密针对用户访问签署证书的请求。
示例9是任何或所有先前示例的许可计算系统,还包括:
身份管理系统,其访问用户访问账户和服务器访问账户以识别分组成员关系信息,证书组件访问身份管理系统以确定对应于远程客户端系统的用户是否为给定分组中的成员。
示例10是一种计算机实现的方法,包括:
在许可计算系统处,接收已签署的用户访问请求,用户访问请求识别用户、并请求对远程的多租户容量系统中的目标机器上的目标资源进行访问以在目标资源上执行工作流、并且是从远程的多租户管理系统接收的;
将用户访问请求上的第一签名验证为属于多租户管理系统;
访问用户访问账户;
基于用户访问账户验证用户被授权执行工作流;以及
至少部分地基于第一签名的验证以及用户被授权执行工作流的验证,生成包括验证指示符和在用户访问请求中识别的工作流的输出封装。
示例11是任何或所有先前示例的计算机实现的方法,其中,用户访问请求还被对应于用户的远程客户端系统签署,并且还包括:
将第二签名验证为属于远程客户端系统。
示例12是任何或所有先前示例的计算机实现的方法,还包括:
响应于验证第一签名和第二签名以及验证用户被授权执行工作流,利用签署证书对工作流进行签署。
示例13是任何或所有先前示例的计算机实现的方法,其中,生成输出封装包括:
生成指示许可计算系统已经授权用户访问目标机器上的目标资源以执行工作流的已批准的工作流封装。
示例14是任何或所有先前示例的计算机实现的方法,其中,生成已批准的工作流封装包括:
将已批准的工作流封装发送到远程的多租户管理系统中的已批准的请求队列。
示例15是任何或所有先前示例的计算机实现的方法,其中,远程客户端系统利用用户访问签署证书对用户访问请求进行签署,并且还包括:
从远程客户端系统接收针对用户访问签署证书的请求;
验证对应的用户是被授权接收用户访问签署证书的给定分组中的成员;以及
如果是,则响应于针对用户访问签署证书的请求而将用户访问签署证书返回到远程客户端系统。
示例16是任何或所有先前示例的计算机实现的方法,其中,针对用户访问签署证书的请求是利用公共/私有密钥对中的密钥加密的,并且还包括:
使用公共/私有密钥对中的密钥来解密针对用户访问签署证书的请求。
示例17是任何或所有先前示例的计算机实现的方法,其中,验证对应的用户是给定分组中的成员包括:
访问用户访问账户和服务器访问账户以识别分组成员关系信息,以确定对应于远程客户端系统的用户是否为给定分组中的成员。
示例18是一种计算系统,包括:
签名验证引擎,其接收已签署的用户访问请求,用户访问请求识别用户、并请求对远程的多租户容量系统中的目标机器上的目标资源进行访问以在目标资源上执行工作流,并且是从远程的多租户管理系统接收的,签名验证引擎将用户访问请求上的第一签名验证为属于多租户管理系统;
用户访问账户的集合;
基于角色的访问控制系统,其访问用户访问账户并验证用户被授权执行工作流;以及
工作流封装生成器,其至少部分地基于签名验证引擎验证第一签名和基于角色的访问控制系统验证用户被授权执行工作流,生成指示计算系统已经授权用户访问目标机器上的目标资源以执行工作流的已批准的工作流封装。
示例19是任何或所有先前示例的计算系统,其中,用户访问请求还被对应于用户的远程客户端系统签署,并且其中,签名验证系统将第二签名验证为属于远程客户端系统,并且还包括:
签署组件,其响应于签名验证引擎验证第一签名和第二签名以及基于角色的访问控制系统验证用户被授权执行工作流,利用服务组件签署证书对工作流进行签署。
示例20是任何或所有先前示例的计算系统,其中,工作流封装生成器将已批准的工作流封装发送到远程的多租户管理系统中的已批准的请求队列。
虽然已经以专用于结构特征和/或方法动作的语言描述了主题,但是可以理解在所附的权利要求中定义的主题不必限于上面描述的特定特征或动作。而是,上面描述的特定特征和动作作为实现权利要求的示例形式公开。