[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN105659558B - 计算机实现的方法、授权服务器以及计算机可读存储器 - Google Patents

计算机实现的方法、授权服务器以及计算机可读存储器 Download PDF

Info

Publication number
CN105659558B
CN105659558B CN201480057803.9A CN201480057803A CN105659558B CN 105659558 B CN105659558 B CN 105659558B CN 201480057803 A CN201480057803 A CN 201480057803A CN 105659558 B CN105659558 B CN 105659558B
Authority
CN
China
Prior art keywords
service
resource server
resource
server
client application
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.)
Active
Application number
CN201480057803.9A
Other languages
English (en)
Other versions
CN105659558A (zh
Inventor
U·丝瑞尼瓦萨
A·桑德海
朱景汶
V·S·埃瓦尼
B·基姆
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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
Priority claimed from US14/266,515 external-priority patent/US9544294B2/en
Application filed by Oracle International Corp filed Critical Oracle International Corp
Priority claimed from PCT/US2014/056466 external-priority patent/WO2015042349A1/en
Publication of CN105659558A publication Critical patent/CN105659558A/zh
Application granted granted Critical
Publication of CN105659558B publication Critical patent/CN105659558B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/068Authentication using credential vaults, e.g. password manager applications or one time password [OTP] applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Storage Device Security (AREA)

Abstract

一种基于发出请求的客户端的简档生成访问令牌的OAuth授权服务器。当从在身份域中执行的客户端接收请求时,OAuth授权服务器选择服务简档,并且基于服务简档确定客户端应用是否被允许访问资源服务器。如果允许访问,则OAuth授权服务器基于从资源服务器获得的范围信息生成令牌。

Description

计算机实现的方法、授权服务器以及计算机可读存储器
优先权声明
本申请援引35U.S.C.§119(e)要求于2013年9月20日提交、序列号为61/880,335且标题为“MULTIPLE RESOURCE SERVERS WITH SINGLE,FLEXIBLE,PLUGGABLE OAUTH SERVERAND OAUTH-PROTECTED RESTFUL OAUTH CONSENT MANAGEMENT SERVICE,AND MOBILEAPPLICATION SINGLE SIGN ON OAUTH SERVICE”的美国临时专利申请的优先权,该申请的全部内容通过引用被结合于此。
对相关申请的交叉引用
本申请涉及于2011年9月29日提交、序列号为61/541,026且标题为“RELYINGPARTY AND OAUTH FRAMEWORK”的美国临时专利申请,该申请的全部内容通过引用被结合于此。本申请涉及于2012年9月28日提交、序列号为13/631,538且标题为“OAUTH FRAMEWORK”的美国专利申请,该申请的全部内容通过引用被结合于此。
背景技术
身份管理系统是一种信息系统,或者是可以用于企业或跨网络身份管理的一组技术。身份管理描述了系统和企业边界中或者跨系统和企业边界的个人身份、其认证、授权、角色和特权的管理,其目的在于在降低成本、停机时间和重复任务的同时提高安全性和生产力。身份管理的一方面是“单点登录”(SSO)。在身份管理领域中特别有 用的一个标准是OAuth。
SSO是多个相关但独立的软件系统的访问控制的一个特性。利用这个特性,用户登录一次并且获得对所有系统的访问,而不会在每个系统处都被提示再次登陆。反过来,单点登出是使得单个登出动作终止对多个软件系统的访问的特性。由于不同的应用和资源支持不同的认证机制,因此,单点登录在内部被转换成并存储与用于初始认证的凭证比较而言不同的凭证。SSO减少了网络钓鱼成功,因为用户没有被培训成在每个地方都不假思索地输入密码。SSO减小了来自不同用户名和密码组合的密码疲劳。SSO减少了花在为同一个身份重复输入密码上的时间。由于关于密码的信息技术(IT)服务台电话的数量更少,SSO减小了IT成本。SSO对系统的进入/退出/访问的所有层次提供了安全性,而没有重新提示用户的不便。SSO还允许对合规性的集中式报告。SSO使用所有其它应用和系统都用于认证目的的集中式认证服务器,并且把这与确保用户不必活跃地输入其凭证多于一次的技术相结合。
OAuth是用于授权的一种开放式标准。授权的间接效果是认证。在不必散发用户的凭证的情况下,OAuth允许用户把存储在一个站点上的他们的私有资源(例如,照片、视频、联系人列表等)与另一个站点共享,作为替代,通常是提供用户名和密码令牌。每个令牌准许对一个具体站点的具体资源访问既定的持续时间。这允许用户准许第三方站点访问他们利用另一个服务提供者存储的信息,而不共享他们的访问许可或者他们的全部数据。例如,令牌可以准许在接下来的两小时中访问视频编辑站点中来自一个具体相册的视频。
例如,在一个典型的场景下,LinkedIn的用户可能被请求用于把用户的联系人从Yahoo导入到LinkedIn中的许可。LinkedIn可能想获得这些联系人,以便发送例如邀请用户的每个联系人加入LinkedIn的电子邮件消息。在OAuth之前,这种对许可的请求可能涉及用户向LinkedIn提供用户的Yahoo用户身份和密码的请求。这个信息被请求,使得LinkedIn可以作为这个用户登录到该用户的 Yahoo账户中,然后从这个用户的Yahoo账户获得这个用户的联系人。一般来说,允许LinkedIn(或者任何站点)具有用户的Yahoo(或任何其它站点)身份和密码是个坏主意,因为它准许前者站点不受限制地访问后者站点上用户的账户。这种不受限制的访问几乎总是比前者站点实现其目的(诸如仅仅是获得联系人列表)实际所需多得多的访问。
一个更好的构思是为前者站点提供相对于后者站点上用户帐户的有限的授权。有限的授权可以指定前者站点相对于后者站点上用户的帐户可以执行的具体操作集合。例如,参考以上的典型场景,有限的授权可以指定LinkedIn只能访问用户的联系人列表,而不执行关于用户在Yahoo上的账户的其它操作。OAuth允许这种有限的授权。OAuth提供了授权的委托。
OAuth用来委托授权的技术可以相对于类比来理解。当车主暂时把对他的车的控制转让给服务员使得该服务员可以为车主停车时,车主常常不向服务员提供通用的主钥匙,而是替代地向服务员提供更有限用途的服务员钥匙。服务员钥匙允许服务员具有驾驶车的足够访问,但不向服务员提供对车主在车中所拥有的每件事物的访问。以相同的方式,OAuth的使用可以准许第一站点访问由第二站点存储的用户的联系人列表,而不允许第一站点相对于用户在第二站点上的账户执行其它操作–诸如读取可能存储在第二站点上的电子邮件消息。OAuth允许给予第一站点有限的授权来相对于第二站点执行指定的操作集合,而且不执行其它操作。
对于另一个例子,用户可能想使用由第一站点(诸如Snapfish)提供的照片打印服务来打印电子存储在独立于第一站点的第二站点(诸如Flickr)上的某些彩色照片。更具体而言,用户可能只想打印存储在Flickr上特定相册(诸如包含用户最近参观阿拉斯加的照片的相册)当中的照片。虽然用户可能具有存储在其Flickr账户上的多个不同相册,但是用户可能只想打印来自阿拉斯加相册的照片。在这种情形下,用户有可能更想让Snapfish不访问除阿拉斯加相册中 所包含的这些照片之外其任何Flickr相册的内容。在前面的场景下,利用OAuth术语,Snapfish被认为是客户端,而Flickr被认为是资源服务器(照片数据是资源)以及OAuth授权服务器。作为由资源服务器存储的资源(例如,照片数据)的所有者,用户也是资源所有者。
给定以上给出的例子,用户可以首先使用他的互联网浏览器应用指示客户端(例如,Snapfish)打印资源服务器(例如,Flickr)上用户的阿拉斯加相册中的照片。作为响应,客户端(例如,Snapfish)把用户重定向到资源服务器(例如,Flickr)的站点。这种重定向操作可以向资源服务器指示客户端期望访问的有限数据集(例如,阿拉斯加相册的内容)。在这个时候,资源服务器不知道用户是谁,因为用户还没有向资源服务器认证他自己。因此,资源服务器要求用户进行认证。如以上所提到的,授权的间接效果是认证。在用户向资源服务器认证他自己之后(例如,通过提供与资源服务器相关的用户名和密码),资源服务器向用户的互联网浏览器发送同意页面。该同意页面请用户验证资源服务器(例如,Flickr)具有向客户端(例如,Snapfish)提供有限的、指定的数据集合(例如,阿拉斯加相册的内容)的用户许可。假设用户同意,则资源服务器通过响应向客户端发送授权码。这个授权码可以通过“前方通道”(或者换句话说,利用重定向经用户的互联网浏览器)发送。
为了以下讨论的目的,资源服务器还充当OAuth授权服务器的角色,但是被称为资源服务器。在这种场景下,客户端(例如,Snapfish)是资源服务器(例如,Flickr)值得信任的合作者。客户端接收授权码或“准许”,并且存储该授权码。客户端无限期地维护这个授权码,直到用户主动撤销该授权码。用户可以登录到OAuth授权服务器,以便看OAuth授权服务器已经代表用户向各个客户端提供的准许列表。响应于接收到授权码,客户端(例如,Snapfish)向资源服务器(例如,Flickr)作出“后方通道”调用。后方通道调用是不涉及用户的互联网浏览器的一种通信。后方通道调用从资源服 务器请求访问令牌。访问令牌指定客户端被允许在资源服务器上对用户的帐户访问的范围。例如,访问令牌可以指示客户端被允许只访问用户的阿拉斯加相册的内容。资源服务器把所请求的访问令牌经后方通道发送回客户端。客户端存储该访问令牌。其后,在访问令牌到期之前,或者在用户撤销该准许(即,授权码)之前,用户可以向资源服务器呈现该访问令牌,以便访问资源服务器上由该访问令牌指定的资源。如果用户已经撤销关于该访问令牌的准许,则即使该访问令牌还没有到期,该访问令牌也变得无效。
除了访问令牌,资源服务器还可以向客户端提供“刷新令牌”。虽然访问令牌常常具有指定的寿命,在指定的寿命之后它将过期,但刷新令牌是长期令牌。客户端可以将刷新令牌与相关的访问令牌一起存储。其后,如果资源服务器提出反对,说客户端的当前访问令牌已经过期,则客户端可以向资源服务器呈现刷新令牌,以便从资源服务器获得新的访问令牌。
有利地,OAuth采用的方法避免了向客户端公开资源服务器上用户帐户的用户密码。这种凭证公开的避免防止了客户端相对于用户在资源服务器上的账户执行未授权的动作。用户提供其密码的唯一时间是在从客户端站点重定向之后用户与资源服务器的直接初始认证期间。
发明内容
本发明的实施例涉及身份管理、认证和授权框架。在一个实施例中,提供了用于在企业身份和访问管理(IAM)基础设施中集成互联网身份的框架。根据另一个实施例,提供了用于开放式授权的框架。
传统上,资源服务器和OAuth授权服务器曾经是同一个实体。根据本发明的一个实施例,提供了把资源服务器从OAuth授权服务器的责任中释放出来的通用框架。这些责任可以包括范围管理、授权令牌的发布、刷新令牌的发布以及访问令牌的发布。因而,通用OAuth授权服务器可以根据这种通用框架来实现。因此,每个个体 资源服务器不需要实现它自己专属的OAuth授权服务器。实际上,根据本发明的一个实施例,多个不同的资源服务器可以全部都同时使用同一个通用OAuth授权服务器的功能。例如,在本发明的一个实施例中,单个OAuth授权服务器可以同时为几个不同的资源服务器全都管理范围。在资源服务器和OAuth授权服务器之间可以存在多对一的关系。
在本发明的一个实施例中,为了实现与多个不同资源服务器交互的能力,通用OAuth授权服务器维护指示哪些令牌属于哪些资源服务器、每个资源服务器值得信任的合作者是谁等等的映射数据。此外,在本发明的一个实施例中,通用OAuth框架是以这样一种方式构造的,使得资源服务器管理员可以容易地定制该框架,以适应用于他的资源服务器的特定用例。不同的资源服务器管理员可以把他们的特定部件“插入”通用OAuth框架中。因而,在本发明的一个实施例中,每个资源服务器通知通用OAuth授权服务器关于该资源服务器可能使用的潜在范围(即,相对于资源的有限操作)。
根据本发明的一个实施例,提供了OAuth授权服务器。该OAuth授权服务器包括:第一接收器,被配置为在OAuth授权服务器处从在多个隔离的身份域当中的第一身份域的上下文中执行的第一客户端应用接收请求;第一选择单元,被配置为从OAuth授权服务器维护的多个OAuth服务简档中选择只适用于第一身份域的第一OAuth服务简档;第一确定单元,被配置为基于第一OAuth服务简档确定第一客户端应用是否被允许访问第一资源服务器;第一生成单元,被配置为响应于确定第一客户端应用被允许访问第一资源服务器而基于OAuth授权服务器从第一资源服务器获得的范围信息生成用于第一客户端应用的第一令牌;第二接收器,被配置为在OAuth授权服务器处从在所述多个隔离的身份域当中的第二身份域的上下文中执行的第二客户端应用接收请求,该第二身份域与第一身份域分开;第二选择单元,被配置为从OAuth授权服务器维护的所述多个OAuth服务简档中选择仅适于第二身份域的第二OAuth服务简档; 第二确定单元,被配置为基于第二OAuth服务简档确定第二客户端应用是否被允许访问第二资源服务器;以及第二生成单元,被配置为响应于确定第二客户端应用被允许访问第二资源服务器而基于OAuth授权服务器从第二资源服务器获得的范围信息生成用于第二客户端应用的第二令牌。
在参考以下说明书、权利要求和附图之后,以上所述连同其它特征和实施例将变得更加清楚。
附图说明
图1是根据本发明的一个实施例的说明OAuth系统架构及其逻辑部件的框图;
图2是根据本发明的一个实施例的说明资源服务器环境的框图;
图3是根据本发明的一个实施例的说明OAuth客户端环境的框图;
图4是根据本发明的一个实施例的示出基于多身份域云的计算环境中的OAuth授权服务器可以用来为在分开的隔离的身份域的上下文中执行的不同应用生成授权令牌的技术的例子的流程图。
图5是根据本发明的一个实施例的示出与来自分开的企业的具有不同身份域的客户端进行交互以便相对于云提供的服务授权这些客户端的云范围OAuth授权服务器的例子的框图。
图6是根据本发明的一个实施例的示出利用特定于用户的属性扩充令牌的技术的例子的流程图。
图7是根据本发明的一个实施例的示出用于生成可用来从多个资源服务器请求服务的单个令牌的技术的例子的流程图。
图8A-B示出了根据本发明的一个实施例的示出用于将资源服务器维护的授权策略插入OAuth授权服务器的技术的例子的流程图。
图9是根据本发明的一个实施例的示出用于将认证请求路由到访问特定于客户端的用户身份储存库的特定于客户端的插件模块的技术的例子的流程图。
图10是根据本发明的一个实施例的示出用于生成具有特定于身份域的令牌属性的令牌的技术的例子的流程图。
图11是根据本发明的一个实施例的示出用于生成令牌的技术的例子的流程图,其中令牌包含具有被资源服务器重写的值的令牌属性。
图12是根据本发明的一个实施例的示出一种技术的例子的流程图,通过该技术,共享的OAuth授权服务器对用于云计算环境中不同身份域的不同注册的自适应接入管理器进行调用。
图13是根据本发明的一个实施例的示出一种技术的例子的流程图,由此OAuth授权服务器提供用于同意管理的具象状态传输(REST)接口。
图14是根据本发明的一个实施例的示出一种技术的例子的流程图,由此服务器为在与该服务器分开的移动设备上执行的多个相关的应用维护活动用户会话。
图15是根据本发明的一个实施例的示出用于通过带外通道安全地向移动设备发送客户端注册令牌使得移动设备随后可以使用这个客户端注册令牌实现单点登录功能的技术的例子的流程图。
图16绘出了用于实现其中一个实施例的分布式系统的简化图。
图17是根据本公开内容的一个实施例的系统环境的部件的简化框图,通过该系统环境,由实施例系统的部件提供的服务可以作为云服务被提供。
图18示出了本发明的各种实施例可以在其中实现的计算机系统的例子。
图19示出了根据本发明的一些实施例的OAuth授权服务器的例子的功能框图。
具体实施方式
在以下描述中,为了解释,阐述了具体的细节,以便提供对本发明实施例的透彻理解。但是,将认识到,没有这些具体细节也可以实践本发明。于2011年9月29日提交、序列号为61/541,026且标题为 “RELYING PARTY AND OAUTH FRAMEWORK”的美国临时专利申请通过引用被结合于此。
通用OAUTH系统架构
图1是根据本发明的一个实施例的说明OAuth系统架构100及其逻辑部件的框图。架构100包括资源所有者(或用户)102、客户端应用104、资源注册表106以及资源生态系统110。资源生态系统包括客户端注册表112、令牌-范围注册表114、范围注册表116、用户同意120和资源服务器122。虽然示出了一个资源服务器122,但是本发明的实施例可以包括多个分开的资源服务器。如从图1中的连接看到的,客户端应用104和资源注册表106交互。资源所有者102和资源注册表106并和客户端注册表112交互。授权服务器118和客户端注册表112、令牌-范围注册表114及用户同意120交互。资源服务器122和令牌-范围注册表114交互。用户同意120和范围注册表116交互。在以下进一步讨论这些部件及其功能。
本发明的实施例可以涉及授权的委托。不同的资源用例有时候需要不同的范围定义。不同的资源有时候会依赖不同的授权模型和解决方案。会需要不同的具体用户动作来给予客户端应用访问由不同资源服务器维护的资源的同意。优选地,每个不同的资源提供者应当不需要提供单独的专属OAuth授权服务器来和这个资源提供者的细节集成。每个资源提供者提供单独的专属OAuth授权服务器的不幸结果将是企业希望和多个不同的资源提供者集成并且多个不同的客户端形式因子将不得不处理无数不同的OAuth授权服务器接口。
因此,在本发明的一个实施例中,提供了通用OAuth框架架构。该框架可以包括OAuth线路协议部件(客户端和服务器),包括元数据和运行时注册表。该框架可以包括可插拔“约定”的基础设施,以定制并部署特定于应用的解决方案。
在本发明的一个实施例中,资源服务器122在令牌-范围注册表114中存储资源服务器122识别的范围的指示。每个这种范围可以指 示相对于资源服务器122上存储的不同资源集合可以执行的不同操作集合。因为某些实施例可以包括多个不同的或单独的资源服务器,所以令牌-范围注册表114可以存储不同资源服务器和不同范围之间的映射。此外,在本发明的一个实施例中,每个范围映射到令牌-范围注册表114中一个单独的令牌。因而,通过参考令牌-范围注册表114,资源服务器122可以确定映射到由客户端应用104向资源服务器122呈现的特定令牌的操作集合以及资源集合。资源服务器122可以把客户端应用104执行的对于由资源服务器122维护的资源的操作限定到由映射到该特定令牌的操作集合具体指示的这些操作。
因而,在本发明的一个实施例中,多个资源服务器的组中每个特定的资源服务器向OAuth框架提供不同的元数据集合,元数据集合指示可以映射到可用于访问特定资源服务器上资源的令牌的范围。因此,范围是可以由资源服务器的管理员定制的,从而使OAuth框架灵活并且适用于许多不同的用例。因此,许多不同类型的资源服务器全都可以使用相同的通用OAuth框架,而无需为每种不同类型的资源服务器创建特定的OAuth框架。
在实施例中,图1中所示的通用OAuth框架提供了基本的概念结构。OAuth框架可以叠加在现有的身份管理产品之上。在OAuth框架中,约定可以定义与这些现有产品的集成点。OAuth框架与约定实现的结合可以满足各种各样的用例和部署选项。根据一个实施例,OAuth框架包括两个广义的“角色”:消费者/客户端角色,以及授权服务器/资源服务器角色。授权服务器/资源服务器角色在以下参考图2讨论,而消费者/客户端角色在以下参考图3讨论。
图2是根据本发明的一个实施例的说明资源服务器环境200的框图。在本发明的一个实施例中,环境200包括资源所有者(或用户)202、客户端应用204、资源服务器210、OAuth授权服务器220、策略服务240以及令牌服务250。资源服务器210包括资源服务器应用212,资源服务器应用212包括访问令牌确认API 214和门(gate)216。OAuth授权服务器220包括令牌-范围注册表222、资源&范围 注册表224、用户同意编排(orchestration)226、OPSS-TS(Oracle平台安全性服务-TS)228、OPSS-AZ(Oracle平台安全性服务-AZ)230、OAuth核心引擎232、OAuth协议引擎234以及客户端注册表236。在一个实施例中,资源所有者202通过门216和客户端应用204交互,其中门216对访问令牌确认API 214进行访问。客户端应用204还和OAuth授权服务器220交互。访问令牌确认API 214和令牌-范围注册表222并和策略服务240交互。OPSS-TS和令牌服务250交互。OPSS-AZ和策略服务250交互。部件228-234集合起来和令牌-范围注册表222并和用户同意编排226交互。用户同意编排226和资源&范围注册表224交互。
在本发明的一个实施例中,资源&范围注册表224存储与经OAuth授权服务器220暴露的资源和服务相关的资源信息、范围和各种各样的元数据。在本发明的一个实施例中,客户端注册表236存储用于被授权的远程客户端(例如,客户端应用204)的信任密钥和秘密。在一个实施例中,令牌-范围注册表222存储基于用户(例如,资源所有者202)同意而发布给客户端(例如,客户端应用204)的访问令牌和刷新令牌。在一个实施例中,令牌-范围注册表222存储与所发布的访问令牌相关联的AuthZ范围信息。
在本发明的一个实施例中,资源服务器210向OAuth授权服务器220注册其自己的元数据。不同的资源服务器可以向同一个OAuth授权服务器注册不同的元数据。作为注册过程的一部分,这种元数据被导入OAuth授权服务器220。元数据指示由资源服务器210识别或者暴露的各种不同范围。每个范围指定由资源服务器210维护的资源的不同子集。在本发明的一个实施例中,在注册时,在资源&范围注册表224中,由资源服务器210识别的每个范围(只)映射到资源服务器210。因而,在本发明的一个实施例中,对于每个注册的范围,资源&范围注册表指示在这个范围内可访问的相应资源服务器的资源集合。范围可以指示例如只有特定的照片可以被访问,或者特定的照片文件夹可以被访问,或者特定的文件夹集合可以被访问。 范围可以指示相对于指定的资源被允许的操作,诸如读取、更新、删除、创建,等等。
在本发明的一个实施例中,OAuth授权服务器220向客户端应用204发布访问令牌。在一个实施例中,对于每个这种访问令牌,OAuth授权服务器220在令牌-范围注册表222中存储该访问令牌和指定给该访问令牌的特定范围(选自资源&范围注册表224中所存储的范围)之间的映射。用于同一资源服务器的不同访问令牌可以具有指定给它们的不同范围。因而,当客户端应用204向OAuth授权服务器220呈现访问令牌时,OAuth授权服务器220可以参考令牌-范围注册表222来确定映射到这个访问令牌的范围,然后可以参考资源&范围注册表224来确定在这个范围内可访问的资源。
在本发明的一个实施例中,为了让OAuth授权服务器220向客户端应用204授予访问令牌,需要来自资源所有者202的用户同意。例如,如果客户端应用204请求对来自资源服务器210的特定资源(或者包括这个资源的特定范围)的访问,则资源服务器210可以把该请求重定向到OAuth授权服务器220。OAuth授权服务器220可以调用用户同意编排226,以便请求资源所有者202验证客户端应用204应当被准许访问该特定的资源(或特定的范围)。在一个实施例中,用户同意编排226向资源所有者202指示客户端应用204寻求访问的范围,并且向资源所有者202提供同意或拒绝对这个范围的访问的机会。更具体而言,OAuth授权服务器220可以请求资源所有者220验证客户端应用204应当被准许对由包括特定资源的特定范围(如在资源&范围注册表224中所指示的)指定的访问。响应于从资源所有者202接收到同意,OAuth授权服务器220可以生成访问令牌并且在令牌-范围注册表222中存储这个访问令牌和该特定范围之间的映射。OAuth授权服务器220可以向客户端应用204提供该访问令牌。
然后,通过向资源服务器应用212呈现访问令牌,客户端应用204可以尝试访问资源服务器210上的特定资源。资源服务器应用 212上的代理可以截获令牌并且在允许客户端应用204访问特定资源之前利用OAuth授权服务器220确认该令牌(例如,经访问令牌确认API 214)。如果客户端应用204尝试访问的特定资源不在映射到令牌-范围注册表222中的访问令牌的范围内(例如,如果客户端应用204尝试访问在资源所有者202之前同意访问的范围之外的文件夹),则OAuth授权服务器220将不确认该令牌,并且资源服务器210将拒绝准许客户端应用204访问特定的资源。因为,访问的范围是基于资源所有者202对这个范围的具体同意。资源所有者202有机会拒绝向客户端应用204所请求的具体范围给予同意,在这种情况下,OAuth授权服务器220将不为客户端应用204创建访问令牌。在本发明的一个实施例中,每个客户端应用访问由资源服务器210维护的资源的请求还指定在资源&范围注册表224中映射到资源服务器210的范围,并且就是为这个指定的范围请求资源所有者202的同意,如以上所讨论的。
根据本发明的一个实施例,与以上所讨论的一致,在客户端应用204向资源服务器210呈现访问令牌的时候,访问约束的强制执行发生。强制执行需要对由访问令牌编码的范围的理解。访问令牌是由OAuth授权服务器220按照范围定义发布的。按照所发布的令牌编码的范围来确认访问令牌。在本发明的一个实施例中,策略服务240和令牌服务250联合维护所发布的访问令牌的状态并且授权所发布的访问令牌。在本发明的一个实施例中,顾客(即,所有者和/或资源服务器210的运营者)可以提供其自己的策略服务240和令牌服务250。OAuth框架可以提供编程约定或编程接口,通过约定或接口,这些顾客可以把他们自己的策略和令牌服务以匹配这些顾客定义的范围的方式插入到OAuth框架中。每个顾客可以公布它自己的范围集合。所公布的范围集合可以指示顾客的令牌服务将返回的数据的形式。OAuth框架附加地可以向这些顾客提供允许在令牌发布时创建策略的编程约定或编程接口。这些编程约定或编程接口允许顾客把他们自己的定制编程代码插入OAuth框架。利用这些编程接口,顾客可以 把其现有的基础设施连接到OAuth系统中。在一个实施例中,公布其范围集合的顾客负责确保其令牌和/或策略服务返回包括与所公布范围一致的范围信息的令牌。响应于客户端应用204尝试使用令牌,OAuth授权服务器220可以调用将查找顾客的策略并确认这个令牌的应用编程接口(API)。
在一个实施例中,OAuth框架指定顾客的代码(例如,用于令牌服务250和策略服务240的代码)为了与OAuth授权服务器220接口而需要实现的接口。该接口可以公布,使得顾客意识到每个接口期望接收的参数以及每个接口期望返回的值。当客户端应用204对OAuth授权服务器220作出请求时,OAuth授权服务器220对与这个请求相关的API作出响应性调用。这些调用可以涉及对例如生成访问令牌并且把这些访问令牌提供给客户端应用204的顾客编码的部件的调用。在本发明的一个实施例中,OAuth授权服务器220以OPSS-TS 228和OPSS-AZ 230的形式暴露以上提到的编程约定或编程接口。顾客自己对令牌服务250的实现可以与OPSS-TS 228接口,而顾客自己对策略服务240的实现可以与OPSS-AZ 230接口。OAuth授权服务器220可以调用单独的API,来进行访问令牌创建和访问令牌确认。顾客可以实现执行每个任务的定制编程代码。在确认期间,在令牌创建过程中构造的策略可以被访问,以确定客户端应用204寻求对于资源执行的动作是否匹配由客户端应用204呈现的访问令牌编码的策略。
此外,在本发明的一个实施例中,顾客自己对用户同意编排226的实现可以插入到OAuth授权服务器220中,其中用户同意编排226在客户端应用204从OAuth授权服务器220寻求访问令牌时被调用。可以向顾客提供到资源&范围注册表224和令牌-范围注册表222的接口,使得顾客可以设计其对用户同意编排226的实现,以便从部件222和224获得在构造同意请求时使用的数据。
在本发明的一个实施例中,存储在资源&范围注册表224中的映射不仅指示包括在每个范围中的资源子集,并且指示允许由客户端应 用对于这些资源子集执行的排他性操作子集。例如,特定的映射可以指示读取和更新操作(而不是创建或删除操作)可以相对于资源服务器210上维护的资源(例如,文件、文件夹、目录、列表、简档、图像、文档等)的指定子集执行的特定范围。因而,在本发明的一个实施例中,以上所讨论的同意请求不仅指定与范围关联的资源子集,并且指定与这个范围关联的操作子集。因此,资源所有者202精确地知道他同意客户端应用204相对于在同意请求所指定范围内的资源子集执行的操作的种类。
根据本发明的一个实施例,客户端应用204请求等效于资源服务器210已经向OAuth授权服务器220注册的具体范围之一的资源访问。因而,在本发明的一个实施例中,客户端应用204被设计为意识到将为资源服务器210注册的具体范围。因为客户端应用204可以和由各个不同资源服务器维护的资源交互,所以各个资源服务器的供应者可以对它们的资源服务器将向OAuth授权服务器220注册的标准范围集合取得一致,由此减轻设计者对客户端应用204和其它客户端应用的设计任务。
在本发明的一个实施例中,提供了客户端框架,以便允许客户端应用(诸如客户端应用204)实现用于各种不同类型资源提供者的“钩子”。例如,客户端应用204可以为Google、Facebook、Yahoo、LinkedIn等实现单独的钩子。图3是根据本发明一个实施例的说明OAuth客户端环境300的框图。OAuth客户端环境300包括资源所有者302、资源服务器304、OAuth授权服务器306、客户端应用308以及OAuth客户端320。客户端应用308包括OAuth客户端API 310。OAuth客户端320包括OAuth客户端引擎322、资源注册表324、本地应用注册表326以及令牌注册表328。资源服务器304和OAuth授权服务器306彼此交互。资源服务器304和OAuth客户端320彼此交互。OAuth授权服务器306和OAuth客户端320经资源所有者302(例如,通过由资源所有者302的互联网浏览器实现的重定向)彼此交互。资源所有者302还和客户端应用308交互。 客户端应用308通过OAuth客户端API 310和OAuth客户端引擎322交互。OAuth客户端引擎322和资源注册表324、本地应用注册表326及令牌注册表328交互。
根据本发明的一个实施例,关于客户端应用308可与之交互的所有不同类型的资源服务器的元数据都存储在资源注册表324中,使得客户端应用308能够与各种不同的资源服务器交互。资源注册表可以指示例如由每个不同类型资源服务器识别的不同范围集合。因此,客户端应用308能够请求对应于由资源服务器304识别的特定范围的访问,并且这个特定的范围可以在OAuth授权服务器306代表客户端应用308发送到资源所有者302的同意请求中指定。资源提供者可以公布他们与OAuth标准兼容的范围规范,使得设计者可以利用用于这些提供者的资源服务器的适当的服务器-范围映射来填充资源注册表308。在一个实施例中,因为资源注册表308可以独立于客户端应用308来填充,所以客户端应用308不需要为了与新发现的资源服务器交互而修订;相反,开发者可以简单地把用于这些资源服务器的新映射“插入”客户端应用308与之交互的资源注册表324中。
充当资源提供者或服务器的复杂网站常常不是整体式的应用。相反,复杂的网站常常构成各种不同的应用。在本发明的一个实施例中,本地应用注册表326存储各个不同资源提供者和由这些资源提供者提供或暴露的应用集合之间的映射。每个这种应用都可以在本地应用注册表326中映射到用于这个应用的单独的统一资源定位符(URL)。在本发明的一个实施例中,本地应用注册表326存储信任密钥,以行使(exercise)访问远程资源的OAuth客户端角色。
通常,客户端应用308能够多次使用一个特定的访问令牌,以便在这个特定的访问令牌到期之前访问由资源服务器304维护的资源。在本发明的一个实施例中,客户端应用308从OAuth授权服务器306获得的访问令牌存储在令牌注册表328中。因为客户端应用308可以与多个不同的资源服务器交互,所以令牌注册表328可以维护访问令牌和与这些访问令牌有关的不同资源服务器之间的映射。令牌注 册表328可以存储用于各种不同远程资源服务器(例如,资源服务器304)以及范围的访问令牌和刷新令牌。
与单个OAUTH服务器接口的多个资源服务器
本发明的实施例包括将客户端应用绑定到资源服务器的框架,由此指示各种客户端应用是否被允许访问各种资源服务器。客户端应用可以对OAuth授权服务器作出预授权请求。该请求可以指示客户端需要访问一些指定的资源。客户端应用可以与OAuth授权服务器通信,以请求客户端应用可以随后呈现给资源服务器的令牌,使得资源服务器将允许该客户端应用访问存储在该资源服务器上或由该资源服务器提供的资源。前述操作是代表人类用户执行的。
因此,人类用户可以尝试执行需要客户端应用访问资源服务器的操作。在访问资源服务器之前,客户端应用将与OAuth授权服务器通信,以便向OAuth授权服务器请求令牌,使得客户端应用可以访问存储在资源服务器上或由资源服务器提供的资源。根据本发明的一个实施例,OAuth授权服务器是外部化(externalize)这种令牌的获取的框架。
基于云的计算环境可以包括许多不同的服务。例如,该环境可以包括存储服务、消息传送服务和其它服务。每个服务可以由环境中的单独资源服务器提供。例如,用户可能想访问由存储服务维护的某些用户资源。用户可以指示客户端应用代表用户来访问这些资源。为了访问资源,客户端应用可以需要首先获取使该客户端应用有权读或写提供该存储服务的存储资源服务器上的用户资源的令牌。根据本发明的一个实施例,OAuth授权服务器并不单方面地关于这种令牌是应当还是不应当被准许作出决定。代替地,OAuth授权服务器将这些决定外部化到由OAuth授权服务器外部的资源服务器管理的各种授权策略引擎。因此,关于令牌是应当还是不应当被准许的决定,以及关于由这个令牌指示的许可的范围的决定,可以由提供客户端应用寻求访问的服务的资源服务器决定。然后,在存储服务的情况下,响应 于客户端应用对令牌的请求,OAuth授权服务器可以将这个请求中继到提供这个存储服务的存储资源服务器。OAuth授权服务器可以将不同的令牌请求中继到不同的资源服务器,这取决于寻求访问哪个服务。
在云计算环境中提供的每个服务可以与潜在不同的服务管理员相关联。服务管理员可以是与用于特定身份域中的各种服务的服务管理员角色关联的用户。身份域是共享计算环境(诸如云计算环境)的逻辑分区。这种逻辑分区可以是被在计算环境中的硬件上执行的身份域管理软件彼此隔离的若干逻辑分区之一。每个这种域可以被看作是计算环境中共享硬件和软件资源的“切片”,该切片与(可能为使用这个切片的特权付费的)潜在不同客户关联。每个身份域可以包括用户身份和应用软件服务的实例–有时是相同软件代码的单独执行的实例。通过防止来自一个这种域的用户访问不与这个域关联的服务实例,并且通过防止与一个这种域关联的服务实例访问与这个域关联的用户身份,身份域管理软件可以实施身份域之间的隔离。
一个用户可以是一个服务的服务管理员,而另一个用户可以是另一个服务的服务管理员。每个服务可以具有这个服务专用的一组关联的授权策略。服务的授权策略可以由这个服务的服务管理员管理和配置。服务的授权策略可以指示哪些用户或者哪些用户角色被允许访问该服务提供的各种资源。例如,用于特定存储服务的特定授权策略可以指示特定用户被允许访问由这个特定存储服务提供的特定文件。对于另一个例子,授权策略可以指示用于不同类型订户(诸如金级订户和白金级订户)的不同配额限制。
根据一个实施例,响应于接收到客户端应用对令牌的请求,OAuth授权服务器可以调用由提供服务的资源服务器维护的策略引擎。策略引擎是由服务的服务管理员管理的。策略引擎确定对令牌的请求是否有效,并通知OAuth授权服务器。如果策略引擎通知OAuth授权服务器对令牌的请求是有效的,则OAuth授权服务器将响应性地将令牌返回到客户端应用。因此,OAuth服务器充当框架。
根据本发明的一个实施例,OAuth授权服务器位于其中的云计算环境包含彼此隔离的多个单独的身份域。每个这种身份域可以与单独的租户或顾客(诸如不同的商业组织)相关联。因此,第一商业组织可以是对云计算环境中的第一身份域具有独占访问的第一租户,并且第二商业组织可以是对云计算环境中的第二身份域具有独占访问的第二租户。不管将云计算环境这样划分为专用于单独租户的隔离身份域,在本发明的一个实施例中,所有身份域都总体上利用用于云计算环境的单个OAuth授权服务器实例。这有利地避免了为每个单独身份域提供单独OAuth授权服务器的需求。关于多身份域云计算环境的更多信息可以在于2013年3月15日提交、序列号为13/838,813且标题为“MULTI-TENANCY IDENTITYMANAGEMENT SYSTEM”的美国专利申请中;和于2013年9月5日提交、序列号为14/019,051且标题为“LDAP-BASED MULTI-TENANT IN-CLOUD IDENTITY MANAGEMENT SYSTEM”的美国专利申请中找到。序列号为13/838,813的美国专利申请和序列号为14/019,051的美国专利申请的全部内容通过引用被结合于此,用于所有目的。
因此,根据一个实施例,客户端应用位于彼此隔离的不同身份域中。但是,在为了访问服务寻求令牌时,每个客户端应用向同一云范围OAuth授权服务器申请这个令牌。OAuth授权服务器又将令牌请求中继到提供和这些令牌有关的服务的各种资源服务器。资源服务器维护控制用于这些资源服务器提供的服务的令牌的授予和生成的授权策略。每个资源服务器的授权策略集合可以与每个其它资源服务器的授权策略集合不同。即使是对于相同的服务,用于一个租户的授权策略也可以与用于另一个租户的授权策略不同。因此,在一个实施例中,每个多租户感知资源服务器可以维护多个不同的授权策略集合,每个授权策略集合和专用于不同租户的单独身份域有关。
在本发明的一个实施例中,单个云范围OAuth授权服务器为云计算环境已经被划分成的每个单独的身份域维护OAuth授权服务器的单独虚拟化“切片”。对每个这样的“切片”,OAuth授权服务 器可以存储与这个切片专用的身份域相关的单独的配置数据–被称为OAuth服务简档。因此,OAuth授权服务器为一个身份域存储的OAuth服务简档可以不同于OAuth授权服务器为另一个身份域存储的OAuth服务简档。从由云计算环境服务的各种不同租户的角度来看,OAuth授权服务器仅仅代表他们而不代表任何其他租户起作用–但是,这仅仅是租户看到的情况。租户与OAuth授权服务器为不同的身份域维护不同的OAuth服务简档的事实隔绝。OAuth授权服务器的多身份域本质被遮蔽而不让拥有这些身份域的租户看到。每个租户的客户端应用可以以这样的方式与多身份域云计算环境中的OAuth授权服务器交互:该方式类似于这些客户端应用将与在这个租户自己的计算机器上实现的单身份域企业环境中的OAuth授权服务器交互的方式。各种客户端应用不需要为了可与多租户OAuth授权服务器一起操作而进行修改。
因此,在本发明的实施例中,OAuth授权服务器维护各种身份域与用于这些身份域的OAuth服务简档之间的映射。当被增强时,OAuth授权服务器不仅适用于特定的企业环境,而且适用于被划分成单独的隔离身份域的整个云计算环境。来自各种不同身份域的客户端应用可以全都使用相同或相似的目的地或端点来访问同一OAuth授权服务器。例如,这种目的地可以采取URL的形式。客户端应用不需要被配置为对不同的OAuth授权服务器使用不同的URL。在一个实施例中,每个身份域的客户端应用用来访问单个云范围的OAuth授权服务器的URL具有相同的后缀,但具有识别这个身份域的不同前缀。为了从服务器维护的多个OAuth服务简档集合中确定哪个特定的OAuth服务简档适用于OAuth授权服务器从其接收令牌请求的特定客户端应用,OAuth授权服务器可以使用这个身份域前缀。
在一个实施例中,单个云范围多租户OAuth授权服务器仍然将令牌请求中继到提供和这些请求有关的服务的资源服务器。这些资源服务器,而不是OAuth授权服务器,维护管理这些资源服务器提供 的服务的授权策略。这些策略可以指示应当准许各种不同用户角色的各种级别的资源访问(例如,读配额、写配额、删除配额,等等)。资源服务器可以专用于特定的身份域,在这种情况下他们可以维护仅可适用于单个身份域的授权策略,或者资源服务器可以是维护可适用于不同身份域的不同授权策略集合的多租户感知服务器。
如上面所讨论的,在本发明的一个实施例中,单个OAuth授权服务器维护多个单独的OAuth服务简档–每个身份域一个OAuth服务简档。在本发明的一个实施例中,用于特定身份域的OAuth服务简档将客户端应用绑定到资源服务器,由此指示对于每个客户端应用该客户端应用被允许访问的资源服务器;一些客户端应用可能不被允许访问一些资源服务器。在一个OAuth服务简档数据中指定的这种应用到服务器绑定可以与在另一个OAuth服务简档中指定的应用到服务器绑定不同,使得在不同身份域的上下文中执行的特定客户端应用的不同实例不能访问相同的资源服务器。
根据一个实施例,多个不同的OAuth服务简档可以被生成并与同一身份域关联。例如,人力资源(HR)OAuth服务简档可以指示HR客户端应用被允许访问仅特定租户的身份域中的人力资源服务器,而营销OAuth服务简档可以指示营销客户端应用被允许仅访问在同一特定租户的身份域中的营销资源服务器。
在一个实施例中,云范围OAuth授权服务器响应于从客户端应用接收到令牌请求而咨询特定OAuth服务简档中指定的绑定。例如,OAuth授权服务器可以商议与该客户端应用在其中执行的身份域关联的OAuth服务简档中指定的绑定。基于该绑定,OAuth授权服务器确定客户端应用是否甚至被允许与和所请求的令牌有关的资源服务器通信。如果特定的OAuth服务简档指示客户端应用没有被绑定到资源服务器,则客户端应用的请求被拒绝,而没有与资源服务器的任何交互。
作为替代,如果特定的OAuth服务简档指示客户端应用绑定到资源服务器,则OAuth授权服务器根据特定的OAuth服务简档确定 对该资源服务器的回调URL。OAuth授权服务器使用这个URL向资源服务器发送与客户端应用和/或用户被允许对所请求的资源的访问的范围(例如,配额)有关的查询。响应于这种查询,资源服务器可以通过对请求的参数(例如,客户端应用身份、用户身份、资源身份)应用其授权策略来确定,应当被准许的访问范围(如果有的话)。资源服务器可以利用这种访问范围信息答复OAuth授权服务器。作为替代,OAuth授权服务器可以从资源服务器获得资源服务器的授权策略、在本地存储拷贝,并且可以应用这些策略本身,以确定应当准许的访问范围。OAuth授权服务器可以基于所确定的访问范围信息生成适当的令牌,并且可以响应于客户端应用的令牌请求而将该令牌提供给客户端应用。其后,当寻求访问该资源服务器提供的服务时,客户端应用可以将该令牌呈现给资源服务器。基于包含在令牌中的访问范围信息,资源服务器可以限制客户端应用对其服务的访问。
图4是根据本发明的一个实施例的示出基于多身份域云的计算环境中OAuth授权服务器可以用来为在单独隔离的身份域的上下文中执行的不同应用生成授权令牌的技术的例子的流程图。在方框402中,OAuth授权服务器从在多个隔离的身份域中第一身份域的上下文中执行的第一客户端应用接收请求。在方框404中,OAuth授权服务器从OAuth授权服务器维护的多个OAuth服务简档中选择仅可适用于第一身份域的第一OAuth服务简档。在方框406中,OAuth授权服务器基于第一OAuth服务简档确定第一客户端应用是否被允许访问第一资源服务器。在方框408中,OAuth授权服务器响应于确定第一客户端应用被允许访问第一资源服务器而基于OAuth授权服务器从第一资源服务器获得的范围信息生成用于第一客户端应用的第一令牌。在方框410中,OAuth授权服务器从在多个隔离的身份域中第二身份域的上下文中执行的第二客户端应用接收请求。该第二身份域与第一身份域分开。在方框412中,OAuth授权服务器从该OAuth授权服务器维护的多个OAuth服务简档中选择仅可适用于第二身份域的第二OAuth服务简档。在方框414中,OAuth授权服务 器基于第二OAuth服务简档确定第二客户端应用是否被允许访问第二资源服务器。在方框416中,OAuth授权服务器响应于确定第二客户端应用被允许访问第二资源服务器而基于OAuth授权服务器从第二资源服务器获得的范围信息生成用于第二客户端应用的第二令牌。
图5是根据本发明的一个实施例的示出与来自不同企业的具有不同身份域的客户端进行交互以便相对于云提供的服务授权这些客户端的云范围OAuth授权服务器的例子的框图。图5示出了不同的企业510A和510B。企业510A和510B可以是不同且不相关的商业组织。每个企业510A和510B可以是本文所讨论的云计算服务的单独客户。企业510A包括多个客户端,诸如客户端512AA和客户端512AB。客户端512AA和512AB可以与企业510A中的不同用户关联并由企业510A中的不同用户操作。这些用户当中每一个可以具有包含在与企业510A唯一关联的身份域当中的不同身份。这些用户当中每一个可以与企业510A特有的既定角色的层次结构中的不同既定角色关联。企业510B也包括多个客户端,诸如客户端512BA和客户端512BB。客户端512BA和512BB可以与企业510B中的不同用户关联并由企业510B中的不同用户操作。这些用户当中每一个可以具有包含在与企业510B唯一关联的身份域当中的不同身份。这些用户当中每一个可以与企业510B特有的既定角色的层次结构中的不同既定角色关联。
客户端512AA、512AB、512BA和512BB每个可以与服务于云计算环境的所有客户端的云范围OAuth授权服务器502进行交互,而不管这些客户端所属的企业或身份域如何。客户端512AA、512AB、512BA和512BB每个可以通过互联网514向云范围OAuth服务器502发送授权令牌请求,该请求指定(a)用于这个客户端的用户的凭证,和(b)客户端期望访问的基于云的服务。云范围OAuth授权服务器502通过互联网514接收这种授权令牌请求。对于每个这种授权令牌请求,云范围OAuth授权服务器502可以确定与授权令牌请求起源的客户端关联的身份域。例如,云范围OAuth授权服务器502可以基于所存储的映射数据确定客户端512AA和512AB(及其 关联的用户)属于企业510A并且因此属于与企业510A唯一地对应的第一身份域。继续该例,云范围OAuth授权服务器502可以基于所存储的映射数据确定客户端512BA和512BB(及其关联的用户)属于企业510B并且因此属于与企业510B唯一地对应的第二身份域。
在一个实施例中,云范围OAuth授权服务器502存储多个不同的域服务简档,诸如域服务简档504A和域服务简档504B。每个这种域服务简档可以与不同的身份域唯一地关联。在确定特定客户端(及其关联的用户)所属的特定身份域后,云范围OAuth授权服务器502可以确定由服务器502存储的若干不同的域服务简档当中哪个唯一地对应于这个特定身份域。例如,响应于确定客户端512AA和512AB与第一身份域(例如,由企业510A拥有的身份域)关联,云范围OAuth授权服务器502可以确定与第一身份域唯一地关联的域服务简档504A被用来处理源自客户端的512AA和512AB的授权令牌请求。例如,响应于确定客户端512BA和512BB与第二身份域(例如,由企业510B拥有的身份域)关联,云范围OAuth授权服务器502可以确定与第二身份域唯一地关联的域服务简档504B被用来处理源自客户端512AA和512AB的授权令牌请求。
在一个实施例中,域服务简档504A和504B当中每一个包含不同的客户端到服务绑定集合。每个客户端到服务绑定可以指定特定客户端是否对(由特定资源服务器提供的)特定服务具有(任何范围的)任何访问。例如,域服务简档504A可以包含客户端到服务绑定506AA和506AB,而域服务简档504B可以包含客户端到服务绑定506BA和506BB。在这个例子中,客户端到服务绑定506AA指示客户端512AA被允许访问由资源服务器516A提供的服务;客户端到服务绑定506AA指示客户端512AB被允许访问由资源服务器516B提供的服务;客户端到服务绑定506BA指示客户端512BA被允许访问由资源服务器516A提供的服务;并且客户端到服务绑定506AA指示客户端512AB被允许访问由资源服务器516B提供的服务。
在一个实施例中,特定客户端与特定服务之间不存在绑定是特定 客户端完全不被允许访问特定服务的决定性证据,而在另一实施例中,绑定可以明确地指定特定客户端是否被允许访问特定服务。在一个实施例中,响应于确定特定客户端不被允许访问在该特定客户端的授权令牌请求中指定的服务,云范围OAuth授权服务器502可以通过互联网514向特定客户端返回授权令牌请求被拒绝的指示。在一个实施例中,客户端到服务绑定是响应于租户(诸如企业510A和510B)购买对在这些绑定中指定的服务的订阅并且随后将这些服务提供到这个租户的身份域而被创建的。因此,在这种实施例中,如果特定租户尚未购买或以其它方式获得对特定服务的订阅,则在这个特定租户的客户端(或其用户)与这个特定服务之间没有客户端到服务绑定。
在一个实施例中,云范围OAuth授权服务器502附加地在云计算环境中存储用于提供服务的每个资源服务器的单独的服务回调URL。在所示出的例子中,云范围OAuth授权服务器502存储用于资源服务器516A的服务回调URL 508A和用于资源服务器516B的服务回调URL 508B。响应于在用于特定客户端所属的身份域的域服务简档中定位指定在授权令牌请求中指定的客户端(或其用户)和服务二者的特定客户端到服务绑定,云范围OAuth授权服务器502确定用于提供这个服务的特定资源服务器的服务回调URL。然后,云范围OAuth授权服务器502经互联网514向具有这个服务回调URL的资源服务器转发授权令牌请求。互联网514中的域名服务器和路由器使用该服务回调URL将授权令牌请求路由到云计算环境中的适当资源服务器。
在一个实施例中,资源服务器516A和516B当中每一个包含或执行策略引擎。例如,资源服务器516A可以执行策略引擎518A,而资源服务器516B可以执行策略引擎518B。策略引擎518A和518B当中每一个可以是相同策略引擎代码的单独执行实例。策略引擎518A和518B当中每一个可以包含或可以访问多个策略集合。每个策略集合可以和不同的身份域有关。例如,策略引擎518A可以访问和第一身份域(即,企业510A的身份域)有关的策略520AA,和 /或与第二身份域(即,企业510B的身份域)有关的策略520AB。类似地,策略引擎518B可以访问和第一身份域(即,企业510A的身份域)有关的策略520BA,和/或和第二身份域(即,企业510B的身份域)有关的策略520BB。用于每个资源服务器的策略可以彼此不同。用于不同身份域的策略可以甚至相对于同一资源服务器彼此不同。因此,相对于资源服务器516A管理客户端512AA和512AB的策略可以与相对于资源服务器516A管理客户端512BA和512BB的策略不同。同样,相对于资源服务器516B管理客户端512AA和512AB的策略可以与相对于资源服务器516B管理客户端512BA和512BB的策略不同。
响应于接收到云范围OAuth授权服务器502通过互联网514转发的授权令牌请求,接收方资源服务器可以调用其策略引擎来确定适用于在这个授权令牌请求中指定的特定客户端(或用户)的身份域的特定策略集合。例如,响应于接收到指定客户端512AA或客户端512AB的授权令牌请求,策略引擎518A可以确定策略520AA和该授权令牌请求有关。响应于接收到指定客户端512BA或客户端512BB的授权令牌请求,策略引擎518A可以确定策略520AB和该授权令牌请求有关。继续该例,响应于接收到指定客户端512AA或客户端512AB的授权令牌请求,策略引擎518B可以确定策略520BA和该授权令牌请求有关。响应于接收到指定客户端512BA或客户端512BB的授权令牌请求,策略引擎520B可以确定策略520BB和该授权令牌请求有关。
在一个实施例中,特定策略引擎可以访问订阅由执行这个特定策略引擎的资源服务器提供的服务的每个租户的用户身份存储。因此,策略引擎可以从用户身份存储获得在授权令牌请求中指定的客户端或用户的属性。然后,策略引擎可以从被确定为和授权令牌请求有关的策略集合中选择适用于授权令牌请求中指定的服务的策略。这些被选的策略可以指定相对于各种客户端或用户属性的各种访问范围。策略引擎可以相对于与从用户身份存储读出的身份关联的属性评估所选的 策略。作为评估的结果,策略引擎可以确定发出请求的客户端(及其用户)在使用授权令牌请求中指定的服务时被允许的访问范围(例如,相对于哪些资源哪些操作被允许)。通过互联网514,调用策略引擎的资源服务器可以向云范围OAuth授权服务器502返回用于在授权令牌请求中标识出的客户端(或其用户)的被允许的访问范围的指示。例如,策略引擎518A可以基于策略520AA当中的一些确定客户端512AA相对于由资源服务器516A提供的服务具有第一访问范围,而客户端512AB相对于由资源服务器516A提供的服务具有第二访问范围。策略引擎518A可以基于策略520AB当中的一些确定客户端512BA相对于由资源服务器516A提供的服务具有第三访问范围,而客户端512BB相对于由资源服务器516A提供的服务具有第四访问范围。继续该例,策略引擎518B可以基于策略520BA当中的一些确定客户端512AA相对于由资源服务器516B提供的服务具有第五访问范围,而客户端512AB相对于由资源服务器516B提供的服务具有第六访问范围。策略引擎518B可以基于策略520BB当中的一些确定客户端512BA相对于由资源服务器516B提供的服务具有第七访问范围,而客户端512BB相对于由资源服务器516B提供的服务具有第八访问范围。上述例子中所提及的第一至第八访问范围都可以彼此不同。
云范围OAuth授权服务器502可以经互联网514从资源服务器516A和516B接收与服务器502转发到这些资源服务器的各种授权令牌请求有关的访问范围的指示。响应于接收到访问范围的这种指示,云范围OAuth授权服务器502可以生成指定某些客户端或用户相对于由从其接收到这些访问范围的资源服务器提供的服务具有对应访问范围的授权令牌。云范围OAuth授权服务器502可以经互联网514向服务器502先前从其接收到对应授权令牌请求的各个客户端512AA、512AB、512BA和512BB返回这种授权令牌。客户端512AA、512AB、512BA和512BB经互联网514接收这些令牌,其后可以在从这些资源服务器请求服务时将这些授权令牌呈现给资源服务器516A和516B。资源服务器516A和516B可以检查包含在这些授权令牌中的访问范围,以便确定发出请求的客户端是否被允许使用服务来相对于指定的资源执行指定的操作。
在上述实施例中,资源服务器516A和516B分别执行策略引擎516A和516B,并向云范围OAuth授权服务器502返回访问范围的指示,云范围OAuth授权服务器502基于这些范围生成授权令牌。但是,在本发明的备选实施例中,代替向云范围OAuth授权服务器502返回访问范围的指示,资源服务器516A和516B可以向服务器502注册适用于每个身份域的实际策略(例如,用于资源服务器516A的策略520AA和520AB,及用于资源服务器516B的策略520BA及520BB)。在本发明的这种备选实施例中,云范围OAuth授权服务器502本身可以对照从云范围身份存储获得的客户端(或用户)的属性来评估适用的子集中的策略。因此,在这种备选实施例中,云范围OAuth授权服务器502本身可以基于评估的结果确定要在要返回给请求起源的客户端的授权令牌中指定的访问范围。在这种备选实施例中,云范围OAuth授权服务器502可能不需要将授权令牌请求转发到资源服务器。
捆绑的授权请求
通常,代表特定用户请求服务的客户端应用将最终为这个用户请求访问多个不同的服务而。例如,客户端应用可能最终请求访问存储服务、文件服务和消息传送服务。这些服务可以由不同的资源服务器提供。在没有增强的情况下,客户端应用可能最终对OAuth授权服务器作出三个独立的令牌请求。即使客户端应用有些预知到最终所有这三个服务都将代表特定用户被请求,情况也是这样。
在本发明的一个实施例中,为了避免这种低效的处理,客户端应用可以将用于由不同资源服务器提供的不同服务的多个访问请求捆绑成客户端应用向OAuth授权服务器发出的单个令牌请求。响应于这种捆绑请求,OAuth授权服务器可以从每一个提供所请求的服务的资源服务器获得授权决定。然后,OAuth授权服务器可以生成单个 令牌,该令牌包括从每个这种资源服务器的授权决定产生的访问范围信息。OAuth授权服务器可以将这单个令牌返回到客户端应用。然后,客户端应用可以将这个令牌提供给提供在捆绑请求中所请求的任何服务的任何资源服务器。
图7是根据本发明的一个实施例的示出用于生成可用来从多个资源服务器请求服务的单个令牌的技术的例子的流程图。在方框702中,OAuth授权服务器从客户端应用接收标识多个服务的令牌请求。在方框703中,响应于接收到令牌请求,OAuth授权服务器创建新的多服务令牌。在方框704中,OAuth授权服务器将当前服务设置成在令牌请求中指定的第一服务。在方框706中,OAuth授权服务器从一组资源服务器中选择提供当前服务的特定资源服务器。在方框708中,OAuth授权服务器基于从该特定资源服务器获得的范围信息,确定客户端应用被允许相对于当前服务具有的访问范围。在方框710中,OAuth授权服务器向多服务令牌添加指示对当前服务的访问范围的数据。在方框712中,OAuth授权服务器确定令牌请求是否标识出任何另外的服务,其中对所述另外的服务还未将访问范围数据添加到多服务令牌。如果是这样,则控制传递到方框714,否则,控制传递到方框716。
在方框714中,OAuth授权服务器将当前服务设置成在令牌请求中指定的下一个服务。控制传递回方框706。
作为替代,在方框716中,OAuth授权服务器将多服务令牌返回到客户端应用。然后,参照图7描述的技术结束。
可插拔授权策略
在一个实施例中,OAuth授权服务器不需要关于对由资源服务器提供的服务的访问范围作出决定。在这种实施例中,资源服务器代替地基于它们自己维护的授权策略作出这些决定,并且OAuth授权服务器生成指定基于这些决定确定的访问范围的令牌。OAuth授权服务器可以回调资源服务器,以便确定访问范围。其结果是,租户可 以通过配置部署到其身份域的资源服务器中的这些授权策略来将期望的授权策略“插入”OAuth授权系统。
图8A-B示出了根据本发明的一个实施例的示出用于将资源服务器维护的授权策略插入OAuth授权服务器的技术的例子的流程图。首先参照图8A,在方框802中,资源服务器从来自特定身份域的服务管理员接收授权策略。资源服务器可以对不同的身份域具有不同的服务管理员。在方框804中,响应于接收到授权策略,资源服务器确定该服务管理员所在的身份域。在方框806中,资源服务器存储授权策略与身份域之间的映射。在方框808中,OAuth授权服务器从该身份域的授权管理员接收指定用于资源服务器的URL的插入命令。在方框810中,响应于接收到该插入命令,OAuth授权服务器确定授权管理员所在的身份域。在方框812中,OAuth授权服务器存储身份域与用于资源服务器的URL之间的映射。
接下来参照图8B,在方框814中,OAuth授权服务器从特定身份域中的客户端应用接收令牌请求。在方框816中,响应于接收到令牌请求,OAuth授权服务器从潜在的多个不同URL中选择映射到客户端应用所在的特定身份域的特定URL。在方框818中,OAuth授权服务器从位于该特定URL的资源服务器请求范围信息。该请求可以指示特定的身份域和客户端应用。在方框820中,位于该特定URL的资源服务器从潜在多个不同授权策略中选择映射到特定身份域的特定授权策略。在方框822中,资源服务器基于客户端应用的身份和特定的授权策略生成访问范围信息。访问范围信息指示客户端应用相对于由资源服务器提供的服务所具有的访问范围(例如,被允许和禁止的操作)。在方框824中,资源服务器将访问范围信息返回到OAuth授权服务器。在方框826中,OAuth授权服务器生成指定访问范围信息的令牌。在方框828中,OAuth授权服务器将令牌返回到客户端应用。
扩展的OAUTH请求格式和定制令牌属性
在一个实施例中,令牌请求可以包括不是标准OAuth规范的一部分的数据项;令牌请求格式可以扩展为超出该标准,以增强OAuth授权系统能力。例如,令牌请求可以包括关于人类用户的属性值,客户端应用代表该人类用户从OAuth授权服务器请求令牌。资源服务器可能会受益于获得这种用户属性值,以便基于这些属性值决定访问范围。因此,扩展可以被包括在令牌请求中的信息可以使资源服务器能够做出更复杂的访问范围决定。由资源服务器维护的授权策略可以指定更复杂的标准,该更复杂的标准涉及否则将不被考虑的属性,因为它们否则将不是资源服务器可用的。代替被限制到与客户端应用属性相关的标准,授权策略可以指定与人类用户属性相关的标准。这些人类用户属性可以在由身份域划分的基于LDAP的身份存储中被维护。
在一个实施例中,OAuth授权服务器可以将用户属性插入到令牌中。OAuth授权服务器可以从可以存储在LDAP目录中的用户简档取出这种用户的属性。OAuth授权服务器可以向客户端应用发送包括用户属性的令牌,使得客户端应用可以向资源服务器呈现该令牌。资源服务器可以至少部分地基于包括在令牌中的用户属性作出策略决定。例如,资源服务器可能需要知道用户的订阅标识符,以便作出授权决定。订阅标识符可以被存储在用户的简档中。在生成令牌的时候,OAuth授权服务器可以从目录中读取用户的简档信息。OAuth授权服务器可以从用户的简档信息中读取订阅标识符。
在一个实施例中,OAuth授权服务器基于OAuth管理员定义的配置确定哪种外部信息(诸如用户属性)需要被插入到OAuth授权服务器生成的每个令牌中。OAuth授权服务器获得指定的信息并将其插入到服务器生成的每个令牌中。OAuth授权服务器可以从任何服务获得信息并可以将该信息插入令牌;用户属性信息仅仅是可以被获得和插入的一种信息。OAuth授权服务器可以从除LDAP目录之外的其它源获得这种信息。例如,OAuth授权服务器可以从web服务或其它执行程序获得这种信息。
图6是根据本发明的实施例的示出利用特定于用户的属性扩充令牌的技术的例子的流程图。在方框602中,OAuth授权服务器接收指定用户属性集合的管理员定义的配置。例如,用户属性集合可以包括:部门、安全级别,等等。应当注意的是,这些是属性的名称,而不是其具体值。在方框604中,OAuth授权服务器存储管理员定义的配置。在方框606中,OAuth授权服务器从客户端应用接收令牌请求。在方框608中,OAuth授权服务器基于令牌请求确定用户的身份。在方框610中,OAuth授权服务器基于令牌请求确定访问范围。例如,OAuth授权服务器可以使用上述技术来基于资源服务器提供的授权策略确定访问范围。在方框612中,OAuth授权从储存库为识别出的用户检索配置指定的属性的值。在方框614中,OAuth授权服务器将以下各项插入新的令牌:(a)用于识别出的用户的配置指定的属性的值和(b)访问范围。在方框616中,OAuth授权服务器响应于令牌请求而将新令牌返回到客户端应用。其后,可以至少部分地基于在客户端应用为每个请求提供以便访问由资源服务器提供的资源的令牌中指定的用户属性的值来作出授权决定。
允许多样化客户端简档储存库的客户端插件
云计算环境中的每个租户可以具有部署到其单独身份域的多个客户端应用。每个这种客户端应用可以具有客户端简档。一些租户可能想在LDAP目录中存储客户端简档。其他租户可能想在配置文件中存储客户端简档。还有其他租户可能想在数据库中存储客户端简档。在本发明的一个实施例中,OAuth授权服务器为客户端提供可插拔实现。租户的客户端简档被存储到其中的储存库可以每个租户为基础进行配置。
当客户端应用作出请求时,客户端向OAuth授权服务器提供可以被用来在授权过程执行之前认证客户端应用的标识符和密码。OAuth授权服务器可以将客户端应用的标识符和密码中继到适当的插件,使得客户端应用可以被认证。插件可以访问客户端应用的简档 存储在其中的储存库,而不考虑储存库采取的形式。在一个实施例中,对于每个身份域,OAuth授权服务器存储指示插件的位置的配置信息,该插件可以访问用于这个身份域的客户端简档。OAuth授权服务器可以基于这种配置信息将授权请求中继到适当的插件。
图9是根据本发明的一个实施例的示出用于将认证请求路由到访问特定于客户端的用户身份储存库的特定于客户端的插件模块的技术的例子的流程图。在方框902中,OAuth授权服务器从第一管理员接收用于第一类型用户身份储存库的第一插件的第一URL。例如,第一类型用户身份储存库可以是关系数据库。OAuth授权服务器还可以从第一管理员接收指定第一插件假定要为其服务的第一类型客户端应用的信息。在方框904中,OAuth授权服务器存储第一类型客户端应用与第一URL之间的第一映射。因此,第一插件变为向OAuth授权服务器注册了。在方框906中,OAuth授权服务器从第二管理员接收用于第二类型用户身份储存库的第二插件的第二URL。例如,第二类型的用户身份储存库可以是LDAP目录。OAuth授权服务器还可以从所述第二管理员接收指定第二插件假定要为其服务的第二类型客户端应用的信息。在方框908中,OAuth授权服务器存储第二类型客户端应用与第二URL之间的第二映射。因此,第二插件变为向OAuth授权服务器注册了。
在方框910中,OAuth授权服务器从具有特定客户端应用类型的特定客户端应用接收用户认证请求。用户认证请求可以指定用户名和密码。在方框912中,OAuth授权服务器定位指定特定客户端应用类型的特定映射(例如,第一映射或第二映射)。在方框914中,OAuth授权服务器确定在该特定映射中指定的特定URL(例如,第一URL或第二URL)。在方框916中,OAuth授权服务器将用户认证请求转发到位于该特定URL中的特定插件(例如,第一插件或第二插件)。在方框918中,特定插件访问该特定插件被设计成访问的特定类型的用户身份储存库(例如,第一类型用户身份储存库或第二类型用户身份储存库)。在方框920中,该特定插件使用在所转发 的用户认证请求中指定的用户名和密码,基于特定类型的用户身份储存库中包含的信息来认证特定客户端应用的用户。在一个实施例中,该特定插件可以通知OAuth授权服务器关于认证尝试的结果(成功或失败)。
特定于服务简档的令牌属性
根据一个实施例,可以在OAuth服务简档级定义属性值。例如,令牌超时值可以在OAuth服务简档中定义。OAuth服务简档可能指示发布到该简档适用的客户端应用的所有令牌在发布8小时之后到期。因此,当OAuth授权服务器为OAuth服务简档适用的客户端应用生成令牌时,OAuth授权服务器可以生成在发布之后8小时到期的令牌。但是,不同的OAuth服务简档可以对这个相同的属性指示不同的值,使得OAuth授权服务器为在不同身份域中的客户端应用生成的令牌可以具有不同的超时值。这种属性值可以是OAuth特定于服务简档的的。
图10是根据本发明的一个实施例的示出用于生成具有特定于身份域的令牌属性的令牌的技术的例子的流程图。在方框1002中,OAuth授权服务器从第一身份域的管理员接收指定用于特定令牌属性的第一值的第一服务简档。例如,令牌属性可以是“超时”并且第一值可以是“8小时”。在方框1004中,响应于接收到第一服务简档,OAuth授权服务器存储第一服务简档与第一身份域之间的第一映射。在方框1006中,OAuth授权服务器从第二身份域的管理员接收指定用于特定令牌属性的第二值的第二服务简档。例如,令牌属性可以再次是“超时”并且第二值可以是“1小时”。在方框1008中,响应于接收到第二服务简档,OAuth授权服务器存储第二服务简档与第二身份域之间的第二映射。
在方框1010中,OAuth授权服务器从包含在特定身份域中的客户端应用接收令牌请求。在方框1012中,OAuth授权服务器基于所存储的映射确定映射到该特定身份域的特定服务简档。在方框1014 中,OAuth授权服务器从该特定服务简档读取特定令牌属性的值。在方框1016中,OAuth授权服务器生成包含该特定令牌属性和来自特定服务简档的对应值的新令牌。例如,新令牌可以指示“超时”属性和在映射到特定客户端应用的身份域的简档中指定的对应值。在方框1018中,OAuth授权服务器响应于令牌请求而将新令牌返回到特定客户端应用。
资源服务器令牌属性覆盖
虽然特定OAuth服务简档可以指定用于各种属性的各种值,使得OAuth授权服务器将为该特定的OAuth服务简档适用的客户端应用生成与这些值具有一致性的令牌处理特性,但是在一个实施例中,各个资源服务器可以为指定的属性覆盖这些值。例如,特定的资源服务器可以指定它提供的服务的超时属性值为仅10分钟,而不是8小时。在一个实施例中,如果资源服务器为特定的属性指定值,则这个值优先于在OAuth服务简档中为同一特定属性指定的值。
因此,在本发明的一个实施例中,资源服务器从OAuth服务简档继承属性值,但这些资源服务器可以可选地通过指定不同的特定于资源服务器的属性值来覆盖这些继承的属性值。在这种实施例中,如果资源服务器不覆盖由可适用的OAuth服务简档指定的属性值,则由OAuth的服务简档指定的属性值仍然有效,并且资源服务器将这个属性值传达给OAuth授权服务器,作为OAuth授权服务器用来生成被返回到客户端应用的令牌的访问范围信息的一部分。
在本发明的一个实施例中,缺省属性值也可以在身份域级别被单独定义,使得同一身份域内多个单独的OAuth服务简档可以继承这些属性值。在这种实施例中,每个OAuth服务简档可以以每个资源服务器可以覆盖它从OAuth的服务简档继承的属性值的方式覆盖它从身份域继承的属性值。
图11是根据本发明的一个实施例的示出用于生成令牌的技术的例子的流程图,其中该令牌包含具有被资源服务器覆盖的值的令牌属 性。在方框1102中,OAuth授权服务器从身份域的管理员接收为特定令牌属性指定第一值的服务简档。例如,令牌属性可以是“超时”并且第一值可以是“8小时”。在方框1104中,响应于接收到该服务简档,OAuth授权服务器存储服务简档与身份域之间的映射。在方框1106中,资源服务器从资源服务器的管理员接收为该特定令牌属性指定第二值的特定于资源服务器的简档。例如,令牌属性可以再次是“超时”并且第二值可以是“10分钟”。在方框1108中,响应于接收到特定于资源服务器的简档,资源服务器存储特定于资源服务器的简档。
在方框1110中,OAuth授权服务器从包含在身份域中的客户端应用接收令牌请求。在方框1112中,OAuth授权服务器确定映射到该身份域的特定服务简档。在方框1114中,OAuth授权服务器从该特定服务简档读取用于特定令牌属性的特定于服务简档的值。在方框1116中,OAuth授权服务器确定特定资源服务器提供在令牌请求中指定的特定服务。在方框1118中,响应于确定特定资源服务器提供特定服务,OAuth授权服务器向特定资源服务器请求特定于资源服务器的值。在方框1120中,OAuth授权服务器确定是否从特定资源服务器接收到了用于特定属性的特定于资源的特定值。如果是这样,则控制传递到方框1122。否则,控制传递到方框1124。
在方框1122中,OAuth授权服务器生成包含特定属性和用于该特定属性的特定于资源服务器的值而不是特定于服务简档的值的新令牌。在这种情况下,资源服务器对于该特定属性覆盖服务简档的值。OAuth授权服务器响应于令牌请求而将新令牌返回到特定的客户端应用。
作为替代,在方框1124中,OAuth授权服务器生成包含特定属性和用于该特定属性的特定于服务简档的值的新令牌。在这种情况下,资源服务器继承用于该特定属性的服务简档的值。OAuth授权服务器响应于令牌请求而将新令牌返回到特定客户端应用。
可配置的自适应访问调用(call-outs)
有时,租户可能想要其身份域中定义的用户基于比仅仅静态身份和密码更动态的信息被认证。例如,租户可能想要其用户基于这些用户正从其寻求访问的当前地理位置、或者这些用户正从其寻求访问的互联网协议(IP)地址、或者这些用户正从其寻求访问的一天当中的时间被认证。为了执行认证而对这种动态信息的使用是自适应访问的基础。
自适应访问管理器可以随时间推移为每个用户建立访问简档。例如,自适应访问管理器可以确定特定用户通常每天在上午8点和下午5点之间登录到系统。但是,在一个特定的夜晚,自适应访问管理器可以确定该特定用户反常地试图在午夜登录到系统。这种不规律的访问行为可以指示非法访问尝试。对于另一个例子,自适应访问管理器可以确定特定用户在一个晚上从波士顿登录,然后在第二天晚上从旧金山登录。两个位置之间的很大距离可以指示非法访问尝试。响应于检测到不规律的访问行为,自适应访问管理器可以使附加的挑战被发出给用户,作为认证的一部分。例如,除了身份和密码,自适应访问管理器还可以使安全问题被询问,其答案只有真正的用户才知道。对于另一个例子,自适应访问管理器可以向用户的注册的电子邮件地址发送单次使用代码,并且在认证期间除了用户的身份和密码还使得该单次使用代码被请求。响应于不可能合法的某些访问模式,自适应访问管理器可以替代地完全阻止访问尝试,潜在地锁定用户的帐户,直到可以采取补救行动为止。
在本发明的一个实施例中,OAuth授权服务器响应于来自用户的至少某些验证请求而向外部自适应访问管理器进行调用。例如,每当从移动设备注册新用户时,OAuth授权服务器可以基于指定的策略对自适应访问管理器进行调用。自适应访问管理器可以利用指示附加凭证(或“第二因素”)是否应当作为认证处理的一部分被请求的信息,对OAuth授权服务器作出响应。可以有多个不同的自适应访问管理器。在本发明的一个实施例中,每个租户可以将其OAuth授 权服务器的“切片”配置为调用该租客选择的指定的自适应访问管理器。例如,这种构造可以在服务简档中指定。因此,第一租户可以在认证其用户时使OAuth授权服务器对第一自适应访问管理器进行调用,而第二租户可以在认证其用户时使OAuth授权服务器对第二自适应访问管理器进行调用。OAuth授权服务器可以与由各种不同供应商提供的自适应访问管理器集成。
图12是根据本发明的一个实施例的示出一种技术的例子的流程图,通过该技术,共享的OAuth授权服务器对用于云计算环境中不同身份域的不同注册的自适应接入管理器进行调用。在方框1202中,OAuth授权服务器从第一身份域的管理员接收指定用于第一自适应访问管理器的第一统一资源定位符(URL)的第一服务简档。在方框1204中,响应于接收到第一服务简档,OAuth授权服务器存储第一服务简档与第一身份域之间的映射。在方框1206中,OAuth授权服务器从与第一身份域不同的第二身份域的管理员接收指定用于第二自适应访问管理器的第二统一资源定位符(URL)的第二服务简档,其中第二自适应访问管理器与第一自适应访问管理器不同。在方框1208中,响应于接收到第二服务简档,OAuth授权服务器存储第二服务简档与第二身份域之间的映射。
在方框1210中,OAuth授权服务器从与特定身份域关联的用户接收认证请求。在方框1214中,OAuth授权服务器确定和该认证请求有关的身份域。在一个实施例中,认证请求指定身份域。在另一实施例中,OAuth授权服务器可以查阅所存储的数据,以确定与指定的用户关联的身份域。在方框1216中,OAuth授权服务器应用策略,以确定自适应访问管理器是否应当响应于认证请求而被调用。在一个实施例中,所应用的策略可以是特定于身份域的策略,使得应用于认证请求的策略的选择依赖于该认证请求所源自的身份域。策略可以指示例如自适应访问管理器只有当认证请求源自移动设备时才应当被调用。认证请求本身可以指定它是否源自移动设备。如果可适用的策略的评估指示自适应访问管理器应当被调用,则控制传递到方框1220。 否则,控制传递到方框1218。
在方框1218中,OAuth授权服务器相对于指定的用户执行标准认证处理,而不调用任何自适应访问管理器。在这种情况下,参照图12描述的技术结束。
作为替代,在方框1220中,OAuth授权服务器对位于在映射到方框1214中确定的身份域的服务简档中指定的URL处的自适应访问管理器进行调用。该调用可以包括和认证请求有关的信息,诸如用户的身份和请求的来源(例如,IP地址,等等)。基于这种信息,被调用的自适应访问管理器可以做出关于是否应当需要超过简单密码的某种更强形式的认证的决定。例如,更强形式的认证可以涉及回答只有真实用户才知道答案的一个或多个挑战问题,和/或以带外(out-of-band)方式发送到已知属于真实用户的文本消息地址的一次性代码。在方框1222中,OAuth授权服务器从在方框1220中被调用的自适应访问管理器接收至少是否更强的认证应当被执行的指示。在一个实施例中,这种指示还可以指示一种或多种更强的认证应当被执行,其中所述一种或多种更强的认证中的一些在上面的例子中进行了讨论。在方框1224中,OAuth授权服务器基于自适应访问管理器的响应确定是否要执行更强的认证。如果自适应访问管理器的响应指示更强的认证应当被执行,则控制传递到方框1226。否则,控制传递回方框1218。
在方框1226中,OAuth授权服务器尝试利用比标准认证处理更强的认证处理来认证用户,或者除标准认证处理之外,还利用比标准认证处理更强的认证处理来认证用户。在一个实施例中,这涉及执行由自适应访问管理器的响应指定的一种或多种类型的更强认证。
对同意管理利用具象状态传输(REST)
在典型的场景中,与网站(诸如社交媒体网站或电子邮件网站)集成的应用可以从用户请求让该应用访问网站关于用户维护的个人信息(诸如用户的联系人列表)的许可。用户可以准许或拒绝这种许可。 应用通过其请求这种许可的处理是同意管理。如果被准许,则许可是同意。在应用从用户请求许可时,网站通常将认证用户。
在请求同意的处理中,应用将使用基于超文本传输协议(HTTP)的重定向操作,以便使用户的浏览器从拥有应用寻求访问的用户的信息的网站加载页面。通过这种页面,网站将通过请求用户的身份和密码来认证用户。在认证用户之后,网站可以向用户公开应用的身份,以及应用寻求访问的信息(例如,联系人列表)的范围。然后,用户可以告诉网站用户是否同意让应用访问该网站上的信息。如果用户给出同意,则网站可以与用户的帐户关联地存储该同意。以后,用户可以请求网站显示用户给予各种应用的所有同意。如果用户希望,则用户可以指示网站撤消选定的同意。当应用具有同意时,应用可以访问用户已同意访问的信息,而无需再次从这个用户请求同意。
在一些情况下,应用需要通过其获得用户的同意的接口不是基于互联网浏览器的接口。接口的这种备选类型可以不设计为使用或理解HTTP,并且因此,可能无法领会通常用作同意管理的一部分的HTTP重定向或无法对其作出适当反应。例如,通过电视接口与用户交互的应用可能想获得用户的同意,但电视接口可能未被设计为处理HTML重定向。
因此,在本发明的一个实施例中,提供了一种机制,同意可以通过该机制被管理,而不管接口是否是基于互联网浏览器的,也不管接口是否是HTTP兼容的。在本发明的一个实施例中,OAuth授权服务器支持用于同意管理的RESTful接口。例如,响应于用户按下他的电视遥控器上的某个按钮,在用户的电视机上执行的软件可以调用服务器的RESTful接口。通过RESTful接口,该软件可以回调服务器并且可以保存通过按下按钮所提供的同意。相同的RESTful接口也可以被用来以后撤销这种同意。利用RESTful接口,客户端应用可以使客户端应用可使用的定制用户接口驱动同意管理处理。在一个实施例中,在基于REST的同意管理处理中不涉及基于HTML的重定向。REST更详细地在Fielding,Roy Thomas,Architectural Styles and the Design of Network-based Software Architectures,Doctoral dissertation,University of California,Irvine,2000当中描述,其通过引用被结合于此。REST还在美国专利申请公开No.2013/0081128和美国专利申请公开No.2013/0086669中讨论,其中每个申请都通过引用被结合于此。
图13是根据本发明的一个实施例的示出一种技术的例子的流程图,通过该技术,OAuth授权服务器提供用于同意管理的具象状态传输(REST)接口。在方框1302中,OAuth授权服务器向软件应用暴露基于REST的接口。在方框1304中,OAuth授权服务器通过基于REST的接口从软件应用接收基于REST的请求。基于REST的请求可以指定与指定的用户关联的信息的范围。在方框1306中,响应于基于REST的请求,OAuth授权服务器通过基于REST的接口从软件应用请求与指定的用户关联的认证凭证(例如,密码)。在方框1308中,OAuth授权服务器通过基于REST的接口从软件应用接收凭证。在方框1310中,OAuth授权服务器基于接收到的凭证认证指定的用户。在方框1312中,OAuth授权服务器通过基于REST的接口询问用户是否用户同意让软件应用访问由信息的范围指定的信息。在方框1314中,OAuth授权服务器通过基于REST的接口接收用户的同意。在方框1316中,OAuth授权服务器存储软件应用与信息范围之间的映射。其后,软件应用可以根据所存储的映射而访问信息范围之内的信息;软件应用不需要重新获得用户对访问该信息的同意。在一些实施例中,用户可以通过基于REST的接口与OAuth授权服务器交互,以获得用户先前已向各个实体准许的同意列表,以及每个同意中所涉及的信息范围。在一些实施例中,用户可以通过基于REST的接口与OAuth授权服务器接口,以撤消一个或多个先前准许的同意。这种撤销会使OAuth授权服务器删除与被撤销的同意有关的映射。
用于移动应用的单点登录
在云计算环境中,来自相同供应商的多个应用可以在同一身份域的上下文中执行。当这种应用从移动设备(诸如智能电话)启动时,用户会被困扰,不知道他们是否需要提供用户身份和密码以便登录到该应用,而在此之前用户已经这么做以便登陆到来自相同供应商的另一应用。移动原生应用(mobile native application)缺乏单点登录机制。这不同于基于浏览器的互联网应用范例,在基于浏览器的互联网应用范例中由浏览器储存的cookie可以对用户是否已登录到一个网站保持跟踪,使得用户其后不需要登录到另一相关网站。
根据本发明的一个实施例,提供了一种机制,由此单点登录功能可以在移动原生应用之间可用。利用这种机制,如果用户通过提供用户的身份和密码登录到一个移动原生应用,则该用户登录到这个移动原生应用的事实可以被来自同一供应商的其它移动原生应用使用,以便允许用户访问这些其它移动原生应用,而无需单独要求用户为每一个移动原生应用提供用户身份和密码。基本上,用户可以通过登录属于信任圈的一组应用当中任何一个来登录到这些移动原生应用中的所有移动原生应用。
为了对移动原生应用启用这种单点登录功能,在一个实施例中,为可以访问应用的每个移动设备创建单独的服务器侧存储。每个移动原生应用首先在远离所有移动设备的服务器上注册。特定移动原生应用在移动设备上第一次启动时,执行注册过程。涉及第二因素的强认证可以对每个特定移动原生应用作为注册过程的一部分来执行。在信任组中的每个移动原生应用已经向服务器注册之后,对于信任组中这些应用中任何应用的认证导致在这些应用之间共享的用户会话的创建,使得如果用户在该会话处于活动状态时启动信任组内的任何其它应用,则没有密码挑战发到用户。在服务器上维护包括该组中所有应用的信任圈。
在一个实施例中,在服务器上为每个移动设备创建单独的设备存储。从特定移动设备发起的用户会话存储在用于这个移动设备的设备存储中。服务器向对该服务器注册的信任圈内的每个应用发出客户端 注册令牌。客户端注册令牌包括三个信息项:应用从其启动的移动设备的硬件标识符(例如,媒体访问控制(MAC)地址),令牌代表其被发出的用户的身份,以及令牌发到其的应用的身份。信任组中的每个应用接收客户端注册令牌,这包含相同的硬件标识符。应用标识符在由信任组内的应用拥有的令牌之间有所不同。客户端注册令牌中的硬件标识符已经由服务器签名(例如,利用加密技术)。
在创建用户会话之前,当信任组中的第一移动原生应用启动时,这个应用向OAuth授权服务器提供客户端注册令牌。OAuth授权服务器利用密码挑战认证第一移动原生应用,然后在与由客户端注册令牌指定的移动设备关联的服务器侧设备存储中存储用户会话。该用户会话可以具有指定的到期时间。当同一信任组中的另一移动原生应用启动时,这个应用也向OAuth授权服务器提供客户端注册令牌。利用客户端注册令牌中的硬件标识符,与移动设备关联的设备存储可以被解锁。服务器可以确定它是令牌中的硬件标识符的签名者。服务器可以确定与具有该硬件标识符的移动设备关联的设备存储包含有效的用户会话。响应于作出这种确定,OAuth授权服务器通知移动原生应用不需要向用户发出密码挑战;由于设备存储中有效用户会话的存在,用户可以使用信任组中的所有移动原生应用,而无需任何附加的登录过程。
在本发明的一个实施例中,单个身份域可以包含多个不同的服务简档。例如,第一服务简档可以为第一组应用建立,并且第二服务简档可以为第二组应用建立。在一个实施例中,与特定服务简档关联的所有应用都放在同一信任组中。单点登录功能可用于同一信任组内的应用。管理身份域的租户可以为其身份域中的每个服务简档指定与这个服务简档关联的应用。例如,可按照部门或雇员角色创建不同的服务简档。
图14是根据本发明的一个实施例的示出一种技术的例子的流程图,通过该技术,服务器为在与该服务器分开的移动设备上执行的多个互相相关的应用维护活动用户会话。在方框1402中,服务器(潜 在地是OAuth授权服务器)从在第一移动设备上执行的第一应用接收注册请求。在方框1404中,服务器相对于第一应用及其用户执行认证处理。在方框1406中,服务器向第一应用发送第一客户端注册令牌,该令牌指定(a)第一移动设备的硬件标识符、(b)通过认证的用户的用户身份、和(c)第一应用的身份。第一应用存储第一客户端注册令牌。
在方框1408中,服务器从在第一移动设备上执行的第二应用接收注册请求。第二应用与第一应用分开,但是可以属于第一应用也属于的信任圈组。例如,这个信任圈组中的每个应用可以是同一供应商的产品。在方框1410中,服务器相对于第二应用及其用户执行认证处理。在方框1412中,服务器向第二应用发送第二客户端注册令牌,该令牌指定(a)第一移动设备的相同硬件标识符、(b)通过认证的用户的相同用户身份、和(c)与第一应用的身份不同的第二应用的身份。第二应用存储第二客户端注册令牌。服务器还可以从在其它移动设备(诸如第二移动设备)上执行的应用接收注册请求。服务器发送到这种应用的客户端注册令牌将各自指定这些应用在其上执行的相应移动设备的硬件标识符。
在方框1414中,服务器从在特定移动设备上执行的特定应用接收特定客户端注册令牌。例如,该特定移动设备可以是第一移动设备、与第一移动设备分开的第二移动设备,或者某个其它移动设备。此外,特定应用可以是在第一移动设备上执行的第一应用、在第一移动设备上执行的第二应用、在第一移动设备上执行的某个其它应用、或者在除第一移动设备之外的某个其它移动设备上执行的某个其它应用。在方框1416中,服务器确定用于特定移动设备的用户会话是否在服务器处存在。如果用于特定移动设备的用户会话存在,则控制传递到方框1424。否则,控制传递到方框1418。
在方框1418中,服务器指示特定应用从该特定应用的用户请求认证凭证。例如,服务器可以指示特定应用挑战该特定应用的用户提供服务器已知的、与用户关联的密码。在方框1420中,在验证用户 提供的认证凭证合法之后,服务器创建并存储映射到特定移动设备的唯一身份的新用户会话。在一个实施例中,这种唯一身份是在服务器在方框1414中接收到的特定客户端注册令牌中指定的硬件标识符。
在方框1422中,服务器通知特定应用该特定应用的用户已经成功地登录到该特定应用。其后,只要用户保持登录,特定应用的用户就可以访问由该特定应用提供的功能。在一个实施例中,只要存储在服务器中的用户会话保持有效,用户就保持登录。
作为替代,在方框1424中,服务器验证在特定客户端注册令牌中指定的硬件标识符匹配在用户会话中指定的硬件标识符。如上面所讨论的,每个客户端注册令牌中发送的硬件标识符和在用户会话中指定的硬件标识符都可以由服务器利用加密技术签名,使得硬件标识符不能被伪造。在服务器验证硬件标识符匹配之后,控制传递到方框1422。在这种情况下,服务器不指示特定应用请求认证凭证,如步骤1418中那样;特定移动设备的用户先前已经登录,如通过用于这个特定移动设备的服务器侧用户会话的存在所证明的。因此,以这种方式,服务器可以提供用于在移动设备上执行的应用的单点登录功能。
移动OAUTH服务
假设OAuth授权服务器只在移动设备上的合法移动应用第一次向服务器注册时向这些应用提供客户端注册令牌,上面所讨论的用于移动应用的单点登录技术足够安全地工作。作为实施安全性的一部分,强认证–可能涉及第二因素–可以在注册时对每个移动应用执行,以确保只有合法应用接收客户端注册令牌。但是,一些黑客技术甚至仍然可能会破坏这些保障。移动设备上的应用假设可以伪装成某个其它应用。
因此,在本发明的一个实施例中,为了确认移动设备上的应用真正是所声称的应用,提供了一种带外验证机制。在Apple iOS上,提供了称为APNS–Apple推送通知服务(Apple Push Notification Service)–的机制。APNS可被用来唯一地识别移动设备上的应用。 希望与移动应用进行通信的外部源可以通过APNS向移动设备上的这些移动应用发送推送通知。APNS服务器保证这种通知将被发送到作为这些通知的目的地的特定设备上的特定应用。这种保证是基于Apple公司发给每个移动设备的证书。在应用注册APNS时,该应用将移动设备的证书呈现给Apple的APNS服务器。APNS服务器向应用返回设备令牌。APNS服务器存储设备令牌和应用和该应用在其上执行的移动设备之间的关联。应用可以将设备令牌呈现给期望向该应用发送通知的外部源。这些外部源可以将设备令牌连同外部源寻求发送到应用的每个通知一起呈现给APNS服务器。然后,APNS服务器可以向与这个设备令牌关联的应用推送每个这种通知。
因此,在至少一些移动设备中,APNS可被用作以安全的方式将消息发送到设备上的应用的机制。APNS可以被用作向OAuth授权服务器注册应用的带外机制。OAuth授权服务器可以在移动应用最初向OAuth授权服务器注册时经APNS将客户端注册令牌发送到移动应用,由此确保只有正确的移动应用将接收这个客户端注册令牌。伪装的客户端将是APNS不知道的,因此将不接收通过APNS从OAuth授权服务器推送的客户端注册令牌。在一个实施例中,在移动应用注册处理中,移动应用将从APNS接收到的设备令牌提供给OAuth授权服务器,并且其后每当OAuth授权服务器向这个移动应用传达信息时OAuth授权服务器使用这个设备令牌将信息推送到这个移动应用。
在本发明的一个备选实施例中,OAuth授权服务器不经APNS向移动应用发送整个客户端注册令牌。代替地,OAuth授权服务器将客户端注册令牌分成两个加密的部分。OAuth授权服务器经APNS将客户端注册令牌的一半发送到移动应用。OAuth授权服务器将客户端注册令牌的另一半利用超文本传输协议(HTTP)通道–通常是移动应用用来向OAuth授权服务器注册的相同通道–发送到移动应用。在接收到这两半并组合它们之后,移动应用具有完整的客户端注册令牌。这种技术甚至可以比通过APNS发送整个客户端注册更 安全。
一些移动设备不执行Apple iOS并且无法使用APNS。在本发明的一个实施例中,至少一些移动设备(诸如执行Android操作系统的设备)除了利用Google云消息传送(GCM)代替APNS用作带外令牌传输通道,还利用与上述技术类似的技术接收客户端注册令牌。
图15是根据本发明的一个实施例的示出用于通过带外通道安全地向移动设备发送客户端注册令牌使得移动设备随后可以使用这个客户端注册令牌实现单点登录功能的技术的例子的流程图。在方框1502中,OAuth授权服务器在来自移动设备上执行的应用的注册请求中接收设备令牌,该令牌唯一地识别该应用并且是应用从服务中作为应用与服务所参与的先前注册处理的一部分而先前接收的。服务与OAuth授权服务器或者OAuth授权服务器在其中执行的共享云计算环境分开,并且不由OAuth授权服务器或者OAuth授权服务器在其中执行的共享云计算环境提供或控制。在一个实施例中,服务是Apple推送通知服务(APNS)。在另一实施例中,服务是Google云消息传送(GCM)。在其它实施例中,服务可以是向应用提供唯一地识别这些应用的设备令牌的某种其它通知或消息传送服务。这种服务常常与移动设备可以从其下载应用的应用商店连接。这种应用商店通常将这种唯一应用标识符指定给这种应用,作为使这种应用可在这些应用商店中可用的处理的一部分。
在方框1504中,OAuth授权服务器响应于应用的注册请求而生成客户端注册令牌。如在上面结合图14所讨论的,在一个实施例中这种客户端注册令牌除其它信息之外还指定应用在其上执行的移动设备的MAC地址。在方框1506中,OAuth授权服务器将客户端注册令牌分成两部分。每个这样的部分包含另一部分不具有的信息。在方框1508中,OAuth授权服务器加密客户端注册令牌的每个部分。
在方框1510中,OAuth授权服务器向移动应用先前从其接收到设备令牌的服务发送设备令牌和指定客户端注册令牌的第一加密部分的通知。服务随后可以验证设备令牌的真实性并且将包括客户端注册 令牌的第一加密部分的通知推送到移动设备上的应用。应用和移动设备都被该设备令牌唯一地识别。设备令牌可以指定移动设备的MAC地址,服务可以使用该MAC地址寻址网络中的推送通知。
在方框1512中,OAuth授权服务器通过与用来发送第一加密部分的服务不相关的超文本传输协议(HTTP)通道向移动设备发送客户端注册令牌的第二加密部分。在一个实施例中,这个HTTP通道是移动设备通过其发送OAuth授权服务器在方框1502中接收到的注册请求的相同通道。移动设备随后可以接收客户端注册令牌的两个加密部分,解密每个部分,并且将解密的部分组合成完整的客户端注册令牌。其后,移动设备可以存储客户端注册令牌并且如以上结合图14所描述的那样使用该客户端注册令牌,以便为在移动设备上执行的相关应用实现单点登录功能。
硬件概述
图16绘出了用于实现其中一个实施例的分布式系统1600的简化图。在所示出的实施例中,分布式系统1600包括一个或多个客户端计算设备1602、1604、1606和1608,这些客户端计算设备配置为经一个或多个网络1610执行和操作诸如web浏览器、专属客户端(例如,Oracle Forms)等的客户端应用。服务器1612可以经由网络1610与远程客户端计算设备1602、1604、1606和1608通信耦合。
在各种实施例中,服务器1612可以适于运行由系统的一个或多个部件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的或云服务或者依据软件即服务(SaaS)模型向客户计算设备1602、1604、1606和/或1608的用户提供。操作客户端计算设备1602、1604、1606和/或1608的用户又可以利用一个或多个客户端应用与服务器1612交互,以利用由这些部件提供的服务。
在该图中所绘出的配置中,系统1600的软件部件1618、1620和1622被示为在服务器1612上实现。在其它实施例中,系统1600的 一个或多个部件和/或由这些部件提供的服务也可以由一个或多个客户端计算设备1602、1604、1606和/或1608实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以在硬件、固件、软件或其组合中实现。但应当认识到的是,各种不同的系统配置是可能的,这些配置可以与分布式系统1600不同。因此,图中所示的实施例是用于实现实施例系统的分布式系统的一个例子并且不是限制性的。
客户端计算设备1602、1604、1606和/或1608可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows的软件,和/或诸如iOS、Windows Phone、Android,BlackBerry 17、Palm OS等各种移动操作系统,并且启用互联网、电子邮件、短消息服务(SMS)、 或其它的通信协议。客户端计算设备可以是通用个人计算机,例如运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或膝上计算机。客户端计算设备可以是运行任何各种市售或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统,诸如像Google Chrome OS)当中任意一种的工作站计算机。作为替代,或附加地,客户端计算设备1602、1604、1606和1608可以是任何其它电子设备,诸如能够经(一个或多个)网络1610通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台),和/或个人消息传送设备。
虽然示例性分布式系统1600被示为具有四个客户端计算设备,但任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等的其它设备,可以与服务器1612交互。
分布式系统1600中的(一个或多个)网络1610可以是本领域技术人员熟悉的、可以利用各种市售协议当中任意一种支持数据通信的任何类型的网络,包括但不限于TCP/IP(传输控制协议/互联网协 议)、SNA(系统网络体系结构)、IPX(互联网数据包交换)、AppleTalk,等等。仅仅作为例子,(一个或多个)网络1610可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1610可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电气和电子学协会(IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器1612可以由一个或多个通用计算机、专用服务器计算机(作为例子,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器,等等)、服务器群、服务器集群、或者任何其它适当的布置和/或组合组成。在各种实施例中,服务器1612可以适于运行在前面公开内容中所描述的一个或多个服务或软件应用。例如,服务器1612可以对应于用于执行上面根据本公开内容的实施例所描述的处理的服务器。
服务器1612可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以及任何市售的服务器操作系统。服务器1612还可以运行各种附加的服务器应用和/或中间层应用当中任意一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等等可商购的这些。
在一些实现中,服务器1612可以包括一个或多个应用,以分析和整合从客户端计算设备1602、1604、1606和1608的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或事件更新可以包括但不限于馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,其可以包括与传感器数据应用、金融报价机(financial ticker)、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时 事件。服务器1612还可以包括一个或多个应用,以经由客户端计算设备1602、1604、1606和1608的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统1600还可以包括一个或多个数据库1614和1616。数据库1614和1616可以驻留在各个位置。作为例子,数据库1614和1616中的一个或多个可以驻留在服务器1612本地的非临时性存储介质上(和/或驻留在服务器1612中)。作为替代,数据库1614和1616可以远离服务器1612,并且经基于网络的或专用的连接与服务器1612通信。在一组实施例中,数据库1614和1616可以驻留在存储区域网络(SAN)中。类似地,用于执行服务器1612所具有的功能的任何必要的文件都可以适当地本地存储在服务器1612上和/或远程存储。在一组实施例中,数据库1614和1616可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图17是根据本公开内容的一个实施例的系统环境1700的一个或多个部件的简化框图,通过系统环境1700,由实施例系统的一个或多个部件提供的服务可以作为云服务被提供。在所示出的实施例中,系统环境1700包括一个或多个可以被用户用来与提供云服务的云基础设施系统1702交互的一个或多个客户端计算设备1704、1706和1708。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专用客户端应用(例如,OracleForms)或某种其它应用,其可以被客户端计算设备的用户用来与基础设施系统1702交互,以使用由云基础设施系统1702提供的服务。
应当理解,图中所绘出的云基础设施系统1702可以具有除绘出的这些之外的其它部件。另外,图中所绘出的实施例中只是可以结合本发明的实施例的云基础设施系统的一个例子。在一些其它的实施例中,云基础设施系统1702可以具有比图中所示更多或更少的部件、可以组合两个或更多个部件,或者可以具有部件的不同配置或布置。
客户端计算设备1704、1706和1708可以是类似于上述为1602、 1604、1606和1608所描述的设备的设备。
虽然示例性系统环境1700被示为具有三个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统1702交互。
(一个或多个)网络1710可以促进客户端1704、1706和1708与云基础设施系统1702之间的通信和数据交换。每个网络可以是对本领域技术人员熟悉的、可以支持利用各种商业协议中的任何一种的任何类型的网络,包括以上针对(一个或多个)网络1610描述的那些网络。
云基础设施系统1702可以包括一个或多个计算机和/或服务器,这可以包括上述用于服务器1612的这些服务器。
在某些实施例中,由云基础设施系统提供的服务可以包括按需让云基础设施系统的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施系统提供的服务可以动态地缩放,以满足其用户的需求。由云基础设施系统提供的服务的具体实例在本文中称作为“服务实例”。一般地,来自云服务提供商系统的、经由诸如互联网的通信网络对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的本地部署服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
在一些例子中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给用户的存储、托管数据库、托管web服务器、软件应用或其它服务进行受保护的计算机网络访问,或者如以其它方式在本领域中已知的。例如,服务可以包括通过互联网对云上远程存储进行受密码保护的访问。作为另一个例子,服务可以包括用于被联网的开发人员私人使用的基于web服务的托管关系数据库和脚本语言中间件引擎。作为另一个例子,服务可以包括对在云供应商的网站上托 管的电子邮件软件应用进行访问。
在某些实施例中,云基础设施系统1702可以包括以自助服务、基于订购、弹性可扩展、可靠、高可用性以及安全的方式交付给客户的一套应用、中间件和数据库服务产品。这种云基础设施系统的例子是由本受让人提供的Oracle Public Cloud。
在各种实施例中,云基础设施系统1702可以适于自动供给、管理和跟踪客户对由云基础设施系统1702提供的服务的订购。云基础设施系统1702可以经由不同的部署模型提供云服务。例如,可以根据公共云模型来提供服务,其中云基础设施系统1702由销售云服务的组织拥有(例如,被Oracle拥有)并且使得服务对一般公众和不同行业的企业可用。作为另一个例子,可以根据私有云模型来提供服务,其中云基础设施系统1702只为单个组织运营并且可以为该组织内的一个或多个实体提供服务。也可以根据社区云模型来提供云服务,其中云基础设施系统1702和由云基础设施系统1702提供的服务被相关社区中的若干个组织共享。也可以根据混合云模型来提供云服务,混合云模型是两种或更多种不同模型的组合。
在一些实施例中,由云基础设施系统1702提供的服务可以包括根据软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别提供的一个或多个服务。客户经由订购订单可以订购由云基础设施系统1702提供的一个或多个服务。云基础设施体系1702然后执行处理,以提供在客户的订购订单中的服务。
在一些实施例中,由云基础设施系统1702提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些实例中,应用服务可以经由SaaS平台由云基础设施系统提供。SaaS平台可以被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应 用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。例子包括但不限于提供用于大型组织的销售绩效管理、企业整合和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以经由PaaS平台由云基础设施系统提供。PaaS平台可以被配置为提供属于PaaS类别的云服务。平台服务的例子可以包括但不限于使组织(诸如Oracle)能够在共享、公共的架构上整合现有应用、以及构建利用由平台提供的共享服务的新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的例子包括但不限于Oracle Java云服务(Oracle Java Cloud Service,JCS)、Oracle数据库云服务(Oracle Database Cloud Service,DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用云基础设施系统支持的编程语言和工具并且也可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一个实施例中,数据库云服务可以支持使组织能够集中数据库资源并且以数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户提供平台来开发和部署各种商业应用,并且Java云服务可以为客户提供在云基础设施系统中部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,以便让客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统1702也可以包括用于提供用来向云基础设施系统的客户提供各种服务的资源的基础设施资源1730。在一个实施例中,基础设施资源1730可以包括诸如服务器、 存储设备和网络资源的硬件的预先集成和优化组合,以便执行由PaaS平台和SaaS平台提供的服务。
在一些实施例中,在云基础设施系统1702中的资源可以被多个用户共享并且动态地按需重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统1730可以使在第一时区的第一组用户能够在指定的小时数中利用云基础设施系统的资源,并且然后使相同资源能够重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统1702的不同组件或模块以及由云基础设施系统1702提供的服务共享的多个内部共享服务1732。这些内部共享服务可以包括,但不限于,安全和身份服务、集成服务、企业存储库服务、企业管理服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务,等等。
在某些实施例中,云基础设施系统1702可以在云基础设施系统中提供云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统1702接收到客户的订购等的能力。
在一个实施例中,如在该图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块1720、订单编排模块1722、订单供给模块1724、订单管理和监视模块1726、以及身份管理模块1728。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群(server farm)、服务器集群、或任何其它适当的布置和/或组合。
在示例性操作1734中,利用客户端设备(诸如客户端设备1704、1706或1708)的客户可以通过请求由云基础设施系统1702提供的一个或多个服务、和为由云基础设施系统1702提供的一个或多个服务下订购单来与云基础设施系统1702交互。在某些实施例中,客户可 以访问云用户界面(UI)、云UI 1712、云UI 1714和/或云UI 1716并且经由这些UI下订购单。响应于客户下订单而被云基础设施系统1702接收到的订单信息可以包括识别客户和客户想要订购的由云基础设施系统1702提供的一个或多个服务的信息。
在客户下订单之后,订单信息经由云UI 1712、1714和/或1716被接收。
在操作1736,订单被存储在订单数据库1718中。订单数据库1718可以是由云基础设施系统1718操作并且结合其它系统部件一起操作的若干个数据库之一。
在操作1738,订单信息被转发到订单管理模块1720。在一些情况下,订单管理模块1720可以被配置为执行与订单相关的计费和记帐功能,诸如验证订单以及在验证后预订订单。
在操作1740,关于订单的信息被传送到订单编排模块1722。订单编排模块1722可以利用订单信息来编排用于由客户所下订单的服务和资源的供给。在一些情况下,订单编排模块1722可以编排资源的供给,以利用订单供给模块1724的服务支持订购的服务。
在某些实施例中,订单编排模块1722使得能够管理与每个订单相关联的业务处理,并且应用业务逻辑以确定订单是否应该继续供给。在操作1742,当接收到新订购的订单时,订单编排模块1722发送请求到订单供给模块1724,以分配资源和配置履行订购订单所需的这些资源。订单供给模块1724使得能够分配用于客户订购的服务的资源。订单供给模块1724在由云基础设施系统1700提供的云服务和用于为了提供所请求的服务供给资源的物理实现层之间提供抽象层。订单编排模块1722可以因此与实现细节(诸如服务和资源是实际上在运行中被供给还是预先被供给并且只在请求时被分配/指定)隔离。
在操作1744,一旦服务和资源被供给,所提供的服务的通知就可以通过云基础设施系统1702的订单供给模块1724发送给在客户端设备1704、1706和/或1708处的客户。
在操作1746,客户的订购订单可以被订单管理和监视模块1726 管理和跟踪。在一些情况下,订单管理和监视模块1726可以被配置为收集订购订单中的服务的使用统计数据,诸如使用的存储量、传送的数据量、用户的数量、以及系统上线时间和系统停机时间的量。
在某些实施例中,云基础设施系统1700可以包括身份管理模块1728。身份管理模块1728可以被配置为提供身份服务,诸如在云基础设施系统1700中的访问管理和授权服务。在一些实施例中,身份管理模块1728可以控制关于希望利用由云基础设施系统1702提供的服务的客户的信息。这种信息可以包括认证这种客户的身份的信息、和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段、等等)执行哪些行为的信息。身份管理模块1728也可以包括管理关于每个客户的描述性信息和关于该描述性信息可以如何以及由谁来访问和修改。
图18示出了示例计算机系统1800,在计算机系统1800中本发明的各种实施例可以被实现。如在该图中所示出的,计算机系统1800包括经由总线子系统1802与多个外围子系统通信的处理单元1804。这些外围子系统可以包括处理加速单元1806、I/O子系统1808、存储子系统1818和通信子系统1824。存储子系统1818包括有形计算机可读存储介质1822和系统存储器1810。
总线子系统1802提供了用于让计算机系统1800的各种部件和子系统按意图彼此通信的机构。虽然总线子系统1802被示意性地示为单条总线,但是总线子系统的备选实施例可以利用多条总线。总线子系统1802可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及利用任何各种总线体系结构的局部总线。例如,这种体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1804控制计算机系统1800的操作。一个或多个处 理器可以被包括在处理单元1804中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1804可以被实现为一个或多个独立的处理单元1832和/或1834,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元1804也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例,处理单元1804可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1804中和/或存储子系统1818中。通过适当的编程,(一个或多个)处理器1804可以提供上述各种功能。计算机系统1800可以附加地包括处理加速单元1806,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1808可以包括用户界面输入设备和用户界面输出设备。用户界面输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如运动感测和/或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够通过利用手势和语音命令的自然用户接口控制诸如的Microsoft 360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括,但不限于,三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板、以及音频/视频设备(诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激 光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括例如医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括例如诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯、或者诸如音频输出设备的非视觉显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1800向用户或其它计算机输出信息的所有可能类型的设备和机构。例如,用户接口输出设备可以包括,但不限于,在视觉上传达文字、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统1800可以包括包含软件元素、被示为当前位于系统存储器1810中的存储子系统1818。系统存储器1810可以存储可加载并且可在处理单元1804上执行的程序指令,以及在这些程序执行期间所产生的数据。
依赖于计算机系统1800的配置和类型,系统存储器1810可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元1804立即访问和/或目前正被处理单元1804操作和执行的数据和/或程序模块。在一些实现中,系统存储器1810可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有助于在计算机系统1800的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为例子,但不是限制,系统存储器1810也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1812、程序数据1814、以及操作系统1816。作为例子,操作系统1816可以 包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS,等等)和/或诸如iOS、Phone、OS、9OS和OS操作系统的移动操作系统。
存储子系统1818也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1818中。这些软件模块或指令可以被处理单元1804执行。存储子系统1818也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统1818也可以包括可被进一步连接到计算机可读存储介质1822的计算机可读存储介质读取器1820。与系统存储器1810一起并且可选地与其相结合,计算机可读存储介质1822可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1822也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括无形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1800访问的任何其它介质。
作为例子,计算机可读存储介质1822可以包括从不可移除的非易失性磁介质读取或向其写入的硬盘驱动器、从可移除的非易失性磁盘读取或向其写入的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘)或其它光学介质读取或向其写入 的光盘驱动器。计算机可读存储介质1822可以包括,但不限于, 驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质1822也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD、磁阻RAM(MRAM)SSD以及使用DRAM和基于闪存存储器的SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统1800提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1824提供到其它计算机系统和网络的接口。通信子系统1824用作用于从其它系统接收数据和从计算机系统1800向其它系统发送数据的接口。例如,通信子系统1824可以使计算机系统1800能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1824可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,利用蜂窝电话技术、诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术、Wi-Fi(IEEE 1602.11系列标准)、或其它移动通信技术、或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统1824可以提供有线网络连接(例如,以太网)。
在一些实施例中,通信子系统1824也可以代表可以使用计算机系统1800的一个或多个用户接收结构化和/或非结构化数据馈送1826、事件流1828、事件更新1830等形式的输入通信。
作为例子,通信子系统1824可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送1826,诸如馈送、 更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1824也可以被配置为接收连续数据流形式的 数据,这可以包括本质上可以是连续的或无界的并且没有明确终止的实时事件的事件流1828和/或事件更新1830。产生连续数据的应用的例子可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。通信子系统1824也可以被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1826、事件流1828、事件更新1830,等等,这一个或多个数据库可以与耦合到计算机系统1800的一个或多个流式数据源计算机通信。
计算机系统1800可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在该图中绘出的计算机系统1800的描述仅仅要作为具体的例子。具有比该图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和教导,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
根据一些实施例,图19示出了根据如上所述本发明的原理配置的OAuth授权服务器1900的功能框图。服务器的功能框可以由硬件、软件或者硬件和软件的组合来实现,以执行本发明的原理。本领域技术人员将理解,图19中所述的功能框可以组合或分离成子框,以实现如上所述本发明的原理。因此,本文的描述可以支持本文所述的功能框的任何可能的组合或分离或者进一步定义。
如图19所示,OAuth授权服务器1900可以包括第一接收器1910、第一选择单元1920、第一确定单元1930和第一生成单元1940。
第一接收器1910可以在OAuth授权服务器1900处从在多个隔离的身份域当中的第一身份域的上下文中执行的第一客户端应用接收 请求。第一选择单元1920可以从OAuth授权服务器1900维护的多个OAuth服务简档中选择仅适用于第一身份域的第一OAuth服务简档。第一确定单元1930可以基于第一OAuth服务简档确定第一客户端应用是否被允许访问第一资源服务器。然后,第一生成单元1940可以响应于确定第一客户端应用被允许访问第一资源服务器,而基于OAuth授权服务器1900从第一资源服务器获得的范围信息生成用于第一客户端应用的第一令牌。
参照图19,OAuth授权服务器1900还可以包括第二接收器1950、第二选择单元1960、第二确定单元1970和第二生成单元1980。
第二接收器1950可以在OAuth授权服务器1900处从在多个隔离的身份域当中的第二身份域的上下文中执行的第二客户端应用接收请求。第二身份域与第一身份域分开。第二选择单元1960可以从OAuth授权服务器1900维护的多个OAuth服务简档中选择仅适用于第二身份域的第二OAuth服务简档。第二确定单元1970可以基于第二OAuth服务简档确定第二客户端应用是否被允许访问第二资源服务器。然后,第二生成单元1980可以响应于确定第二客户端应用被允许访问第二资源服务器而基于OAuth授权服务器1900从第二资源服务器获得的范围信息生成用于第二客户端应用的第二令牌。
在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技术人员将认识到,本发明不限于此。上述发明的各个特征和各方面可以被单独或联合使用。另外,在不背离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的这些之外的任何数目的环境和应用中被使用。因此,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (18)

