提供对资源的选择性访问的制作方法

文档序号:11291084阅读:195来源:国知局
提供对资源的选择性访问的制造方法与工艺



背景技术:

计算服务和应用越来越多地寻求访问由其它服务和应用所拥有和/或管理的资源。例如,在网站上运行的web应用可能寻求用户的许可以从网站向用户博客发布内容,所述用户博客可能是由分离的实体管理的资源。在获得代表用户进行发布的许可之后,管理用户博客的实体可以允许web应用在用户博客上发布内容。

附图说明

以下详细描述参照附图,其中:

图1是用于提供对资源的选择性访问的示例计算设备的框图。

图2a是用于提供对资源的选择性访问的示例数据流。

图2b是用于提供对资源的选择性访问的示例拓扑。

图3是用于提供对资源的选择性访问的示例方法的流程图。

具体实施方式

资源和服务提供商通常向其它资源和服务提供商委派各种任务。例如,社交媒体网站可以利用数据存储服务来基于社交媒体网站的需要而提供动态存储,并且可以使用广告提供商来向社交媒体网站用户提供广告。这些服务的服务或级联服务可能通常由专注于提供特定服务的第三方来管理。在用户允许客户端服务或应用访问由特定资源提供商所管理的用户资源的情况下,例如在用户许可网站发布到用户的博客的情况下,授予特定资源提供商的级联服务的许可可以以设计成确保级联服务和资源提供商仅被提供有执行其特定任务所需要的许可的方式来控制。

一般而言,对于访问由分离的资源服务器管理的用户资源的客户端服务或应用,用户通过与关联于资源服务器的授权服务器通信来授予客户端访问。授权服务器在从用户并且在一些实现方式中还从客户端接收到认证(诸如用户名和口令、客户端id和/或密码)后,发给客户端允许客户端请求对资源服务器上的用户资源进行访问的令牌,如由用户授权的那样。提供给客户端应用的令牌标识客户端应用并且一般不授予许可。为了与资源服务器交互,客户端应用可以用该令牌交换第二令牌,所述第二令牌指定资源服务器和关于该资源服务器而授予客户端应用的许可范围。授予客户端应用的许可范围可以变化,例如取决于用户确定为客户端应用提供什么访问。例如,用户可以授予在用户的博客上发布内容的web应用许可,但是不授予修改用户简档信息的许可。

对于执行各种动作(例如在用户的博客上发布文章)的资源服务器,资源服务器可能需要与一个或多个级联服务通信。例如,为了确保发布在用户的博客上的内容不侵犯资源提供商的服务条款或其它内容约束,资源提供商可以使用内容验证服务作为级联服务,内容验证服务验证由客户端应用提供的内容,例如内容验证服务可以尝试确保内容不侵犯任何版权或关于被资源服务器视为不当的内容的约束。另一示例级联服务可以用于以例如在用户简档中指定的特定格式呈现该内容。

为了确保级联服务仅被提供有执行其一个或多个任务所需要的许可,资源服务器不为级联服务提供由客户端应用提供的令牌。替代地,资源服务器可以把其令牌随访问级联服务的请求一起提供给授权服务器。授权服务器可以为资源服务器提供专用于级联服务的令牌,并且该令牌可以具有如下许可:该许可具有与由向资源服务器给出的令牌所指定的许可不同的范围。例如,内容呈现服务可能不需要包括在用户的博客上进行发布的许可的令牌,并且可能仅需要从用户的简档读取博客的格式以适当地呈现要由资源服务器发布的内容的许可。

要由与资源服务器相关联的任何服务之间的令牌授予的许可在可由授权服务器访问的客户端应用拓扑中指定。授权服务器可以使用该拓扑来确定发给请求服务的令牌将授予哪些许可。关于授权服务器、客户端和资源提供商进行交互以选择性地委派对资源的访问的方式的进一步细节在随后的段落中提供。

