OAUTH2SAML令牌服务的制作方法

文档序号:20049858发布日期:2020-03-03 04:29阅读:197来源:国知局
OAUTH2 SAML令牌服务的制作方法

本公开涉及用于主要传播(principlepropagation)的计算机实施的方法、软件和系统。



背景技术:

利用单点登录(sso),在不用必须使用用于多个系统的多个用户名称和口令的情况下,用户能够使用单个标识符和口令登录来获得对多个系统的访问。主要传播是发送系统通过其向接收系统转发未改变的用户上下文信息的过程。saml(安全断言标记语言)是用于在各方之间交换认证和授权数据的开放标准。oauth2(开放认证版本2)是用于访问委托的开放标准。



技术实现要素:

本公开涉及用于主要传播的系统、软件和计算机实施的方法。一个示例方法包括将令牌服务部署到第一云平台。从集成组件接收对于将被包括在从第一云平台向第二云平台发送的消息中的令牌的第一令牌请求。用户信息请求被生成并且被发送给与第一云平台相关联的身份提供者。用户信息是响应于用户信息请求从身份提供者接收到的。第二令牌请求被生成并且被发送给与第二云平台相关联的令牌服务提供商。第二令牌请求包括所接收的用户信息。从令牌服务提供商接收所请求的令牌。向集成组件发送所接收的令牌以使得集成组件能够向第二云平台发送消息。

尽管总体上被描述为用于处理和变换相应的数据的被体现在有形介质上的计算机实施的软件,一些或所有方面可以是计算机实施的方法或进一步被包括在相应的系统或其他设备中用于执行该描述的功能。在附图和以下的描述中阐述本公开的这些及其他方面和实施例的详情。根据具体实施方式和附图,并且根据权利要求,本公开的其他特征、目标和优点将是明显的。

附图说明

图1是图示出用于主要传播的示例系统的框图。

图2图示出其中主要传播出现在各个云系统之间的系统。

图3是图示出oauth2saml令牌服务的示例的框图。

图4图示出其中oauth2saml令牌服务提供用于第一云系统的令牌以访问第二云系统的系统。

图5是用于主要传播的示例方法的流程图。

具体实施方式

集成方案能够将两个计算系统之间的集成和连接建模。不同的计算系统能够例如在企业对企业(b2b)通信、电子数据交换(edi)或一些其他类型的系统至系统或服务器至服务器通信中进行通信。集成方案能够包括用户使用由第一系统提供的应用。第一系统可以调用由另一个系统提供的服务。能够从第一系统向第二系统传播用户信息,使得能够在代表用户的第二系统中执行服务。

能够在第一系统中使用oauth2saml令牌服务以与第一系统的本地api(应用编程接口)对接,用于从第一系统检索用户信息以用于生成将被传递到第二系统的令牌。oauth2saml令牌服务能够将关于在具体系统中如何检索用户信息和如何生成令牌的详情对于应用和集成组件屏蔽。oauth2saml令牌服务能够封装用户信息检索和令牌请求详情——即,应用和集成组件能够并非需要了解此类详情,而是简单地请求令牌并且向第二系统传递所接收的令牌。尽管描述了两种系统方案,但是如果应用调用由多个外部系统提供的多个服务,则oauth2saml令牌服务能够用于提供用于多个目标系统的多个令牌。

oauth2saml令牌服务能够是能够被部署到各种类型的云系统以将相应云系统的各种本地api暴露给集成组件的可重复使用的、可插拔的组件。集成组件能够使用由oauth2saml令牌服务提供的相容的公用接口,而不是不得不了解可能从各种类型的云系统当中发现的各种本地api的差异的详情。oauth2saml令牌服务能够被配置为与由各个云系统提供的各种类型的本地api对接。