1.一种计算机实现的方法,包括:
在OAuth授权服务器处,从客户端应用接收访问资源服务器的请求,所述客户端应用在多个身份域当中的特定身份域的上下文中执行;
在所述OAuth授权服务器处,识别只适用于所述多个身份域当中的所述特定身份域的服务简档,其中,所述服务简档包括识别一组资源服务器的信息,所述客户端应用在所述特定身份域的上下文中被允许访问所述一组资源服务器;
在所述OAuth授权服务器处并且基于所述服务简档中的所述信息识别的所述一组资源服务器,确定所述客户端应用在所述特定身份域的上下文中是否被允许访问所述资源服务器,其中,当确定所述资源服务器被包括在所述一组资源服务器中时,所述客户端应用被允许访问所述资源服务器;
当确定所述客户端应用在所述特定身份域的上下文中不被允许访问所述资源服务器时,在所述OAuth授权服务器处拒绝访问所述资源服务器的请求,其中,拒绝访问所述资源服务器的请求包括在所述特定身份域的上下文中阻塞从所述客户端应用到所述资源服务器的通信;
当确定所述客户端应用在所述特定身份域的上下文中被允许访问所述资源服务器时,在所述OAuth授权服务器处访问所述资源服务器,以获得所述资源服务器的范围信息;以及
在所述OAuth授权服务器处,基于从所述资源服务器获得的所述范围信息生成用于所述客户端应用访问所述资源服务器的令牌。
2.如权利要求1所述的方法,还包括:
在所述OAuth授权服务器处,接收认证所述客户端应用的认证请求;以及
当接收到所述认证请求时,从多个客户端插件当中选择映射到所述特定身份域的客户端插件,并且将所述认证请求发送给所述客户端插件。
3.如权利要求1所述的方法,还包括:
基于所述请求,识别所述客户端应用请求的服务;以及
基于所述服务,确定对于所述服务所述客户端应用要访问的所述资源服务器。
4.如权利要求1所述的方法,还包括:
使用所述服务简档确定与所述资源服务器对应的回调统一资源定位符,其中访问所述资源服务器是使用所述回调统一资源定位符进行的,并且其中,所述资源服务器基于与所述特定身份域关联的授权策略确定所述范围信息。
5.如权利要求1所述的方法,其中,所述范围信息指示对于访问由所述资源服务器提供的资源的服务所允许的一个或多个操作,并且其中,所述服务在所述请求中被指示。
6.如权利要求1所述的方法,其中,所述服务简档指示所述客户端应用被允许访问的一个或多个服务,并且其中,所述一个或多个服务由所述资源服务器提供。
7.如权利要求6所述的方法,还包括:
使用所述服务简档,确定所述客户端应用在所述请求中指示的服务没有被包括在所述客户端应用被允许访问的所述一个或多个服务中;以及
基于确定所述服务没有被包括在所述一个或多个服务中,拒绝所述请求。
8.一种OAuth授权服务器,包括:
一个或多个硬件处理器;以及
存储器,可操作地耦接到所述一个或多个硬件处理器,所述存储器存储一组指令,所述一组指令在由所述一个或多个硬件处理器执行时使所述一个或多个硬件处理器进行以下处理:
从客户端应用接收访问资源服务器的请求,所述客户端应用在多个身份域当中的特定身份域的上下文中执行;
识别只适用于所述多个身份域当中的所述特定身份域的服务简档,其中,所述服务简档包括识别一组资源服务器的信息,所述客户端应用在所述特定身份域的上下文中被允许访问所述一组资源服务器;
基于所述服务简档中的所述信息识别的所述一组资源服务器,确定所述客户端应用在所述特定身份域的上下文中是否被允许访问所述资源服务器,其中,当确定所述资源服务器被包括在所述一组资源服务器中时,所述客户端应用被允许访问所述资源服务器;
当确定所述客户端应用在所述特定身份域的上下文中不被允许访问所述资源服务器时,拒绝访问所述资源服务器的请求,其中,拒绝访问所述资源服务器的请求包括在所述特定身份域的上下文中阻塞从所述客户端应用到所述资源服务器的通信;
当确定所述客户端应用在所述特定身份域的上下文中被允许访问所述资源服务器时,访问所述资源服务器,以获得所述资源服务器的范围信息;以及
基于从所述资源服务器获得的所述范围信息生成用于所述客户端应用访问所述资源服务器的令牌。
9.如权利要求8所述的OAuth授权服务器,其中,所述一组指令在由所述一个或多个硬件处理器执行时还使所述一个或多个硬件处理器进行以下处理:
接收认证所述客户端应用的认证请求;以及
当接收到所述认证请求时,从多个客户端插件当中选择映射到所述特定身份域的客户端插件,并且将所述认证请求发送给所述客户端插件。
10.如权利要求8所述的OAuth授权服务器,其中,所述一组指令在由所述一个或多个硬件处理器执行时还使所述一个或多个硬件处理器进行以下处理:
基于所述请求,识别所述客户端应用请求的服务;以及
基于所述服务,确定对于所述服务所述客户端应用要访问的所述资源服务器。
11.如权利要求8所述的OAuth授权服务器,其中,所述一组指令在由所述一个或多个硬件处理器执行时还使所述一个或多个硬件处理器进行以下处理:
使用所述服务简档确定与所述资源服务器对应的回调统一资源定位符,其中访问所述资源服务器是使用所述回调统一资源定位符进行的,并且其中,所述资源服务器基于与所述特定身份域关联的授权策略确定所述范围信息。
12.如权利要求8所述的OAuth授权服务器,其中,所述范围信息指示对于访问由所述资源服务器提供的资源的服务所允许的一个或多个操作,并且其中,所述服务在所述请求中被指示。
13.如权利要求8所述的OAuth授权服务器,其中,所述服务简档指示所述客户端应用被允许访问的一个或多个服务,并且其中,所述一个或多个服务由所述资源服务器提供。
14.如权利要求13所述的OAuth授权服务器,其中,所述一组指令在由所述一个或多个硬件处理器执行时还使所述一个或多个硬件处理器进行以下处理:
使用所述服务简档,确定所述客户端应用在所述请求中指示的服务没有被包括在所述客户端应用被允许访问的所述一个或多个服务中;以及
基于确定所述服务没有被包括在所述一个或多个服务中,拒绝所述请求。
15.一种非临时性计算机可读存储器,包括指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器进行以下处理:
在OAuth授权服务器处,从客户端应用接收访问资源服务器的请求,所述客户端应用在多个身份域当中的特定身份域的上下文中执行;
在所述OAuth授权服务器处,识别只适用于所述多个身份域当中的所述特定身份域的服务简档,其中,所述服务简档包括识别一组资源服务器的信息,所述客户端应用在所述特定身份域的上下文中被允许访问所述一组资源服务器;
在所述OAuth授权服务器处并且基于所述服务简档中的所述信息识别的所述一组资源服务器,确定所述客户端应用在所述特定身份域的上下文中是否被允许访问所述资源服务器,其中,当确定所述资源服务器被包括在所述一组资源服务器中时,所述客户端应用被允许访问所述资源服务器;
当确定所述客户端应用在所述特定身份域的上下文中不被允许访问所述资源服务器时,在所述OAuth授权服务器处拒绝访问所述资源服务器的请求,其中,拒绝访问所述资源服务器的请求包括在所述特定身份域的上下文中阻塞从所述客户端应用到所述资源服务器的通信;
当确定所述客户端应用在所述特定身份域的上下文中被允许访问所述资源服务器时,在所述OAuth授权服务器处访问所述资源服务器,以获得所述资源服务器的范围信息;以及
在所述OAuth授权服务器处,基于从所述资源服务器获得的所述范围信息生成用于所述客户端应用访问所述资源服务器的令牌。
16.如权利要求15所述的非临时性计算机可读存储器,其中,所述范围信息指示对于访问由所述资源服务器提供的资源的服务所允许的一个或多个操作,并且其中,所述服务在所述请求中被指示。
17.如权利要求15所述的非临时性计算机可读存储器,其中,所述指令在由所述一个或多个处理器执行时还使所述一个或多个处理器进行以下处理:
基于所述请求,识别所述客户端应用请求的服务;以及
基于所述服务,确定对于所述服务所述客户端应用要访问的所述资源服务器。
18.如权利要求15所述的非临时性计算机可读存储器,其中,所述服务简档指示所述客户端应用被允许访问的一个或多个服务,并且其中,所述一个或多个服务由所述资源服务器提供。
CN201480057803.9A 2013-09-20 2014-09-19 计算机实现的方法、授权服务器以及计算机可读存储器 Active CN105659558B (zh)

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
US201361880335P 2013-09-20 2013-09-20
US61/880,335 2013-09-20
US14/266,496 2014-04-30
US14/266,515 US9544294B2 (en) 2011-09-29 2014-04-30 Pluggable authorization policies
US14/266,472 US9197623B2 (en) 2011-09-29 2014-04-30 Multiple resource servers interacting with single OAuth server
US14/266,486 2014-04-30
US14/266,454 2014-04-30
US14/266,472 2014-04-30
US14/266,466 2014-04-30
US14/266,505 2014-04-30
US14/266,478 US9237145B2 (en) 2011-09-29 2014-04-30 Single sign-on (SSO) for mobile applications
US14/266,478 2014-04-30
US14/266,466 US9350718B2 (en) 2011-09-29 2014-04-30 Using representational state transfer (REST) for consent management
US14/266,505 US9578014B2 (en) 2011-09-29 2014-04-30 Service profile-specific token attributes and resource server token attribute overriding
US14/266,486 US9374356B2 (en) 2011-09-29 2014-04-30 Mobile oauth service
US14/266,454 US9699170B2 (en) 2011-09-29 2014-04-30 Bundled authorization requests
US14/266,515 2014-04-30
US14/266,496 US9531697B2 (en) 2011-09-29 2014-04-30 Configurable adaptive access manager callouts
PCT/US2014/056466 WO2015042349A1 (en) 2013-09-20 2014-09-19 Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service