现在参照附图,图1是用于选择性地委派对资源的访问的示例计算设备100的框图。计算设备100可以是例如服务器计算机、个人计算机、移动计算设备或适合于处理数据的任何其它电子设备。在图1的实施例中,计算设备100包括硬件处理器110和机器可读存储介质120。

硬件处理器110可以是一个或多个中央处理单元(cpu)、基于半导体的微处理器和/或适合于检索和执行存储在机器可读存储介质120中的指令的其它硬件设备。硬件处理器110可以取回、解码和执行指令(诸如130-138)以控制用于选择性地委派对资源的访问的过程。作为对检索和执行指令的替换或附加,硬件处理器110可以包括一个或多个电子电路,电子电路包括用于执行一个或多个指令的功能的电子组件。

机器可读存储介质(诸如120)可以是包含或存储可执行指令的任何电子、磁性、光学或其它物理存储设备。因此,机器可读存储介质120可以是例如,随机存取存储器(ram)、电可擦除可编程只读存储器(eeprom)、存储设备、光盘等。在一些实现方式中,存储介质120可以是非暂时性存储介质,其中术语“非暂时性”不涵盖暂时性传播信号。如以下详细描述的,机器可读存储介质120可以编码有一系列可执行指令:130-138,以用于选择性地委派对资源的访问。

如图1中所示,计算设备100执行指令以从客户端应用140接收访问第一资源服务器150的客户端请求142(130)。客户端请求142包括将客户端应用140指定为受众(例如预期接收方)的访问令牌。在一些实现方式中,访问令牌可能先前已经由计算设备100提供给客户端应用140。例如,访问令牌可能已经作为授权过程的结果而提供给客户端应用140,在所述授权过程中用户授权客户端应用140代表用户访问受保护的资源。在一些实现方式中,访问令牌不单独授予访问资源的许可,例如必须把它与客户端应用140交换以访问特定受保护的资源。

计算设备100执行指令以响应于接收到客户端请求142而标识用于由客户端应用140访问第一资源服务器150的第一许可集合(132)。第一许可集合可以由客户端应用140的拓扑来指定。该拓扑可以例如指定:第一资源服务器150和用于由客户端应用140访问第一资源服务器150的第一许可集合;以及第二资源服务器与用于由第一资源服务器150访问第二资源服务器的第二许可集合。

作为示例,客户端应用140可以是在用户的移动设备上运行的新闻馈送应用,并且第一资源服务器150可以是由用户管理的博客的主机。在该示例中,用于新闻馈送应用的拓扑指定博客主机和代表用户授予新闻馈送应用的第一许可集合。例如,用户可能之前已经授权新闻馈送应用向用户的博客发布新闻报道,例如当用户与呈现在新闻馈送应用内的新闻文章交互时。在该示例中,用于新闻馈送应用的拓扑还指定级联服务(诸如用于格式化发布到用户的博客的新闻文章的呈现服务)以及使博客主机与级联服务交互的许可集合。呈现服务可以具有访问用户简档信息(诸如用户的博客布局)的许可以执行呈现服务,但是可能不具有向用户的博客发布任何事情的许可。由于呈现服务可能由第三方管理(在博客主机的控制之外),所以限制授予级联服务的许可可以防止对用户的受保护资源的未经授权和/或非所预期的访问。

在一些实现方式中,计算设备100可以从客户端应用140接收拓扑。例如,客户端应用140的开发者可以基于从第一资源服务器150及其相关联的资源服务器和服务(级联的或其它方式的)获得的数据而生成拓扑。

在一些实现方式中,计算设备100可以使用从客户端应用140和/或第一资源服务器150接收的子拓扑来生成用于客户端应用140的拓扑。例如,替代依赖客户端应用140的开发者来知晓第一资源服务器的拓扑,包括所有相关联的资源服务器和许可,客户端应用140的开发者可以提供指定与如下直接交互相关联的许可的子拓扑:该直接交互是客户端应用140与关联于第一资源服务器150的资源的直接交互,所述第一资源服务器150在该示例中是唯一的第一资源服务器150。第一资源服务器150可以提供指定与如下直接交互相关联的许可的子拓扑,该直接交互在一些实现方式中是第一资源服务器150与关联于第一资源服务器150的任何级联资源服务器和服务的直接交互。通过使用由客户端应用140和第一资源服务器150提供的子拓扑,计算设备100可以生成完整拓扑,所述完整拓扑指定客户端应用140、第一资源服务器150和与第一资源服务器150相关联的资源服务器和服务之间的交互的许可。

计算设备100执行指令以便为客户端应用140提供第一访问令牌144(134)。第一访问令牌144指定第一许可集合以及作为受众的第一资源服务器150。例如,如由示例拓扑指定的,新闻馈送应用可以被提供有将博客主机指定为受众的访问令牌和第一许可集合中的向用户的博客进行发布的许可。

在图1中所描绘的示例环境中,将客户端应用140描绘为使用第一访问令牌144与第一资源服务器150通信。通信可以包括例如:包括新闻馈送应用的新闻文章或到文章的链接的通信;在用户的博客上发布新闻文章的请求;和指示新闻馈送应用已经被授权向用户的博客进行发布的令牌。

计算设备100执行指令以从第一资源服务器150接收访问第二资源服务器的第一资源请求152(136)。例如,当接收到第一访问令牌144和指示新闻馈送应用具有新闻文章和在用户的博客上发布该新闻文章的授权的数据后,博客主机可能需要与呈现服务进行通信以便以满足博客主机和/或用户的博客布局的设计标准的方式格式化新闻文章。第一访问令牌144不将第二资源服务器(例如呈现服务)指定为受众,并且可能不包括必要的许可,例如访问用户的博客布局的许可;相应地,在该示例中,第一资源服务器150发送第一资源请求152以得到用于与第二资源服务器进行通信并且利用第二资源服务器的适当令牌。

计算设备100执行指令以响应于接收到第一资源请求152而为第一资源服务器150提供第二访问令牌154(138)。第二访问令牌154指定第二许可集合和作为第二受众的第二资源服务器。与第一访问令牌144一样,第二访问令牌154可以基于客户端应用拓扑而被提供给第一资源服务器150。通过使用以上提供的示例,第二访问令牌154可以将呈现服务指定为受众并且许可可以包括对用户的博客布局的访问。

如以上所讨论的,由任何给定令牌提供的许可可以变化。资源服务器(级联的或其它方式的)可以具有在用于给定客户端应用的拓扑中指定的许可的任何组合。虽然参照图1描述的示例包括单个资源服务器和单个级联服务,但是许多其它的资源服务器(其可以包括级联服务)可以被包括在拓扑中。此外,各种配置可用于资源服务器(级联的或其它方式的)之间的通信,例如级联服务器也可以使用级联服务,并且服务之间的许可可以是单向的——其中由第一服务授予第二服务的许可不同于由第二服务授予第一服务的许可。

每一个客户端应用可以与多个拓扑(例如客户端应用可以代表用户访问的每一个不同的受保护资源有一个拓扑)相关联。例如,新闻馈送应用可以具有:访问第二博客主机上的用户的第二博客的授权;对用户的电子邮件联系人的授权,以向用户的联系人之一发送新闻文章;和/或对用户的广告内容简档的授权,以基于用户感兴趣的文章向用户的简档添加感兴趣话题。此外,每一个资源服务器(级联的或其它方式的)可以属于多个拓扑。例如,第三方呈现服务可以由多个资源服务器使用,并且属于与相同客户端应用相关联的多个拓扑。作为另一示例,被授权访问资源服务器的每一个客户端应用可以具有用于与资源服务器的交互的拓扑,并且该拓扑可以与用于相同资源服务器的其它客户端应用的拓扑分离。

图2a是用于提供对资源的选择性访问的示例数据流200,而图2b是用于提供对资源的选择性访问的示例拓扑。数据流200描绘了授权服务器230,授权服务器230可以由诸如以上关于图1描述的计算设备100之类的计算设备来实现。用户设备210、客户端应用220、第一资源服务器240和第二资源服务器250可以由适合于处理数据的任何计算(诸如个人计算机、移动计算机或服务器计算机)设备实现。例如,用户设备210可以是用户的个人计算机,客户端应用220可以是实现在web服务器上的web应用,授权服务器230、第一资源服务器240和第二资源服务器250可以实现在一个或多个服务器设备、虚拟机等上。

示例数据流200描绘了可以发生在例如使用示例拓扑280的所描绘的设备之间的示例信息交换。一般而言,并且如以上所描述的,拓扑280可以由客户端应用220的开发者单独地或与管理第一资源服务器240的实体组合地生成。例如,在一些实现方式中,客户端拓扑可以基于从管理第一资源服务器240的实体接收的许可数据来生成,其中许可数据针对与第一资源服务器相关联的资源服务器(例如第二资源服务器250、第三资源服务器260和第四资源服务器270)中的每一个来指定其它资源服务器中的至少一个,并且针对其它资源服务器中的每一个来指定授予所述其它资源服务器的许可。拓扑一般可由授权服务器230访问,授权服务器230可以使用该拓扑以分发用于访问受保护的资源的令牌。

在示例数据流200中,用户设备210的用户可能希望向客户端应用220授予对用户的受保护的资源(例如与第一资源服务器240相关联)的访问。作为示例,第一资源服务器240可以提供用户设备210的用户订阅的数字照片管理服务。用户的照片(例如受保护的资源)可以由第一资源服务器240结合例如提供存储、用户简档管理和打印服务的其它资源服务器来管理。对照片的访问可以例如通过用户名和口令来保护。客户端应用220(作为示例其可以是在web服务器上运行的图像标记web应用)可以向用户设备210给出重定向数据212,重定向数据212将用户设备210的web浏览器重定向到授权服务器230。

用户设备210向授权服务器230发送用户请求214,所述用户请求214请求向客户端应用220给出对由第一资源服务器240管理的用户图像的访问。在以上给出的示例中,授权服务器230可以要求用户通过提供用户名和口令来进行认证,并且一经认证,就为用户设备210提供访问码216。用户设备210向客户端应用220提供访问码216,所述客户端应用220向授权服务器提供该访问码216并且在一些实现方式中提供客户端认证凭证以交换访问令牌218。访问令牌218由授权服务器230提供以允许客户端应用访问与第一资源服务器240相关联的资源。在一些实现方式中,访问令牌218不单独授予对任何个体资源或资源服务器的访问。

客户端应用220为授权服务器230提供访问令牌218连同访问第一资源服务器240的请求。授权服务器230在接收到该请求和访问令牌218后可以在客户端应用拓扑280中标识第一令牌222,所述第一令牌222被定义用于访问第一资源服务器240。在示例拓扑280中,第一令牌222由字符串“tid_01:{p3,p4}”来表示。该示例字符串指示拓扑“tid”,受众“01”(其指示第一资源服务器240),以及具有两个许可p3和p4的集合。可以呈现令牌的方式可以变化,并且令牌一般指定令牌的受众、指示在受众处可以访问什么的许可,以及——在一些实现方式中——令牌所属于的拓扑。通过使用图像标记应用示例,提供给图像标记应用的第一令牌222可以指定受众,受众可以是第一资源服务器240,并且许可的集合可以指定图像标记应用可以访问一般图像和图像属性。

客户端应用220为去往第一资源服务器240的第一令牌提供针对特定资源的请求,所述特定资源例如是图像标记应用寻求标记的图像。在示例数据流200中,第一资源服务器240依赖于第二资源服务器250来帮助履行资源请求。例如,为了标记图像,图像标记应用可能需要访问实际的图像文件,和/或可能需要在由第二资源服务器250管理的存储设备上存储图像文件的许可。

为了利用用于访问所请求的资源的适当许可与第二资源服务器250通信,第一资源服务器向授权服务器230提供第一令牌222以交换第二令牌224。如在示例拓扑280中所示,第二令牌224由字符串“tid_02:{p5}”来表示,该字符串指示第一资源服务器240被授权利用许可p5来访问“tid”的“02”。在图像标记示例中,所述许可可以是用于例如检索和存储图像的文件许可。

在示例数据流200中,当接收到经授权的请求(例如由于第二令牌224而被授权)后,第二资源服务器250向第一资源服务器240提供表示所请求的资源的数据226,第一资源服务器240然后可以向客户端应用220提供数据226。在图像标记应用示例中,数据226可以是要由客户端应用分析和标记的图像文件,或者可以是由第二资源服务器250存储的图像文件已经改变的确认。

图2b中所描绘的示例拓扑280还指示用于授予客户端应用220对第三资源服务器260的访问的第三令牌232、用于授予第一资源服务器240对第三资源服务器260的访问的第四令牌234,以及用于授予第一资源240对第四资源服务器270的访问的第五令牌236。拓扑280还使用箭头来指示令牌提供访问所沿的(一个或多个)方向。从一个资源服务器向另一个资源服务器授予的访问可以不与在相反方向上授予的访问相同——如果授予相反方向上的任何访问的话。例如,第一资源服务器240可以利用许可p2访问第三资源服务器,但是在拓扑中不存在用于为第三资源服务器260提供对第一资源服务器的访问的令牌。许多其它拓扑变型可以用于选择性地提供对各种相关和级联的资源服务器的访问。

图3是用于提供对资源的选择性访问的示例方法300的流程图。方法300可以由诸如图1中描述的计算设备之类的计算设备执行。其它计算设备也可以用于执行方法300,诸如用于实现资源服务器的计算设备。方法300可以以存储在机器可读存储介质(诸如存储介质120)上的可执行指令的形式和/或以电子电路的形式实现。

从客户端设备接收针对用户数据的客户端请求以及指定第一受众和第一许可集合的第一令牌(302)。客户端设备可以是例如实现客户端应用的设备,用户已向所述客户端应用委派访问,例如对由第一服务器管理的用户的受保护资源的访问。第一令牌和客户端请求可以由管理用户的受保护资源的第一服务器接收。

向授权服务器提供令牌请求,所述令牌请求包括i)第一令牌,以及ii)访问资源服务器的请求(304)。例如,管理用户的受保护资源的第一服务器可能需要对级联资源服务器(例如第一服务器已经向其委派某种功能的资源服务器)进行访问。为了访问级联资源服务器,第一服务器用第一令牌交换提供对级联资源服务器的访问的令牌。

从授权服务器接收资源服务器令牌,资源服务器令牌指定第二受众和第二许可集合,第二受众是资源服务器(306)。例如,资源服务器令牌可以将级联资源服务器指定为受众,以及指定用于访问级联资源并且履行针对用户数据的客户端请求的许可集合。在一些实现方式中,由资源服务器令牌指定的许可集合不同于由第一令牌指定的第一许可集合。例如,级联资源服务器可以要求与第一服务器所要求的许可不同的许可来执行其服务。

向资源服务器提供i)针对用户数据的资源请求,以及ii)资源服务器令牌(308)。例如,针对用户数据的资源请求可以类似于针对用户数据的客户端请求,从授权服务器接收到的资源服务器令牌指定请求服务器(例如第一服务器)具有请求用户数据的许可并且指定资源服务器令牌的预期受众是资源服务器。

从资源服务器接收用户数据(310)。例如,通过使用资源服务器令牌和资源请求,资源服务器能够为第一服务器提供所请求的用户数据。

将用户数据提供给客户端设备(312)。例如,第一服务器在接收到所请求的数据后可以向所述客户端请求所源自的客户端设备提供该数据。

前述公开内容描述了用于提供对资源的选择性访问的数个示例实现方式。如以上详述的,各示例提供一种机制,该机制使用客户端应用和资源服务器拓扑以利用各种许可选择性地提供对各种资源服务器的访问,并且提供了能够提供对资源的选择性访问的系统的潜在应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1