能够在将来扩展oauth2saml令牌服务,以与可以提供新的不同的本地api的新的云系统对接。能够将与新的不同的本地api的接口封装在oauth2saml令牌服务内,并且集成组件能够使用如用于在先的云系统的由oauth2saml令牌服务提供的相同的相容接口,而不需要被改变,来访问新的云系统的新的本地api。将本地api详情封装在oauth2saml令牌服务内能够使得集成方案能够更容易地对其他和新的平台进行缩放,这是因为令牌服务以外的集成组件不需要了解本地api详情。

图1是图示出用于主要传播的示例系统100的框图。具体地,所图示的环境100包括或可通信地与客户端102、云平台104、令牌服务提供商106、目标系统108和网络110耦合。能够在云云平台104、令牌服务提供商106和目标系统108之间建立信任关系。能够(例如,通过信任模块109b)生成信任关系109a并且将其存储在令牌服务提供商106(和/或存储在系统100内的其他点)。

运行于客户端102上的客户端应用112能够调用由云平台104提供的云应用114。云应用114能够是集成方案的一部分,因为云应用114能够被配置为与由目标系统108提供的外部云应用116集成。云应用114能够被配置为调用集成服务组件118来与目标系统108对接。集成服务组件118能够提供被配置为与目标系统108进行通信的集成适配器120。

目标系统108能够要求对于外部云应用116的请求包括诸如令牌之类的认证证书。云平台104能够为请求能够在令牌创建中使用的用户信息的应用提供云本地api122。用户信息能够被存储在用户数据库124中并且由身份提供者126管理,该身份提供者126被包括在云平台104中或以另外方式与云平台104相关联。

并非要求集成适配器120了解关于与目标系统108进行通信的详情和关于在云平台104内的用户信息检索和令牌创建的详情两者,集成适配器120能够被配置为从令牌服务128(例如,oauth2saml令牌服务)请求令牌。将集成适配器120从本地用户信息检索和令牌创建解耦能够使得集成适配器120能够被未改变地部署到云平台104以外的云平台。令牌服务128能够封装特定于特定云系统的详情。

令牌服务128能够从集成适配器120接收所接收的令牌请求130。所接收的令牌请求130例如能够包括令牌服务提供商106的url(统一资源定位符)和/或与目标系统108相关联的客户端标识符。令牌服务128能够(例如,作为用户信息请求131)调用云本地api122以请求和接收关于当前登录的用户的用户信息。令牌服务128的本地至一般变换器132能够将从云本地api接收到的用户信息包括在生成的令牌请求134中。

能够由令牌检索器135(例如,使用令牌服务提供商106的url)向令牌服务提供商106发送所生成的令牌请求134。令牌生成器136能够响应于接收所生成的令牌请求134来生成令牌137,并且将所生成的令牌137提供给令牌检索器135作为接收的令牌138。目标转换器140能够将所接收的令牌138格式化为作为集成适配器120和目标系统108可接受的且可处理的格式的目标系统令牌142。

目标转换器140能够向集成适配器120提供目标系统令牌142。集成适配器120能够将目标系统令牌142包括在目标系统消息144中。能够将包括目标系统令牌142的目标系统消息144被发送给目标系统108,用于由外部云应用116处理。目标系统108中的令牌分析器146能够检验目标系统令牌142。外部云应用116能够处理目标系统消息144并且生成响应148。能够使用集成服务组件118将响应148发送给集成适配器120并且转交给云应用114。

如在本公开中使用的,术语“计算机”意图包含任何适当的处理设备。例如,尽管图1图示出单个云平台104、单个客户端102、单个目标系统108和单个令牌服务提供商106,但是能够使用两个或更多云平台104、两个或更多客户端102、两个或更多目标系统108以及两个或更多令牌服务提供商106来实施系统100。实际上,云平台104、客户端102、目标系统108和令牌服务提供商106可以是或包括任何计算机或处理设备,诸如像刀片服务器、通用个人计算机(pc)、工作站、基于unix的工作站或任何其它适当的设备。换句话说,本公开预期通用计算机以外的计算机,以及不具有常规的操作系统的计算机。此外,客户端102、云平台104、目标系统108和令牌服务提供商106可以适于执行任何操作系统,包括linux、unix、windows、macjavatm、安卓tm、ios或任何其它适当的操作系统。根据一种实施方式,云平台104还可以包括或可通信地与电子邮件服务器、web服务器、高速缓存服务器、流传输数据服务器和/或其它适当的服务器耦合。

分别由客户端102、云平台104、令牌服务提供商106和目标系统108使用接口150、152、154和156,以用于在连接到网络110的、包括在系统100内的分布式环境中与其他系统进行通信。通常,接口150、152、154和156每个包括以适当的组合在软件和/或硬件中编码并且可操作用于与网络110进行通信的逻辑。更具体地,接口150、152、154和156可以每个包括支持与通信相关联的一个或多个通信协议的软件,使得网络110或接口的硬件可操作用于在所图示的系统100内以及外部传送物理信号。

客户端102、云平台104、令牌服务提供商106和目标系统108每个分别包括处理器(或多个)160、162、164或166。处理器(或多个)160、162、164或166中的每一个可以是或包括中央处理单元(cpu)、刀片、专用集成电路(asic)、现场可编程门阵列(fpga)或另一个适当的组件。通常,处理器(或多个)160、162、164或166中的每一个执行指令并且操纵数据以执行相应的计算设备的操作。

不管特定实施方式如何,“软件”可以包括有形媒介上(根据情况,暂时的或非暂时的)的计算机可读指令、固件、有线和/或编程硬件,或其任何组合,其在被执行以执行至少在本文描述的处理和操作时可操作。实际上,可以以任何适当的计算机语言(包括c、c++、javatm可视basic语言、汇编器、4gl的任何适当的版本以及其它)来完全地或部分地编写或描述每个软件组件。尽管图1中图示出的软件的各部分被示出为通过各种对象、方法,或其他处理实施各种特征和功能的单独模块,但根据情况,软件可以改为包括许多子模块、第三方服务、组件、库、等等。相反地,根据情况,各个组件的特征和功能能够被组合为单个组件。

客户端102、云平台104、令牌服务提供商106和目标系统108每个分别包括存储器170、172、174或176。在一些实施方式中,一个或多个描述的计算设备包括多个存储器。存储器170、172、174和176中的每一个可以包括任何类型的存储器或数据库模块,并且可以采取易失性和/或非易失性存储器的形式,在不进行限制的情况下,包括磁性介质、光介质、随机存取存储器(ram)、只读存储器(rom)、可移动介质,或任何其它适当的局部或远程存储器组件。存储器170、172、174和176中的每一个可以存储各种对象或数据,包括目录、类、框架、应用、备查数据、商务对象、作业、web页面、web页面模板、数据库表、数据库查询、存储商务和/或动态信息存储库,以及任何其他适当的信息,包括任何参数、变量、算法、指令、规则、约束,或为了系统100与其相关联的参考文献。

客户端102通常可以是可操作为使用有线线路或无线连接经由网络110连接到云平台104或与云平台104进行通信的任何计算设备。通常,客户端102包括可操作来接收、传送、处理和存储与图1的系统100相关联的任何适当的数据的电子计算机设备。客户端102能够包括一个或多个客户端应用,包括客户端应用112。客户端应用是任何类型的应用,其允许客户端102请求和查看客户端102上的内容。在一些实施方式中,客户端应用能够使用在启动时接收的参数、元数据和其他信息来从云平台104访问特定集合的数据。在一些实例中,客户端应用可以是运行于企业服务器(未示出)上的一个或多个企业应用的代理或客户端侧版本。客户端102中所包括的处理器(或多个)160每个执行向云平台104发送请求并且从从云平台104接收并且处理响应所需要的功能。

客户端102通常意图包含任何客户端计算设备,诸如膝上计算机/笔记本式计算机、无线数据端口、智能电话、个人数据助理(pda)、平板机计算设备、这些设备内的一个或多个处理器,或任何其它适当的处理设备。例如,客户端102可以包括计算机,该计算机包括诸如小键盘、触摸屏之类的输入设备,或能够接受用户信息的其他设备,以及传达与云平台104或客户端102本身的操作相关联的信息(包括数字数据、视觉信息,或者gui(图形用户界面)180)的输出设备。

客户端102的gui180为了任何适当的目的(包括生成客户端应用112的视觉表示)与系统100的至少一部分对接。具体地,gui180可以用于查看和导航各种web页面。通常,gui180向用户提供由系统100提供的或在系统100内传送的商务数据的高效且用户友好的呈现。gui180可以包括具有由用户操作的交互式区段、下拉列表和按钮的多个可定制帧或视图。gui180预期任何适当的图形用户界面,诸如通用web浏览器、智能引擎和处理信息并且可视地向用户高效地呈现结构的命令行接口(cli)的组合。

可以存在与系统100相关联的或在系统100外部的任何数量的客户端设备102。例如,尽管所图示的系统100包括一个客户端102,但系统100的替换实施方式可以包括可通信地耦合到云平台104和/或网络110的多个客户端102,或适于系统100的目的的任何其他数量。另外地,也可以存在在系统100的所图示的部分外部的一个或多个附加的客户端设备102,其能够经由网络110与系统100交互。此外,在不背离本公开的范围的情况下,根据情况,可以可交换地使用术语“客户端”、“客户端设备”和“用户”。而且,尽管就客户端102由单个用户使用而言描述了客户端102,但本公开预期到许多用户可以使用一个计算机,或一个用户可以使用多个计算机。

图2图示出其中在各个云系统之间出现主要传播的系统200。用户使用由云平台204提供的集成应用202。集成应用202被配置为调用由第一云系统208提供的应用206和由第二云系统212提供的应用210。例如,集成应用202可以是销售定单批准应用。应用206能够是检索存储在第一云系统208中的销售定单信息的应用。应用210能够是从第二云系统212检索出售商信息的应用。集成应用202能够被配置为向用户呈现销售定单和出售商信息并且例如使得用户能够批准或拒绝特定销售定单。

当使用集成应用212时,用户能够提供登录信息。集成应用202能够使用由云平台204提供的api来检验登录信息匹配由身份提供者214存储的信息。

集成应用212能够调用由云平台204提供的集成服务来连接到第一云系统208和第二云系统212。集成服务能够包括每个被配置为连接到某类型的云系统的连接器组件。例如,http(超文本传输协议)/odata连接器216能够被配置为连接到第一云系统208,并且特定于第二云系统212的第三方连接器218能够被配置为连接到第二云系统212。连接器组件能够被称为集成适配器。其他类型的连接器是可能的,诸如odata(开放数据)、soap(简单对象存取协议),其它。能够支持新的类型的连接器。

每个连接器组件能够要求令牌来访问相应的云系统。云平台204能够提供令牌服务,该令牌服务被配置为从给定连接器组件接受对于令牌的请求、从身份提供者214检索用户信息,以及从与云系统相关联的令牌服务提供商请求令牌,该云系统与给定连接器组件相关联。能够通过令牌服务来向连接器组件提供从令牌服务提供商接收到的令牌。连接器组件能够将令牌包括在发送给相应的云系统的请求中。例如,http/odata连接器216能够将从令牌服务接收到的并且与第一云系统208相关联的令牌包括在向第一云系统208发送的消息220中。作为另一个示例,第三方连接器218能够将从令牌服务接收到的并且与第二云系统212相关联的令牌包括在向第二云系统212发送的消息222中。

第一云系统208能够接收消息220,并且基于包括与第一云系统208相关联的令牌的消息220,使得消息220能够被应用206接收和处理。类似地,第二云系统212能够接收消息222,并且基于包括与第二云系统212相关联的令牌的消息222,使得消息222能够被应用210接收和处理。应用206和210能够生成分别将被返回到http/odata连接器216或第三方连接器218的相应的响应,其中每个相应的连接器向集成应用202提供其接收的相应的响应。

图3是图示出令牌服务300的示例的框图。令牌服务300能够例如是oauth2saml令牌服务。令牌服务300包括本地至一般变换器302,其被配置为使用本地api304来请求用户信息。本地api304能够例如是oauth2api。对于用户信息的请求能够包括从令牌服务300的消费者308接收到的配置信息306。消费者308能够是连接器或集成适配器组件。配置信息306能够包括消费者想要连接到的目标系统的令牌服务url、客户端标识符或其他信息。

本地至一般变换器302能够将从本地api304接收到的用户信息变换为将由令牌检索器310发送到令牌服务提供商的令牌请求。令牌检索器310能够例如是oauth2saml令牌检索器。令牌检索器310能够从令牌服务提供商接收令牌。在一些实施方式中并且对于一些类型的令牌,目标运行时间转换器312能够执行所接收的令牌到由消费者308使用的格式的变换。消费者特定格式能够是被配置用于消费者特定运行时间的格式(例如,特定类型的档案文件)。目标运行时间转换器312能够向消费者308提供变换的令牌,使得消费者308能够使用所提供的令牌来与目标系统相连接。

图4图示出其中oauth2saml令牌服务提供用于第一云系统访问第二云系统的令牌的系统400。在图4的示例中系统400的初始状态能够如下:(1)用户402已经注册到云平台404(例如,创建了帐号);(2)已经在目标系统406和云平台404中所包括的(或以另外方式与云平台404相关联的)身份提供者408之间建立了信任关系;以及(3)oauth2saml令牌服务410已经被部署在云平台404中。

在集成方案的第一阶段(例如,示出为圈出的“1”)中,用户402请求对由云平台404提供的应用412的访问。应用412能够被配置为使用或调用目标系统406的一个或多个服务(和可能是一个或多个其他目标系统(未示出)的一个或多个服务)。

在第二阶段中,响应于用户402访问应用412的请求,应用412向身份提供者408发送认证请求414。身份提供者408响应于认证请求414来尝试认证用户402并且向应用412发送认证响应。

在第三阶段中,如果认证响应指示对用户402的成功认证,则应用412调用集成服务416,以请求与目标系统406的通信。

在第四阶段中,集成服务416识别和调用被配置为连接到目标系统406的集成适配器418。集成适配器418能够要求对目标系统406的认证。

在第五阶段中,集成适配器418向oauth2saml令牌服务410发送包括属性的请求,该属性能够包括目标系统406的令牌服务url和oauth2客户端标识符。目标系统406的令牌服务url能够是由生成oauth2令牌的目标系统406提供的服务的url。例如,如果目标系统406是成功因素系统(successfactorsystem),则令牌服务url可以是https://example-data-center.successfactors.com/oauth/token。oauth2客户端标识符能够是已经被集成服务416注册的标识符。

在第六阶段中,oauth2saml令牌服务410调用云平台404的本地api(或多个)420以请求关于用户402的用户数据,诸如编码的saml内容。用户数据能够包括用户上下文或由身份提供者408存储的其他用户信息。用户数据能够包括参数,诸如用户的名和姓、用于云平台404的登录或用户名,或用于用户402的电子邮件地址。

在第七阶段中,云平台404将所请求的用户数据422作为本地api(或多个)420的一个或多个返回或输出值来提供。

在第八阶段中,oauth2saml令牌服务410使用所接收的用户上下文信息和用户数据422来生成并且向令牌服务提供商424发送对于oauth2令牌的请求。对于oauth2令牌的请求能够包括oauth2saml令牌服务410从集成适配器418接收到的oauth2客户端标识符。令牌服务提供商424能够确定是否已经向令牌服务提供商424注册了oauth2客户端标识符。如果已经向令牌服务提供商424注册了oauth2客户端标识符,则令牌服务提供商424能够生成并且向oauth2saml令牌服务410提供oauth2令牌426。

在第九阶段中,oauth2saml令牌服务410向集成适配器418提供oauth2令牌426。

在第十阶段中,集成适配器418创建请求428(例如,http请求),该请求428包括oauth2令牌426和由应用412调用的目标系统406中的服务的端点。集成适配器418向目标系统406发送请求428。目标系统406执行所请求的服务。

在第十一阶段中,目标系统406向集成适配器418发送响应430。

在第十二阶段中,由集成服务416向应用412提供响应430。

在一些实施方式中,oauth2sam令牌服务410将oauth2令牌426高速缓存在云平台404内,用于供在令牌426的期满时间之前可能出现的对目标系统406的其他呼叫(或多个)使用。能够使用存储的令牌,而不是从令牌服务提供商424请求另一个令牌。如果oauth2saml令牌服务410在所存储的令牌已经期满之后需要用于对目标系统406的所请求的访问的令牌,则oauth2saml令牌服务410能够从令牌服务提供商424请求新的令牌。

图5是用于主要传播的示例方法500的流程图。将理解的是,根据情况,可以例如通过任何适当的系统、环境、软件和硬件,或者系统、环境、软件和硬件的组合来执行方法500和有关的方法。例如,能够使用客户端、服务器,或其他计算设备中的一个或多个来执行方法500和有关的方法并且从客户端、服务器,或者其他计算设备的存储器获取任何数据。在一些实施方式中,通过关于图1在以上描述的系统100的一个或多个组件来执行方法500和有关的方法。例如,能够通过图1的令牌服务128来执行方法500和有关的方法。

在502,将令牌服务部署到第一云平台。令牌服务能够例如是oauth2saml令牌服务。

在504,在令牌服务从集成组件接收对于将被包括在由集成组件发送到代表与用户相关联的用户应用的第二云平台的消息中的令牌的第一令牌请求。第一令牌请求能够包括令牌服务提供商的url和/或与令牌服务提供商相关联的客户端id。能够通过由令牌服务提供的令牌请求接口来接收第一令牌请求。

在506,响应于接收第一令牌请求,生成用户信息请求用于请求关于用户的用户信息。

在508,向与第一云平台相关联的身份提供者发送用户信息请求。能够使用特定于第一云平台的第一集合的本地api来发送用户信息请求。

在510,响应于用户信息请求从身份提供者接收关于用户的用户信息。

在512,生成包括所接收的用户信息的第二令牌请求。第二令牌请求能够包括在第一令牌请求中接收了的令牌服务提供商的url。

在514,向与第二云平台相关联的令牌服务提供商发送第二令牌请求。

在516,从令牌服务提供商接收所请求的令牌。所请求的令牌能够是响应于第二令牌请求由令牌服务提供商生成的令牌。

在518,向集成组件发送所接收的令牌以使得集成组件能够向第二云平台发送消息。集成组件能够向第二云平台发送包括令牌的消息。第二云平台能够在第二云平台认证用户并且处理消息。

尽管描述了云平台之间的集成方案,但在一些实施方式中,诸如如果期望主要传播出现在运行于同一云平台上的两个应用之间,则能够在同一云平台内使用令牌服务。在这种情况下,令牌请求者能够是集成组件,或能够是请求令牌被转到调用的应用以传播当发起调用应用时所使用的证书的另一个组件。

先前的图和随附的描述说明了示例处理和计算机可实施的技术。但是系统100(或其软件或其他组件)预期使用、实施,或执行任何适当的技术以用于执行这些和其他任务。将理解的是,这些处理仅仅用于说明目的,以及可以在任何适当的时间(包括并行地、独立地,或组合地)执行所描述的或类似的技术。此外,在这些处理中的许多操作可以同时地、并行地,和/或以与所示不同的次序发生。而且,系统100可以使用具有附加的操作、较少的操作,和/或不同的操作的处理,只要方法保持适当即可。

换句话说,尽管已经就某些实施例和通常相关联的方法描述了本公开,但这些实施例和方法的变更和排列对那些本领域技术人员将是明显的。因此,示例实施例的以上描述不限定或约束本公开。在不背离本公开的精神和范围的情况下,其他改变、置换,和变更也是可能的。

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