Publications (2)

Publication Number Publication Date
CN105659558A CN105659558A (zh) 2016-06-08
CN105659558B true CN105659558B (zh) 2018-08-31

Family

ID=55167638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480057803.9A Active CN105659558B (zh) 2013-09-20 2014-09-19 计算机实现的方法、授权服务器以及计算机可读存储器

Country Status (4)

Country Link
US (3) US9450963B2 (zh)
EP (1) EP3047626B1 (zh)
JP (1) JP6033990B2 (zh)
CN (1) CN105659558B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US12137091B2 (en) 2018-05-31 2024-11-05 Oracle International Corporation Single sign-on enabled with OAuth token

Families Citing this family (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9081951B2 (en) * 2011-09-29 2015-07-14 Oracle International Corporation Mobile application, identity interface
US9544294B2 (en) 2011-09-29 2017-01-10 Oracle International Corporation Pluggable authorization policies
US8893250B2 (en) 2012-02-10 2014-11-18 Protegrity Corporation Tokenization in mobile environments
JP6033990B2 (ja) 2013-09-20 2016-11-30 オラクル・インターナショナル・コーポレイション 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス
US9471807B1 (en) * 2014-11-05 2016-10-18 Emc Corporation System and method for creating a security slices with storage system resources and related operations relevant in software defined/as-a-service models, on a purpose built backup appliance (PBBA)/protection storage appliance natively
US9876780B2 (en) 2014-11-21 2018-01-23 Sonos, Inc. Sharing access to a media service
US9881166B2 (en) 2015-04-16 2018-01-30 International Business Machines Corporation Multi-focused fine-grained security framework
US10949841B2 (en) * 2015-05-07 2021-03-16 Visa International Service Association Provisioning of access credentials using device codes
US10084794B2 (en) 2015-06-02 2018-09-25 ALTR Solutions, Inc. Centralized access management of web-based or native applications
US10104084B2 (en) * 2015-07-30 2018-10-16 Cisco Technology, Inc. Token scope reduction
US9554279B1 (en) * 2015-11-12 2017-01-24 Finjan Mobile, Inc. Authorized areas of authentication
CN108292454B (zh) * 2015-12-03 2020-08-14 诺基亚技术有限公司 访问管理方法及装置
US10567381B1 (en) * 2015-12-17 2020-02-18 Amazon Technologies, Inc. Refresh token for credential renewal
US20170187726A1 (en) * 2015-12-24 2017-06-29 Zeta (Better World Technology Pvt. Ltd.) Cross-domain message authentication
US10341862B2 (en) * 2016-02-05 2019-07-02 Verizon Patent And Licensing Inc. Authenticating mobile devices
US9740740B1 (en) 2016-02-22 2017-08-22 Pebble Technology Corp. Using metadata to take action on an SMS message on a proprietary system
US10097528B2 (en) * 2016-02-27 2018-10-09 Ncr Corporation Non-repeatable challenge-response authentication
US10055578B1 (en) * 2016-05-17 2018-08-21 Sprint Communications Company L.P. Secure software containers
US11063926B1 (en) * 2016-05-19 2021-07-13 Citibank, N.A. Devices and methods for single sign-on and regulatory compliance
WO2017208305A1 (ja) * 2016-05-30 2017-12-07 楽天株式会社 サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体
WO2017219007A1 (en) * 2016-06-17 2017-12-21 Weimer Jonathan Blockchain systems and methods for user authentication
US20180012196A1 (en) 2016-07-07 2018-01-11 NextEv USA, Inc. Vehicle maintenance manager
US20180063152A1 (en) * 2016-08-29 2018-03-01 Matt Erich Device-agnostic user authentication and token provisioning
US10375073B2 (en) 2016-08-29 2019-08-06 International Business Machines Corporation Configuration based client for OAuth authorization with arbitrary services and applications
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
EP3513540B1 (en) * 2016-09-14 2024-07-10 Oracle International Corporation Single sign-on and single logout functionality for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US20180091490A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Authentication framework for a client of a remote database
US10873511B2 (en) * 2016-11-22 2020-12-22 Airwatch Llc Management service migration for managed devices
US10063533B2 (en) * 2016-11-28 2018-08-28 International Business Machines Corporation Protecting a web server against an unauthorized client application
KR20180065428A (ko) * 2016-12-07 2018-06-18 삼성전자주식회사 디바이스를 클라우드 서버에 등록시키는 방법 및 장치
KR102645768B1 (ko) * 2016-12-07 2024-03-11 엔에이치엔 주식회사 다중 계정 통합 관리 시스템 및 방법
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10554641B2 (en) 2017-02-27 2020-02-04 International Business Machines Corporation Second factor authorization via a hardware token device
JP6857065B2 (ja) * 2017-03-27 2021-04-14 キヤノン株式会社 認証認可サーバー、リソースサーバー、認証認可システム、認証方法及びプログラム
US10623410B2 (en) * 2017-04-24 2020-04-14 Microsoft Technology Licensing, Llc Multi-level, distributed access control between services and applications
US10972453B1 (en) * 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US10089801B1 (en) 2017-05-15 2018-10-02 Amazon Technologies, Inc. Universal access control device
US10708053B2 (en) * 2017-05-19 2020-07-07 Intuit Inc. Coordinating access authorization across multiple systems at different mutual trust levels
CN108964885B (zh) * 2017-05-27 2021-03-05 华为技术有限公司 鉴权方法、装置、系统和存储介质
JP6740545B2 (ja) * 2017-05-30 2020-08-19 日本電気株式会社 情報処理装置、検証装置、情報処理システム、情報処理方法、及び、プログラム
US10511593B2 (en) 2017-06-13 2019-12-17 Microsoft Technology Licensing, Llc Cross cloud application access
US10469479B2 (en) 2017-06-13 2019-11-05 Microsoft Technology Licensing, Llc Cross cloud tenant discovery
US10136318B1 (en) * 2017-06-21 2018-11-20 At&T Intellectual Property I, L.P. Authentication device selection to facilitate authentication via an updateable subscriber identifier
US10547622B2 (en) * 2017-06-30 2020-01-28 International Busines Machines Corporation Extended OAuth architecture support in a scalable environment
US10530771B2 (en) 2017-06-30 2020-01-07 Verizon Patent And Licensing Inc. System and method of inter-account resource access management
US20190014095A1 (en) 2017-07-06 2019-01-10 At&T Intellectual Property I, L.P. Facilitating provisioning of an out-of-band pseudonym over a secure communication channel
US11290438B2 (en) 2017-07-07 2022-03-29 Oracle International Corporation Managing session access across multiple data centers
US10581918B2 (en) * 2017-07-21 2020-03-03 Itron, Inc. Open authorization claim scheme to secure resources
US10491596B2 (en) 2017-07-31 2019-11-26 Vmware, Inc. Systems and methods for controlling email access
US10491595B2 (en) * 2017-07-31 2019-11-26 Airwatch, Llc Systems and methods for controlling email access
US11681568B1 (en) 2017-08-02 2023-06-20 Styra, Inc. Method and apparatus to reduce the window for policy violations with minimal consistency assumptions
US10721222B2 (en) * 2017-08-17 2020-07-21 Citrix Systems, Inc. Extending single-sign-on to relying parties of federated logon providers
US10355864B2 (en) * 2017-08-29 2019-07-16 Citrix Systems, Inc. Policy based authentication
US10958659B2 (en) 2017-08-30 2021-03-23 Red Hat, Inc. Setting application permissions in a cloud computing environment
CN109511115B (zh) * 2017-09-14 2020-09-29 华为技术有限公司 一种授权方法和网元
US10931673B2 (en) * 2017-09-19 2021-02-23 Amazon Technologies, Inc. Policy activation for client applications
US10505733B2 (en) 2017-09-25 2019-12-10 Citrix Systems, Inc. Generating and managing a composite identity token for multi-service use
US10498538B2 (en) * 2017-09-25 2019-12-03 Amazon Technologies, Inc. Time-bound secure access
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US11050730B2 (en) * 2017-09-27 2021-06-29 Oracle International Corporation Maintaining session stickiness across authentication and authorization channels for access management
US11316689B2 (en) * 2017-09-29 2022-04-26 Oracle International Corporation Trusted token relay infrastructure
WO2019078877A1 (en) 2017-10-20 2019-04-25 Hewlett Packard Enterprise Development Lp TRANSMITTING OR RECEIVING BLOCK CHAIN INFORMATION
US11604890B2 (en) 2017-10-20 2023-03-14 Hewlett Packard Enterprise Development Lp Accessing information based on privileges
CN111434084B (zh) * 2017-10-20 2022-07-05 慧与发展有限责任合伙企业 来自实体的访问信息的许可
US11403628B2 (en) 2017-10-20 2022-08-02 Hewlett Packard Enterprise Development Lp Authenticating and paying for services using blockchain
CN110121873B (zh) * 2017-10-23 2021-06-01 华为技术有限公司 一种访问令牌管理方法、终端和服务器
US10587618B2 (en) * 2017-11-14 2020-03-10 Microsoft Technology Licensing, Llc Dual binding
US10536461B2 (en) * 2017-12-19 2020-01-14 Sap Se Service identity propagation between applications and reusable services
JP2019125075A (ja) * 2018-01-15 2019-07-25 富士通株式会社 ストレージ装置、ストレージシステムおよびプログラム
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10841313B2 (en) * 2018-02-21 2020-11-17 Nutanix, Inc. Substituting callback URLs when using OAuth protocol exchanges
US20190286840A1 (en) * 2018-03-15 2019-09-19 Honeywell International Inc. Controlling access to customer data by external third parties
US10853511B2 (en) * 2018-03-19 2020-12-01 Salesforce.Com, Inc. Securely accessing and processing data in a multi-tenant data store
US10922401B2 (en) * 2018-04-18 2021-02-16 Pivotal Software, Inc. Delegated authorization with multi-factor authentication
US10838739B2 (en) 2018-04-19 2020-11-17 Circle Media Labs Inc. Network-connected computing devices and methods for executing operating programs in RAM memory
US10275613B1 (en) 2018-04-20 2019-04-30 Capital One Services, Llc Identity breach notification and remediation
US10855669B2 (en) * 2018-05-03 2020-12-01 Vmware, Inc. Authentication service
US10855670B2 (en) 2018-05-03 2020-12-01 Vmware, Inc. Polling service
EP3794790B1 (en) * 2018-05-18 2023-11-15 Telefonaktiebolaget LM Ericsson (publ) Application program access control
WO2019240793A1 (en) * 2018-06-14 2019-12-19 Hewlett-Packard Development Company, L.P. Access tokens with scope expressions of personal data policies
US10893033B2 (en) 2018-06-28 2021-01-12 Salesforce.Com, Inc. Accessing client credential sets using a key
US11146543B2 (en) * 2018-07-12 2021-10-12 Vmware, Inc. Contact consolidation across multiple services
US10904238B2 (en) * 2018-07-13 2021-01-26 Sap Se Access token management for state preservation and reuse
US11558193B2 (en) * 2018-08-13 2023-01-17 Google Llc Location-based access to controlled access resources
SG11202101525PA (en) * 2018-08-17 2021-03-30 Visa Int Service Ass Secure data transfer system and method
US11080410B1 (en) 2018-08-24 2021-08-03 Styra, Inc. Partial policy evaluation
US11477217B2 (en) 2018-09-18 2022-10-18 Cyral Inc. Intruder detection for a network
US11470084B2 (en) * 2018-09-18 2022-10-11 Cyral Inc. Query analysis using a protective layer at the data source
US11645375B2 (en) 2018-09-27 2023-05-09 International Business Machines Corporation Authorization of resource access
US11263348B2 (en) * 2018-09-28 2022-03-01 Atlassian Pty Ltd. Managing content authorization in a federated application system
US10771570B2 (en) 2018-10-15 2020-09-08 Citrix Systems, Inc. Scalable message passing architecture a cloud environment
US11245682B2 (en) * 2018-10-18 2022-02-08 Oracle International Corporation Adaptive authorization using access token
CN111147436B (zh) * 2018-11-05 2022-03-11 华为技术有限公司 一种网络切片授权的方法及通信装置
DE102018219067A1 (de) * 2018-11-08 2020-05-14 Robert Bosch Gmbh Transparenzmechanismus zur lokalen Komposition von personenbezogenen, verteilt gespeicherten Nutzerdaten
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US12105789B2 (en) * 2019-03-27 2024-10-01 Visa International Service Association Enhanced consumer device validation
US11184666B2 (en) 2019-04-01 2021-11-23 Sonos, Inc. Access control techniques for media playback systems
IT201900005876A1 (it) * 2019-04-16 2020-10-16 Roberto Griggio Sistema e metodo per la gestione delle credenziali di accesso multi-dominio di un utente abilitato ad accedere ad una pluralità di domini
US11277267B2 (en) * 2019-05-07 2022-03-15 International Business Machines Corporation Fine-grained token based access control
CN112383663B (zh) * 2019-05-08 2022-03-04 华为技术有限公司 一种显示的方法及设备
CN110278187B (zh) * 2019-05-13 2021-11-16 网宿科技股份有限公司 多终端单点登录方法、系统、同步服务器及介质
US11017064B2 (en) 2019-05-14 2021-05-25 Bank Of America Corporation Authentication using interprogram communication
US11652631B2 (en) 2019-06-27 2023-05-16 International Business Machines Corporation Distribution of security credentials
US11206269B1 (en) * 2019-06-28 2021-12-21 Amazon Technologies, Inc. Managing non-persistent privileged and non-privileged operator access to infrastructure systems hosted in a cloud computing environment
US11115401B2 (en) 2019-07-08 2021-09-07 Bank Of America Corporation Administration portal for simulated single sign-on
US11323432B2 (en) 2019-07-08 2022-05-03 Bank Of America Corporation Automatic login tool for simulated single sign-on
US11089005B2 (en) 2019-07-08 2021-08-10 Bank Of America Corporation Systems and methods for simulated single sign-on
US11134078B2 (en) 2019-07-10 2021-09-28 Oracle International Corporation User-specific session timeouts
CN110493319B (zh) * 2019-07-23 2022-07-12 视联动力信息技术股份有限公司 数据同步方法、系统及装置
US11423135B1 (en) 2019-07-31 2022-08-23 Intuit Inc. Offline processing using on-demand access tokens
US11405207B2 (en) * 2019-07-31 2022-08-02 The Toronto-Dominion Bank Dynamic implementation and management of hash-based consent and permissioning protocols
US11768925B2 (en) * 2019-08-19 2023-09-26 Google Llc Smart device management resource picker
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
CN110661817B (zh) * 2019-10-25 2022-08-26 新华三大数据技术有限公司 资源访问方法、装置及服务网关
JP2021082004A (ja) * 2019-11-19 2021-05-27 キヤノン株式会社 認可サーバー、システム、システムの方法、および認可サーバーのプログラム
GB2590421A (en) * 2019-12-17 2021-06-30 Daimler Ag Method for operating a multimedia system
US11863673B1 (en) * 2019-12-17 2024-01-02 APPDIRECT, Inc. White-labeled data connections for multi-tenant cloud platforms
US11507627B2 (en) * 2019-12-19 2022-11-22 Sap Se Analytics content network for content delivery embedding
FR3105849B1 (fr) * 2019-12-27 2022-01-07 Bull Sas Procede et systeme de gestion d’autorisation pour une plateforme de gouvernance unifiee d’une pluralite de solutions de calcul intensif
US11140148B1 (en) * 2020-03-30 2021-10-05 Konica Minolta Business Solution U.S.A., Inc. Method and system for instant single sign-on workflows
US11863994B2 (en) 2020-04-13 2024-01-02 The Government of the United States of America, represented by the Secretary of Homeland Security System and network for access control using mobile identification credential for sign-on authentication
US20210367982A1 (en) * 2020-05-22 2021-11-25 Coqual Inc. Hosted confidential discussion system
US11876796B2 (en) * 2020-06-09 2024-01-16 Strata Identity, Inc. Systems, methods, and storage media for abstraction and enforcement in an identity infrastructure
WO2022000155A1 (en) * 2020-06-29 2022-01-06 Nokia Shanghai Bell Co., Ltd. Access control of service based management framework
US11824856B1 (en) * 2020-07-10 2023-11-21 Amazon Technologies, Inc. Chaining of authorizations
US11706260B2 (en) 2020-08-21 2023-07-18 Oracle International Corporation Security zone policy enforcement in a cloud infrastructure system
IL276868A (en) * 2020-08-23 2022-03-01 Google Llc Processing requests to control information stored on multiple servers
US11671419B2 (en) 2020-09-30 2023-06-06 APPDIRECT, Inc. Multi-cloud data connections for white-labeled platforms
EP3979103A3 (en) 2020-10-01 2022-07-06 Nokia Technologies Oy Apparatus, methods, and computer programs
US20230362199A1 (en) * 2020-10-09 2023-11-09 Nokia Technologies Oy Mechanism for dynamic authorization
EP3996448A1 (en) * 2020-11-05 2022-05-11 Sony Group Corporation Flexible and dynamic resource allocation
US12047780B2 (en) 2021-01-07 2024-07-23 Nokia Technologies Oy Authorization in cellular communication systems
US20220382849A1 (en) * 2021-05-25 2022-12-01 Vmware, Inc. Credentials management and usage in application modernization
CN113347242B (zh) * 2021-05-28 2023-04-18 Oppo广东移动通信有限公司 跨设备资源访问方法、装置、存储介质及电子设备
US12010125B2 (en) * 2021-06-29 2024-06-11 Microsoft Technology Licensing, Llc Anomaly detection in an application with delegate authorization
US12015607B2 (en) 2021-08-13 2024-06-18 The Toronto-Dominion Bank System and method for authenticating client devices communicating with an enterprise system
US11546358B1 (en) * 2021-10-01 2023-01-03 Netskope, Inc. Authorization token confidence system
CN114499977B (zh) * 2021-12-28 2023-08-08 天翼云科技有限公司 一种认证方法及装置
CN114138375A (zh) * 2021-12-30 2022-03-04 高新兴智联科技有限公司 一种物联网服务云架构及应用该云架构的射频测试系统
GB2615756B (en) * 2022-02-15 2024-03-20 Paycasso Verify Ltd An authentication system
US11882057B2 (en) * 2022-03-28 2024-01-23 Bank Of America Corporation Pluggable cloud security system
CN114650183B (zh) * 2022-04-11 2024-07-19 远景智能国际私人投资有限公司 资源管理方法、装置、服务器及存储介质
CN116248670B (zh) * 2023-03-24 2023-11-07 安芯网盾(北京)科技有限公司 一种文件传输控制方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546648A (zh) * 2012-01-18 2012-07-04 Ut斯达康通讯有限公司 一种资源访问授权的方法
CN102611709A (zh) * 2012-03-31 2012-07-25 奇智软件(北京)有限公司 一种对第三方资源的访问控制方法及系统

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010056354A1 (en) 2000-05-05 2001-12-27 Feit Michelle Stacy Methods and systems for requesting services from service providers over a communications network
US20020091945A1 (en) * 2000-10-30 2002-07-11 Ross David Justin Verification engine for user authentication
US6879584B2 (en) 2001-01-31 2005-04-12 Motorola, Inc. Communication services through multiple service providers
US20020184535A1 (en) * 2001-05-30 2002-12-05 Farah Moaven Method and system for accessing a resource in a computing system
US7243369B2 (en) * 2001-08-06 2007-07-10 Sun Microsystems, Inc. Uniform resource locator access management and control system and method
US7207058B2 (en) 2002-12-31 2007-04-17 American Express Travel Related Services Company, Inc. Method and system for transmitting authentication context information
US7685206B1 (en) * 2004-02-12 2010-03-23 Microsoft Corporation Authorization and access control service for distributed network resources
US7836484B2 (en) * 2004-05-11 2010-11-16 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for providing access to an identity service
JP2005341090A (ja) * 2004-05-26 2005-12-08 Ricoh Co Ltd ビジネスオフィス装置
US8607322B2 (en) 2004-07-21 2013-12-10 International Business Machines Corporation Method and system for federated provisioning
US7774830B2 (en) 2005-03-14 2010-08-10 Microsoft Corporation Access control policy engine controlling access to resource based on any of multiple received types of security tokens
US7784092B2 (en) * 2005-03-25 2010-08-24 AT&T Intellectual I, L.P. System and method of locating identity providers in a data network
US7788494B2 (en) * 2005-06-28 2010-08-31 Intel Corporation Link key injection mechanism for personal area networks
US8862551B2 (en) 2005-12-29 2014-10-14 Nextlabs, Inc. Detecting behavioral patterns and anomalies using activity data
US8639939B2 (en) 2006-07-07 2014-01-28 Sandisk Technologies Inc. Control method using identity objects
US20090193507A1 (en) 2008-01-28 2009-07-30 Wael Ibrahim Authentication messaging service
US9003050B2 (en) 2008-04-11 2015-04-07 Mobitv, Inc. Distributed and scalable content streaming architecture
US8141140B2 (en) 2008-05-23 2012-03-20 Hsbc Technologies Inc. Methods and systems for single sign on with dynamic authentication levels
GB2460412B (en) * 2008-05-28 2012-09-19 Hewlett Packard Development Co Information sharing
US20090296936A1 (en) * 2008-05-30 2009-12-03 Contineo Systems System and method for creating a secure billing identity for an end user using an identity association
US8250635B2 (en) 2008-07-13 2012-08-21 International Business Machines Corporation Enabling authentication of openID user when requested identity provider is unavailable
US20100043065A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Single sign-on for web applications
US8763102B2 (en) 2008-09-19 2014-06-24 Hewlett-Packard Development Company, L.P. Single sign on infrastructure
US8869256B2 (en) * 2008-10-21 2014-10-21 Yahoo! Inc. Network aggregator
US20100146570A1 (en) 2008-12-10 2010-06-10 Electronics And Telecommunications Research Institute Web service gateway for iptv service and method of operating the same
US8752153B2 (en) * 2009-02-05 2014-06-10 Wwpass Corporation Accessing data based on authenticated user, provider and system
US8364970B2 (en) * 2009-02-18 2013-01-29 Nokia Corporation Method and apparatus for providing enhanced service authorization
EP3832975A1 (en) 2009-05-29 2021-06-09 Alcatel Lucent System and method for accessing private digital content
FR2948053B1 (fr) * 2009-07-15 2011-07-29 Hameur Sa Ensemble et procede pour le nettoyage d'une grille
US9490984B2 (en) 2009-09-14 2016-11-08 Interdigital Patent Holdings, Inc. Method and apparatus for trusted authentication and logon
US8522335B2 (en) 2009-12-01 2013-08-27 International Business Machines Corporation Token mediation service in a data management system
EP2529527B1 (en) * 2010-01-25 2015-12-02 Nokia Solutions and Networks Oy Method for controlling access to resources
EP2532132A1 (en) * 2010-02-05 2012-12-12 Nokia Siemens Networks Oy Improved identity management
US8353019B2 (en) 2010-03-26 2013-01-08 Canon Kabushiki Kaisha Security token destined for multiple or group of service providers
US9391978B2 (en) * 2010-05-25 2016-07-12 Novell, Inc. Multiple access authentication
US8402527B2 (en) * 2010-06-17 2013-03-19 Vmware, Inc. Identity broker configured to authenticate users to host services
US20110314532A1 (en) * 2010-06-17 2011-12-22 Kyle Dean Austin Identity provider server configured to validate authentication requests from identity broker
US9189649B2 (en) * 2010-06-25 2015-11-17 International Business Machines Corporation Security model for workflows aggregating third party secure services
WO2012004916A1 (ja) * 2010-07-09 2012-01-12 日本電気株式会社 サービス提供システム
US8474017B2 (en) 2010-07-23 2013-06-25 Verizon Patent And Licensing Inc. Identity management and single sign-on in a heterogeneous composite service scenario
US20120028609A1 (en) * 2010-07-27 2012-02-02 John Hruska Secure financial transaction system using a registered mobile device
WO2012045376A1 (en) * 2010-10-08 2012-04-12 Telefónica, S.A. A method, a system and a network element for ims control layer authentication from external domains
US8544068B2 (en) * 2010-11-10 2013-09-24 International Business Machines Corporation Business pre-permissioning in delegated third party authorization
US20120144501A1 (en) 2010-12-03 2012-06-07 Salesforce.Com, Inc. Regulating access to protected data resources using upgraded access tokens
US8832271B2 (en) * 2010-12-03 2014-09-09 International Business Machines Corporation Identity provider instance discovery
US9225532B2 (en) 2010-12-06 2015-12-29 Verizon Patent And Licensing Inc. Method and system for providing registration of an application instance
US8769646B2 (en) * 2010-12-08 2014-07-01 Disney Enterprises, Inc. System and method for associating a universal user identification and a domain specific user identification
US8713589B2 (en) 2010-12-23 2014-04-29 Microsoft Corporation Registration and network access control
US8924489B2 (en) 2011-01-05 2014-12-30 Apple Inc. Message push notification client improvements for multi-user devices
US8990557B2 (en) 2011-02-17 2015-03-24 Ebay Inc. Identity assertion framework
US20130024371A1 (en) 2011-02-22 2013-01-24 Prakash Hariramani Electronic offer optimization and redemption apparatuses, methods and systems
US20120227098A1 (en) * 2011-03-03 2012-09-06 Microsoft Corporation Sharing user id between operating system and application
US20120233334A1 (en) 2011-03-07 2012-09-13 Avaya Inc. Shared media access for real time first and third party control
US8533796B1 (en) * 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US20120278876A1 (en) * 2011-04-28 2012-11-01 Mcdonald Greg System, method and business model for an identity/credential service provider
WO2012155298A1 (zh) 2011-05-18 2012-11-22 Chen Shanzhen 基于蜂窝移动通讯网络和ip网络的自动切换系统及方法
US20120331536A1 (en) 2011-06-23 2012-12-27 Salesforce.Com, Inc. Seamless sign-on combined with an identity confirmation procedure
US8650622B2 (en) * 2011-07-01 2014-02-11 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for authorizing and authentication interworking
US8756692B2 (en) 2011-07-06 2014-06-17 Eureka! It Works, Llc Controlling network-based applications with social media postings
US9418216B2 (en) * 2011-07-21 2016-08-16 Microsoft Technology Licensing, Llc Cloud service authentication
US9081951B2 (en) 2011-09-29 2015-07-14 Oracle International Corporation Mobile application, identity interface
US9544294B2 (en) 2011-09-29 2017-01-10 Oracle International Corporation Pluggable authorization policies
US9043886B2 (en) * 2011-09-29 2015-05-26 Oracle International Corporation Relying party platform/framework for access management infrastructures
US8601554B2 (en) 2011-11-09 2013-12-03 Microsoft Corporation Home realm discovery in mixed-mode federated realms
US20130160144A1 (en) 2011-12-14 2013-06-20 Microsoft Corporation Entity verification via third-party
US8973118B2 (en) 2011-12-14 2015-03-03 Cellco Partnership Token based security protocol for managing access to web services
US9794735B2 (en) 2012-02-15 2017-10-17 Dropbox Inc. Context determination for mobile devices when accessing remote resources
US9901815B2 (en) 2012-03-22 2018-02-27 The Regents Of The University Of California Devices, systems, and methods for monitoring, classifying, and encouraging activity
US8898764B2 (en) 2012-04-19 2014-11-25 Microsoft Corporation Authenticating user through web extension using token based authentication scheme
US9148429B2 (en) 2012-04-23 2015-09-29 Google Inc. Controlling access by web applications to resources on servers
US20140007213A1 (en) 2012-06-29 2014-01-02 Wepay, Inc. Systems and methods for push notification based application authentication and authorization
US9053304B2 (en) 2012-07-13 2015-06-09 Securekey Technologies Inc. Methods and systems for using derived credentials to authenticate a device across multiple platforms
US9032033B2 (en) 2012-07-19 2015-05-12 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for private token communication services
US8806595B2 (en) 2012-07-25 2014-08-12 Oracle International Corporation System and method of securing sharing of resources which require consent of multiple resource owners using group URI's
US8782411B2 (en) 2012-07-25 2014-07-15 Oracle International Corporation System and method of extending oauth server(s) with third party authentication/authorization
US9009787B2 (en) 2012-07-25 2015-04-14 Oracle International Corporation System and method of mapping and protecting communication services with OAuth
US8745718B1 (en) 2012-08-20 2014-06-03 Jericho Systems Corporation Delivery of authentication information to a RESTful service using token validation scheme
JP6025480B2 (ja) * 2012-09-27 2016-11-16 キヤノン株式会社 認可サーバーシステム、権限移譲システム、その制御方法、およびプログラム
US9442778B2 (en) 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
US20140136346A1 (en) 2012-11-13 2014-05-15 Chirpify, Inc. System and methods for processing in-stream transactions on micro-blogs and other social networks
US10069838B2 (en) 2012-12-18 2018-09-04 Adobe Systems Incorporated Controlling consumption of hierarchical repository data
US9232339B2 (en) 2013-02-07 2016-01-05 Oracle International Corporation Mobile push notification
US20140337955A1 (en) * 2013-05-09 2014-11-13 Microsoft Corporation Authentication and authorization with a bundled token
US20140350979A1 (en) 2013-05-21 2014-11-27 Cubic Corporation Multi-modal journey planning and payment
US9165031B2 (en) 2013-06-13 2015-10-20 Microsoft Technology Licensing, Llc Retrieving stored data using a web service
JP6166596B2 (ja) 2013-06-21 2017-07-19 キヤノン株式会社 認可サーバーシステムおよびその制御方法、並びにプログラム
JP6198477B2 (ja) 2013-06-21 2017-09-20 キヤノン株式会社 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US9215226B2 (en) 2013-07-24 2015-12-15 Adobe Systems Incorporated Dynamically mapping users to groups
JP6033990B2 (ja) 2013-09-20 2016-11-30 オラクル・インターナショナル・コーポレイション 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス
WO2015042349A1 (en) 2013-09-20 2015-03-26 Oracle International Corporation Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546648A (zh) * 2012-01-18 2012-07-04 Ut斯达康通讯有限公司 一种资源访问授权的方法
CN102611709A (zh) * 2012-03-31 2012-07-25 奇智软件(北京)有限公司 一种对第三方资源的访问控制方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12137091B2 (en) 2018-05-31 2024-11-05 Oracle International Corporation Single sign-on enabled with OAuth token
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration

Also Published As

Publication number Publication date
US20160080361A1 (en) 2016-03-17
US20170302655A1 (en) 2017-10-19
JP2016535880A (ja) 2016-11-17
CN105659558A (zh) 2016-06-08
EP3047626B1 (en) 2017-10-25
EP3047626A1 (en) 2016-07-27
US20160028737A1 (en) 2016-01-28
JP6033990B2 (ja) 2016-11-30
US9407628B2 (en) 2016-08-02
US9450963B2 (en) 2016-09-20
US9860234B2 (en) 2018-01-02

Similar Documents

Publication Publication Date Title
CN105659558B (zh) 计算机实现的方法、授权服务器以及计算机可读存储器
CN105830389B (zh) 用于访问多个计算资源服务的单组证书
CN105659557B (zh) 用于单点登录的基于网络的接口集成的方法和系统
US10084823B2 (en) Configurable adaptive access manager callouts
US9998446B2 (en) Accessing a cloud-based service platform using enterprise application authentication
CN104255007B (zh) Oauth框架
US10397213B2 (en) Systems, methods, and software to provide access control in cloud computing environments
CN109565511A (zh) 用于多租户身份和数据安全管理云服务的租户和服务管理
CN105830388B (zh) 用于管理目录服务的身份池桥接
CN108351927A (zh) 用于访问管理的无密码认证
CN108351933A (zh) 最终用户启动的访问服务器真实性检查
CN106105138A (zh) 使用数字证书来认证虚拟机图像
CN109691057A (zh) 经由私人内容分发网络可交换地取回敏感内容
WO2015042349A1 (en) Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service
WO2023233173A1 (en) Implementing self-sovereign identity (ssi) based on configurable individual profiles generated real-time from private attributes stored in the personal secure elements of the users
Riti et al. Identity and Access Management with Google Cloud Platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant