CN110717171B - 用于状态保存和重用的访问令牌管理 - Google Patents

用于状态保存和重用的访问令牌管理 Download PDF

Info

Publication number
CN110717171B
CN110717171B CN201811451801.4A CN201811451801A CN110717171B CN 110717171 B CN110717171 B CN 110717171B CN 201811451801 A CN201811451801 A CN 201811451801A CN 110717171 B CN110717171 B CN 110717171B
Authority
CN
China
Prior art keywords
access token
service
proxy service
workflow
application workflow
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
CN201811451801.4A
Other languages
English (en)
Other versions
CN110717171A (zh
Inventor
K.孔达雷夫
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.)
SAP SE
Original Assignee
SAP SE
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
Application filed by SAP SE filed Critical SAP SE
Publication of CN110717171A publication Critical patent/CN110717171A/zh
Application granted granted Critical
Publication of CN110717171B publication Critical patent/CN110717171B/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/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • 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/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

描述了用于在计算环境中管理访问令牌的技术。代理服务可以被配置为向工作流引擎发布第一令牌,第一令牌具有基本上无限的有效期以在工作流持续时间内不超时。第一令牌可以提供给工作流,以代替可能已经从后端服务请求的较短有效期的令牌。工作流引擎可以使用第一令牌来提供对工作流的操作的授权。在完成工作流时,工作流引擎可以向代理服务发送请求与后端服务交互的指示。代理服务可以从后端服务请求第二(例如,有限有效期的)令牌,并使用第二令牌代表工作流与后端服务交互,从而充当工作流与后端服务之间的中介。

Description

用于状态保存和重用的访问令牌管理
技术领域
本公开涉及计算环境中的访问令牌管理。
背景技术
分布式计算环境,例如云计算环境,可以托管在该环境中执行的各种应用。分布式计算环境的用户可以请求访问在该环境中执行的应用,而不是在他们自己的计算机设备上本地执行应用。在一些实例中,该环境可以提供可由在环境中执行的应用使用的各种服务,例如数据库服务等。该环境可以支持各种机制来验证试图访问在环境中执行的应用的用户的身份,并且确认这些用户被授权访问应用。
发明内容
本公开的实现一般涉及计算环境中的访问令牌管理。更具体地,实现涉及采用代理服务的技术,该代理服务提供具有足够有效期的访问令牌以便工作流完成、请求有限有效期的访问令牌以访问后端服务并且充当工作流和后端服务之间交互的中介。
通常,本说明书中描述的主题的创新方面可以体现在包括以下操作的方法中:代理服务从应用工作流接收对第一访问令牌的请求;响应于接收到对第一访问令牌的请求,将第一访问令牌从代理服务提供给应用工作流,该第一访问令牌包括与应用工作流的用户相关联的至少一个凭证,该第一访问令牌具有至少是应用工作流的持续时间的第一有效期;代理服务从应用工作流接收访问后端服务的请求;响应于接收到访问后端服务的请求,代理服务请求来自后端服务的第二访问令牌;代理服务从后端服务接收第二访问令牌,该第二访问令牌包括与应用工作流的用户相关联的至少一个凭证,该第二访问令牌具有比应用工作流持续时间短的第二有效期;并且代理服务使用第二访问令牌代表应用工作流与后端服务交互。
实现可以可选地包括以下特征的一个或多个:第一访问令牌和第二访问令牌根据开放授权(OAuth)标准的版本来布置;第一访问令牌被配置为不具有指定的有效期;应用工作流包括多个任务;在完成多个任务的第一任务时,将对第一访问令牌的请求发送到代理服务;在完成多个任务的最后一个任务时,将访问后端服务的请求发送到代理服务;响应于与应用工作流的第一次用户交互,将对第一访问令牌的请求发送到代理服务;和/或操作还包括代理服务基于确定代表应用工作流与后端服务的交互已完成而使第一访问令牌无效。
任意上述方面的其他实现包括相应的系统、装置和被配置为执行编码在计算机储存设备上的方法的动作的计算机程序。本公开还提供了一种计算机可读储存介质,其耦合到一个或多个处理器并且具有存储在其上的指令,当该指令由一个或多个处理器执行时,使得该一个或多个处理器根据这里提供的方法的实现来执行操作。本公开还提供了用于实现这里提供的方法的系统。该系统包括一个或多个处理器,以及耦合到一个或多个处理器上的计算机可读储存介质,其中计算机可读储存介质上具有存储在其上的指令,当该指令由一个或多个处理器执行时,使得该一个或多个处理器根据这里提供的方法的实现来执行操作。
应当了解的是,根据本公开的方面和特征可以包含这里描述的方面和特征的任意组合。即,根据本公开的方面和特征不限于这里具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
在附图和以下描述中阐述了本公开的一个或多个实现的细节。根据说明书和附图以及权利要求,本公开的其他特征和优点将显而易见。
附图说明
图1描绘了根据本公开的实现的用于访问令牌管理的示例系统。
图2描绘了根据本公开的实现的示出用于访问令牌管理的过程的示例示意图。
图3描绘了根据本公开的实现的用于访问令牌管理的示例过程的流程图。
图4描绘了根据本公开的实现的示例计算系统。
具体实施方式
本公开的实现涉及用于管理计算环境中的访问令牌的系统、方法、计算设备和/或计算机可读介质。在一些实现中,代理服务被配置为响应于来自应用工作流的请求向应用工作流发布第一访问令牌。所发布的第一访问令牌可以具有长的和/或基本上无限的有效期,使得第一访问令牌可以在应用工作流的持续时间内不超时。可以将第一访问令牌提供给工作流来代替有限有效期的访问令牌,该有限有效期的访问令牌可能是这样的工作流传统地从后端服务请求的。应用工作流可以使用访问令牌来提供对应用工作流与代理服务的交互的授权。在完成应用工作流时,例如,在工作流通常使用有限有效期的访问令牌访问后端服务的时刻,工作流可以向代理服务发送请求与后端服务交互的指示。此时,代理服务可以从后端服务请求第二有限有效期访问令牌。然后,代理服务可以使用第二访问令牌代表工作流与后端服务交互,并因此充当应用工作流和后端服务的中介。以这种方式,实现提供了一种机制,通过该机制,应用工作流可以使用第一(例如,无限有效期的)访问令牌以适当的授权操作,并在没有中断的情况下与后端服务交互,即使是在后端服务发布的访问令牌通常会在工作流完成之前超时的情况(如果后端服务发布的访问令牌最初是由工作流请求的而不是从代理服务发出的这样的请求)。
在一些实现中,访问令牌根据开放授权(OAuth)标准的版本来布置。实现还支持使用其他授权标准。访问令牌可以包括与特定用户相关联的至少一个凭证,并且可以发布访问令牌以授权该用户访问特定服务。第一访问令牌(例如,具有长的或无限的有效期)可以由作为代理服务一部分的授权客户端(例如,OAuth客户端)请求,并且第二访问令牌(例如,具有有限的有效期)可以由作为后端服务一部分的授权客户端(例如,OAuth客户端)请求。代理服务的授权客户端可以被配置为请求不包含显式超时或有效期参数的访问令牌。授权客户端可以向作为平台一部分的授权服务器(例如,OAuth服务器)请求访问令牌。分布式计算环境(例如,云计算环境)在这里也被描述为平台,并且可以托管根据软件即服务(SaaS)模型或其他合适的范例作为服务提供的任意合适数量的应用。
应用可以被配置为存储用户状态以供以后使用,例如模仿某些动作(例如,调用技术服务或功能),仿佛动作是由用户直接执行的。在工作流解决方案中,例如自动化业务流程执行的解决方案,这种机制被称为主要传播。例如,这种用法可以作为模仿经理的自动员工入职流程的一部分包括在内,以自动将新员工所需的设备项目添加到后端服务的购物车中,仿佛经理手动添加它们一样,然后授权代表经理购买这些项目,而不是使用技术用户执行此类操作。通过主要传播,使用特定用户凭证执行后端操作,但是独立于用户并且仿佛用户直接执行操作,例如,模仿用户。可以通过OAuth(例如,OAuth2SAMLBearerAssertionflow流程)或其他一些合适的授权标准来保存和重用用户状态。
OAuth令牌的有效期取决于待调用的技术服务,例如这里描述的后端服务。OAuth客户端配置通常不受应用或调用后端服务的工作流运行时的控制。因此,后端服务OAuth客户端可以发布具有短有效期的令牌,使得在OAuth访问令牌被用于代表用户向后端服务执行实际技术/服务调用之前,用户状态可能意外地过期。此外,在一些情况下,工作流的持续时间可能不是确定性的,并且可以基于在工作流开始时可能不可预测的各种因素而变化。因此,在传统场景中,可能无法预测OAuth访问令牌在需要用户模仿以与后端服务交互时是否依然有效。基于OAuth客户端配置,此行为也可能因服务而异,也不受应用和工作流运行时的控制。OAuth通常具有令牌刷新机制,但OAuth2SAMLBearerAssertion不是这种情况,OAuth2SAMLBearerAssertion在用户状态必须传播时使用,例如,在主要传播场景中。
传统上,这导致应用无法代表特定用户执行技术/服务调用。在工作流域中,这可能意味着工作流实例无法进行并且必须重新启动,丢弃此实例上到目前为止完成的所有工作,并且无需任何第二工作流执行将成功的保证。
为了解决传统的、先前的可用解决方案中的这些缺点,实现提供了附加的(例如,OAuth保护的)应用服务,即这里讨论的代理服务。代理服务也可以描述为受OAuth保护的代理服务。代理服务在执行对后端服务的技术/服务调用时用作用户行为和用户状态的实际使用之间的代理,并且可以有效地、无限期地延长令牌的有效期,从而消除令牌过期的机会。因此,实现通过使用代理服务提供传统OAuth的扩展。
工作流可以包括多个任务,每个任务包含承载用户状态的直接用户交互,例如任务完成、对REST API的调用等等。可以从OAuth保护的代理服务同步获取OAuth访问令牌。因为代理服务与应用或工作流运行时相关联,所以代理服务的授权客户端(例如,OAuth客户端)被配置为提供具有无限有效期的访问令牌,和/或具有比工作流运行时的任意可能的或预期的持续时间更长的有效期的访问令牌。
异步地,一旦在工作流或应用执行中到达待调用的后端服务,这可能是在最初从代理服务获得访问令牌之后的几天、几个月甚至几年,则使用先前获得的访问令牌代表先前活跃的用户调用代理服务。因此,实现提供了一种解决方案,其中保证了(或至少非常可能)令牌仍然有效,因为代理服务OAuth客户端配置处于应用或工作流运行时的控制之下。
从代理服务内,从后端服务(和/或其OAuth客户端)同步地获得第二OAuth令牌,用于代表先前活动的用户执行对后端服务的技术/服务调用。所获得的令牌具有未知的有效期,并且与工作流的持续时间相比可能具有短的有效期。然而,由于对后端服务的技术/服务调用与新获得的令牌同步执行,在与后端服务的交互完成之前,新令牌可能没有时间过期。
在一些实现中,在用户行为完成时(例如,在工作流用户任务完成时)仅创建一个OAuth访问令牌,与先前的可用解决方案相比,这会导致显著的性能增益,这取决于代表用户调用的服务的数量。通过使用代理服务授权客户端,访问令牌有效期可以在应用和/或工作流运行时的控制之下,从而确保在对后端服务的技术/服务调用被执行之前可以暂时没有令牌过期。用于执行对后端程序的技术/服务调用的访问令牌可以正好在它们被使用之前创建,从而有效地消除了访问令牌过期的机会。由于这些原因,在一些实现中,使用该机制的应用和工作流引擎可以保证代表先前活跃的用户执行技术/服务调用不会由于访问令牌过期而失败。
图1描绘了根据本公开的实现的用于访问令牌管理的示例系统100。如该示例中所示,系统100可以包括平台102,该平台102提供用于托管任意合适数量和类型的(多个)应用104的分布式计算环境。平台102还可以提供任意其他合适类型的计算环境,并且可以由任意合适数量和类型的计算设备托管。诸如网页浏览器或其他客户端应用的用户代理106可以通过一个或多个网络与平台托管的应用104交互。用户代理106可以在任意合适类型的计算设备上执行。
平台102还可以托管任意合适数量和类型的后端服务108。平台102可以执行代理服务110,该代理服务110充当应用工作流和一个或多个后端服务108之间的中介,以确保授权和用户模仿如这里所述没有超时。在一些实现中,代理服务110可以包括授权客户端112(例如,OAuth客户端),并且后端服务108可以包括授权客户端114(例如,OAuth客户端)。授权客户端可以操作以向在平台102或其他地方执行的授权服务器118请求访问令牌(例如,OAuth令牌)。授权服务器118可以根据授权客户端的配置,根据授权客户端的请求发布访问令牌。如上所述,代理服务110的授权客户端112可以请求无限有效期的访问令牌。
平台102还可以提供用于访问令牌的储存的令牌储存服务120。当访问令牌由授权服务器118通过来自授权客户端的请求最初发布时,该令牌可以由服务120存储在平台102上的本地储存器中或外部储存器。随后,当要使用令牌来建立授权以执行操作时,(多个)应用104和/或代理服务110可以从服务120检索访问令牌。在一些实现中,访问令牌的发布可以响应于由请求作出的断言,该断言根据安全断言标记语言(SAML)的版本来格式化。访问令牌可以包括代表特定用户访问特定服务的凭证,并且特定令牌对于特定用户和特定服务可以是有效的。
在一些实现中,平台102可以执行工作流引擎116,该工作流引擎116管理由平台102托管的每个应用104的应用工作流。应用的应用工作流可以包括任意适当数量的任务(例如,操作),如下面进一步描述的。
图2描绘了根据本公开的实现的示出用于访问令牌管理的过程的示例示意图。如示例中所示,由平台的工作流引擎管理的应用工作流202可以包括根据被管理的特定应用的任意合适数量的任务204。在所示的示例中,工作流202包括初始任务204(1),其后可以跟随任务204(2)或任务204(3),这取决于根据条件遵循的特定分支,并且或者导致工作流传统上会向后端服务108发出调用208的最终状态。在传统的工作流程执行中,第一任务将包括对后端服务108的授权客户端114的调用206,以请求访问令牌。然而,传统上后端服务108的授权客户端114发布的访问令牌可能具有在工作流202到达调用后端服务108的点之前超时的高概率。因此,对后端服务108的调用将失败,需要从授权客户端114发布另一个访问令牌,它还可能在完成工作流202之前再次超时。
为了克服这些问题,实现放弃传统调用206和208,而是使用具有授权客户端112的代理服务110,其中授权客服端112可以请求和发布无限有效期的访问令牌,或者至少具有可靠地长于工作流202的可能的持续时间的有效期。
如示例中所示,在任务204(1)的启动和/或与工作流202的第一次用户交互时,工作流引擎可以向代理服务110的授权客户端112发送请求210。授权客户端112可以通过从授权服务器请求访问令牌212、并将访问令牌212提供给工作流引擎以供工作流202使用来进行响应。可以发布不具有有效期的访问令牌212(也被描述为第一访问令牌),使得它可能不会在完成工作流202之前自动超时。然后,工作流202可以继续通过任意数量的任务,使用令牌212来建立用户授权以执行各种任务204。
当工作流到达通常将调用后端服务108的点时,工作流引擎可以向代理服务110发送指示将要执行后端服务操作的信号214。作为响应,代理服务110可以向后端服务108的授权客户端114发送请求216。授权客户端114可以向授权服务器请求访问令牌218(也被描述为第二访问令牌),其具有根据授权客户端114的配置的有效期(例如,短的、有限的有效期)。访问令牌218可以由授权服务器发布,并由授权客户端114提供给代理服务110。然后,代理服务110可以使用令牌218执行任意数量的操作220,以代表工作流202与后端服务108交互。代理服务110可以充当工作流202与后端服务108之间的中介,使得工作流202和后端服务108之间的通信通过代理服务110。在一些实现中,后端服务108不知道代理服务110的存在,并且与代理服务110进行交互,就仿佛它与工作流202直接交互一样。令牌212和218都可以包括用于被授权执行操作的用户的相同的凭证,并且在一些示例中,除了具有不同有效期以外,可以是完全相同的。
以这种方式,实现提供了一种解决方案,其中用户会话可以被延长(例如,无限期地)以使主要传播能够在长的工作流场景中成功操作。该解决方案获得可以保持用户凭证但没有超时的令牌(例如,“虚假的”令牌),有效地、无限期地延长用户会话。具有无限有效期的令牌用于获得具有有限有效期的(例如,真实的)令牌,然后该有限有效期的令牌被用于针对后端服务的执行。这个新令牌是在使用之前不久获得的,因此它没有时间像上述传统场景那样过期。当工作流实例完成时,所发布的令牌(例如,第一和/或第二令牌)可以被无效以保持安全性。
图3示出了根据本公开的实现的用于访问令牌管理的示例过程的流程图。该过程的操作可以由代理服务110和/或在平台102上或其他地方执行的其他软件模块来执行。
从工作流202接收(302)对第一访问令牌的请求。第一访问令牌可以被发布(304)到工作流202,其中该令牌具有长的或基本上无限的有效期,至少与应用工作流202可能的、预期的和/或典型的持续时间一样长。然后工作流202可以继续执行其各种任务,使用第一访问令牌为其任务建立用户授权。
在工作流202通常将尝试访问后端服务108的时刻,工作流202可以发送信号以指示它需要与后端服务108交互。在从工作流202接收(306)这样的请求时,代理服务110可以向后端服务108(和/或其授权客户端)请求(308)第二访问令牌。第二访问令牌可能具有短的有效期,这样如果工作流202最初从后端服务108而不是从代理服务110请求的令牌时,令牌在工作流202的持续时间内已经过期。代理服务110可以从后端服务108接收(310)第二访问令牌,并且随后使用(312)第二访问令牌代表工作流202访问后端服务108,从而调解工作流202和后端服务108之间的交互。
图4描绘了根据本公开的实现的示例计算系统。系统400可以用于参照这里讨论的各种实现描述的任意操作。例如,系统400可以至少部分地包括在平台102、执行用户代理106的计算设备和/或这里描述的其他计算设备或系统的一个或多个之中。系统400可以包括一个或多个处理器410、存储器420、一个或多个储存设备430和可通过一个或多个I/O接口440控制的一个或多个输入/输出I/O设备450。各种组件410、420、430、440或450可以通过至少一个系统总线460互连,这可以使得能够在系统400的各个模块和组件之间传输数据。
处理器410可以被配置为处理用于在系统400内执行的指令。处理器410可以包括单线程处理器、多线程处理器或两者都有。处理器410可以被配置为处理存储在存储器420或储存设备430上的指令。处理器410可以包括基于硬件的处理器,每个处理器包括一个或多个核。处理器410可以包括通用处理器、专用处理器或两者都有。
存储器420可以在系统400内存储信息。在一些实现中,存储器420可以包括一个或多个计算机可读介质。存储器420可以包括任意数量的易失性存储单元、任意数量的非易失性存储单元、或易失性和非易失性存储单元。存储器420可以包括只读存储器、随机存取存储器或两者都有。在一些示例中,存储器420可以由一个或多个执行软件模块用作活动或物理存储器。
(多个)储存设备430可以被配置为为系统400提供(例如,持久的)大容量储存。在一些实现中,储存设备430可以包括一个或多个计算机可读介质。例如,(多个)储存设备430可以包括软盘设备、硬盘设备、光盘设备或磁带设备。(多个)储存设备430可以包括只读存储器、随机存取存储器或两者都有。(多个)储存设备430可以包括内部硬盘驱动器、外部硬盘驱动器或可移动驱动器中的一个或多个。
存储器420或(多个)储存设备430中的一个或两个可以包括一个或多个计算机可读储存介质(CRSM)。CRSM可以包括电子储存介质、磁储存介质、光储存介质、磁光储存介质、量子储存介质、机械计算机储存介质等中的一个或多个。CRSM可以提供计算机可读指令的储存,其中计算机可读指令描述用于系统400的操作的数据结构、过程、应用、程序、其他模块或其他数据。在一些实现中,CRSM可以包括数据存储,其以非临时性格式提供计算机可读指令或其他信息的储存。CSRM可以合并到系统400中,或者可以在相对于系统400的外部。CSRM可以包括只读存储器、随机存取存储器或两者都有。适合于有形地体现计算机程序指令和数据的一个或多个CRSM可以包括任意类型的非易失性存储器,包括但不限于:半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。在一些示例中,处理器410和存储器420可以由一个或多个专用集成电路(ASIC)补充,或并入一个或多个专用集成电路(ASIC)中。
系统400可以包括一个或多个I/O设备450。(多个)I/O设备450可以包括一个或多个输入设备,例如键盘、鼠标、笔、游戏控制器、触摸输入设备、音频输入设备(例如,麦克风)、手势输入设备、触觉输入设备、图像或视频捕获设备(例如,相机)或其他设备。在一些示例中,(多个)I/O设备450还可以包括一个或多个输出设备,例如显示器、LED、音频输出设备(例如,扬声器)、打印机、触觉输出设备等等。(多个)I/O设备450可以物理地并入系统400的一个或多个计算设备中,或者可以在相对于系统400的一个或多个计算设备的外部。
系统400可以包括一个或多个I/O接口440,以使系统400的组件或模块能够控制(多个)I/O设备450、与(多个)I/O设备450接口、或以其他方式与(多个)I/O设备450通信。(多个)I/O接口440可以使信息能够通过串行通信、并行通信或其他类型的通信传入或传出系统400,或传输到系统400的组件之间。例如,(多个)I/O接口440可以符合用于串行端口的RS-232标准的版本,或者符合用于并行端口的IEEE 1284标准的版本。作为另一个示例,(多个)I/O接口440可以被配置为通过通用串行总线(USB)或以太网提供连接。在一些示例中,(多个)I/O接口440可以被配置为提供符合IEEE1394标准的版本的串行连接。
(多个)I/O接口440还可以包括一个或多个网络接口,以实现系统400的计算设备之间或者系统400与其他连接网络的计算系统之间的通信。(多个)网络接口可以包括一个或多个网络接口控制器(NIC)或其他类型的收发器设备,其中收发器设备被配置为使用网络协议在一个或多个网络上发送和接收通信。
系统400的计算设备可以使用一个或多个网络彼此通信,或与其他计算设备通信。这样的网络可以包括诸如因特网的公共网络、诸如机构或个人内联网的私有网络、或者私有和公共网络的任意组合。网络可以包括任意类型的有线或无线网络,包括但不限于局域网(LAN)、广域网(WAN)、无线WAN(WWAN)、无线LAN(WLAN)、移动通信网络(例如,3G、4G、Edge等)等等。在一些实现中,计算设备之间的通信可以被加密或以其他方式保护。例如,通信可以使用一个或多个公用或私有的加密密钥、密码、数字证书或安全协议支持的其他凭证,例如,任意版本的安全套接层(SSL)或安全传输层(TLS)协议。
系统400可以包括任意数量、任意类型的计算设备。计算设备可以包括但不限于:个人计算机、智能手机、平板计算机、可穿戴计算机、植入式计算机、移动游戏设备、电子书阅读器、汽车计算机、台式计算机、便携式计算机、笔记本计算机、游戏机、家用娱乐设备、网络计算机、服务器计算机、大型计算机、分布式计算设备(例如,云计算设备)、微型计算机、系统级芯片(SoC)、系统级封装(SiP)等等。虽然这里的示例可能将计算设备描述为物理设备,但是实现方式不限于此。在一些示例中,计算设备可以包括在一个或多个物理计算设备上执行的虚拟计算环境、管理程序、仿真或虚拟机中的一个或多个。在一些示例中,两个或更多计算设备可以包括集群、云、农场或多个设备的其他分组,这些设备协调操作以提供负载平衡、故障转移支持、并行处理能力、共享存储资源、共享网络能力或其他方面。
本说明书中描述的实现和所有功能操作可以在数字电子电路中或者计算机软件、固件或硬件中实现,包括本说明书公开的结构及其结构等同物,或者它们中一个或多个的组合。实现可以实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的计算机程序指令模块,该模块用于由数据处理装置执行或用于控制数据处理装置的操作。计算机可读介质可以是机器可读的储存设备、机器可读的存储基底、存储器设备、影响机器可读的传播信号的物质组合或者它们中的一个或多个的组合。术语“计算机系统”包括用于处理数据的所有装置、设备和机器,包括作为示例的可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件的代码、协议书、数据库管理系统、操作系统或者它们中一个或多个的组合。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成以对信息进行编码以便传输到合适的接收器装置。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任意适当形式的编程语言编写,包括编译或解释语言,并且可以以任意适当的形式部署,包括作为独立程序或作为模块、组件、子程序或适用于计算环境的其他单元。计算机程序不是必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分中、在专用于所讨论的程序的单个文件中或者在多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。可以部署计算机程序在一个计算机或多个计算机上执行,其中多个计算机位于一个站点或分布在多个站点上并通过通信网络互连。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,以通过对输入数据进行操作并产生输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任意适当类型的数字计算机的一个或多个处理器。通常,处理器可以从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的处理器和用于储存指令和数据的一个或多个存储器设备。通常,计算机还可以包括用于存储数据的一个或多个大容量储存设备,或可操作地耦合以从一个或多个该大容量储存设备接收数据、或将数据传输到一个或多个该大容量储存设备或两者兼而有之,其中大容量储存设备例如磁、磁光盘或光盘。但是,计算机不需要这样的设备。而且,计算机可以嵌入在另一个设备中,例如,仅举几例,移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括作为示例的半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充,或并入专用逻辑电路中。
为了提供与用户的交互,实现可以在具有显示设备的计算机上实现,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户和键盘和指示设备显示信息,其中指示设备例如鼠标或轨迹球,用户可以通过该指示设备给计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任意适当形式的感官反馈,如视觉反馈、听觉反馈或触觉反馈;可以以任意适当的形式接收来自用户的输入,包括声音、语音或触觉输入。
实现可以在计算机系统中实现,该计算机系统包括后端组件,例如数据服务器;或者中间件组件,例如应用服务器;或者前端组件,例如具有图形UI或网页浏览器的客户端计算机,用户可以通过它与实现交互;或者一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任意适当的数字数据通信形式或介质互连,例如通信网络。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
尽管本说明书包含许多细节,但这些细节不应被解释为对本公开的范围或可能要求的范围的限制,而是作为对特定实现的特有的特征的描述。在单独实现的情况下在本说明书中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的情况下描述的各种特征也可以单独地或以任意合适的子组合在多个实现中实现。此外,尽管上面的特征可能被描述为以某种组合起作用甚至最初如此声明,但在一些示例中,来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者要求执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实现中的各种系统组件的分离不应被理解为在所有实现中都需要这种分离,并且应当理解的是,所述的程序组件和系统通常可以一起集成在单个软件产品中或者打包成多种软件产品。
已经描述了多个实现。然而,应当理解的是,在不背离本公开的精神和范围的情况下,可以进行各种修改。例如,可以使用上面显示的各种形式的流程,重新排序、添加或者删除步骤。因此,其他实现在下述权利要求的范围内。

Claims (18)

1.一种由至少一个处理器执行的代理服务实施的计算机实现的方法,所述方法包括:
通过代理服务从应用工作流接收对第一访问令牌的请求;
响应于接收到对第一访问令牌的请求,将所述第一访问令牌从代理服务提供给应用工作流,所述第一访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第一访问令牌具有至少是应用工作流的持续时间的第一有效期;
通过代理服务从应用工作流接收访问后端服务的请求;
响应于接收到访问后端服务的请求,通过代理服务请求来自后端服务的第二访问令牌;
通过代理服务从后端服务接收所述第二访问令牌,所述第二访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第二访问令牌具有比应用工作流的持续时间短的第二有效期;和
通过代理服务使用所述第二访问令牌代表应用工作流与后端服务交互,
基于确定代表所述应用工作流与后端服务的交互被完成,通过代理服务使所述第一访问令牌和第二访问令牌无效,
其中,第一访问令牌由作为代理服务一部分的授权客户端请求,并且第二访问令牌由作为后端服务一部分的授权客户端请求。
2.根据权利要求1所述的方法,其中所述第一访问令牌和第二访问令牌根据开放授权(OAuth)标准的版本来布置。
3.根据权利要求1所述的方法,其中所述第一访问令牌被配置为不具有指定的有效期。
4.根据权利要求1所述的方法,其中:
所述应用工作流包括多个任务;和
对所述第一访问令牌的请求在完成所述多个任务的第一任务时被发送到代理服务。
5.根据权利要求4所述的方法,其中所述访问后端服务的请求在完成所述多个任务的最后一个任务时被发送到代理服务。
6.根据权利要求1所述的方法,其中响应于与所述应用工作流的第一次用户交互,将所述对第一访问令牌的请求发送到代理服务。
7.一种系统,包括:
至少一个处理器;和
存储器,其可通信地耦合到所述至少一个处理器,所述存储器存储指令,当该指令由所述至少一个处理器执行时,使所述至少一个处理器执行操作,该操作包括:
通过代理服务从应用工作流接收对第一访问令牌的请求;
响应于接收到对第一访问令牌的请求,将所述第一访问令牌从代理服务提供给应用工作流,所述第一访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第一访问令牌具有至少是应用工作流的持续时间的第一有效期;
通过代理服务从应用工作流接收访问后端服务的请求;
响应于接收到访问后端服务的请求,通过代理服务请求来自后端服务的第二访问令牌;
通过代理服务从后端服务接收所述第二访问令牌,所述第二访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第二访问令牌具有比应用工作流的持续时间短的第二有效期;和
通过代理服务使用所述第二访问令牌代表应用工作流与后端服务交互,
基于确定代表所述应用工作流与后端服务的交互被完成,通过代理服务使所述第一访问令牌和第二访问令牌无效,
其中,第一访问令牌由作为代理服务一部分的授权客户端请求,并且第二访问令牌由作为后端服务一部分的授权客户端请求。
8.根据权利要求7所述的系统,其中所述第一访问令牌和第二访问令牌根据开放授权(OAuth)标准的版本来布置。
9.根据权利要求7所述的系统,其中所述第一访问令牌被配置为不具有指定的有效期。
10.根据权利要求7所述的系统,其中:
所述应用工作流包括多个任务;和
对所述第一访问令牌的请求在完成所述多个任务的第一任务时被发送到代理服务。
11.根据权利要求10所述的系统,其中所述访问后端服务的请求在完成所述多个任务的最后一个任务时被发送到代理服务。
12.根据权利要求7所述的系统,其中响应于与所述应用工作流的第一次用户交互,将所述对第一访问令牌的请求发送到代理服务。
13.一种或多种存储指令的计算机可读介质,当该指令由至少一个处理器执行时,使所述至少一个处理器执行操作,该操作包括:
通过代理服务从应用工作流接收对第一访问令牌的请求;
响应于接收到对第一访问令牌的请求,将所述第一访问令牌从代理服务提供给应用工作流,所述第一访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第一访问令牌具有至少是应用工作流的持续时间的第一有效期;
通过代理服务从应用工作流接收访问后端服务的请求;
响应于接收到访问后端服务的请求,通过代理服务请求来自后端服务的第二访问令牌;
通过代理服务从后端服务接收所述第二访问令牌,所述第二访问令牌包括与应用工作流的用户相关联的至少一个凭证,所述第二访问令牌具有比应用工作流的持续时间短的第二有效期;和
通过代理服务使用所述第二访问令牌代表应用工作流与后端服务交互,
基于确定代表所述应用工作流与后端服务的交互被完成,通过代理服务使所述第一访问令牌和第二访问令牌无效,
其中,第一访问令牌由作为代理服务一部分的授权客户端请求,并且第二访问令牌由作为后端服务一部分的授权客户端请求。
14.根据权利要求13所述的一种或多种计算机可读介质,其中所述第一访问令牌和第二访问令牌根据开放授权(OAuth)标准的版本来布置。
15.根据权利要求13所述的一种或多种计算机可读介质,其中所述第一访问令牌被配置为不具有指定的有效期。
16.根据权利要求13所述的一种或多种计算机可读介质,其中:
所述应用工作流包括多个任务;和
对所述第一访问令牌的请求在完成所述多个任务的第一任务时被发送到代理服务。
17.根据权利要求16所述的一种或多种计算机可读介质,其中所述访问后端服务的请求在完成所述多个任务的最后一个任务时被发送到代理服务。
18.根据权利要求13所述的一种或多种计算机可读介质,其中响应于与所述应用工作流的第一次用户交互,将所述对第一访问令牌的请求发送到代理服务。
CN201811451801.4A 2018-07-13 2018-11-30 用于状态保存和重用的访问令牌管理 Active CN110717171B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/034,880 2018-07-13
US16/034,880 US10904238B2 (en) 2018-07-13 2018-07-13 Access token management for state preservation and reuse

Publications (2)

Publication Number Publication Date
CN110717171A CN110717171A (zh) 2020-01-21
CN110717171B true CN110717171B (zh) 2023-12-29

Family

ID=64426729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811451801.4A Active CN110717171B (zh) 2018-07-13 2018-11-30 用于状态保存和重用的访问令牌管理

Country Status (3)

Country Link
US (1) US10904238B2 (zh)
EP (1) EP3594871A1 (zh)
CN (1) CN110717171B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3648429A1 (en) * 2018-10-29 2020-05-06 Siemens Aktiengesellschaft Method and system for providing access to data stored in a security data zone of a cloud platform
WO2020112989A1 (en) * 2018-11-30 2020-06-04 Jpmorgan Chase Bank, N.A. Systems and methods for securely calling apis on an api gateway from applications needing first party authentication
CN111581612B (zh) * 2020-04-26 2022-04-22 支付宝(杭州)信息技术有限公司 小程序应用的登录态数据处理方法、装置、设备及系统
CN113347190B (zh) * 2021-06-10 2022-10-21 北京字节跳动网络技术有限公司 鉴权方法、系统、从站点服务器、客户端、设备和介质
US20230353556A1 (en) * 2022-04-27 2023-11-02 Dell Products L.P. Performance of user operations by a first system on a second system using user impersonation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533796B1 (en) * 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
CN103930897A (zh) * 2011-09-29 2014-07-16 甲骨文国际公司 移动应用、单点登录管理
CN104255007A (zh) * 2011-09-29 2014-12-31 甲骨文国际公司 Oauth框架
CN105659558A (zh) * 2013-09-20 2016-06-08 甲骨文国际公司 具有单一、灵活、可插拔OAuth服务器的多个资源服务器和OAuth保护的RESTful OAuth同意管理服务,以及对OAuth服务的移动应用单点登录

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119219A (en) * 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
US8010484B2 (en) 2003-06-16 2011-08-30 Sap Aktiengesellschaft Generating data subscriptions based on application data
US7966260B2 (en) 2003-06-16 2011-06-21 Sap Aktiengesellschaft Generating data subscriptions based on application data
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US20070276715A1 (en) 2006-05-15 2007-11-29 Joerg Beringer Distributed activity management
US20080115195A1 (en) 2006-11-13 2008-05-15 Microsoft Corporation Remote workflow schedule authoring
US8381181B2 (en) 2007-08-31 2013-02-19 International Business Machines Corporation Updating a workflow when a user reaches an impasse in the workflow
US8091043B2 (en) 2007-09-11 2012-01-03 Sap Ag Modeling environment graphical user interface
US8316380B2 (en) 2007-09-21 2012-11-20 Sap Ag Process log supporting multiple flavors of processes
US20090099882A1 (en) * 2007-10-15 2009-04-16 Sap Ag Enhanced Security Framework for Composite Applications
US7974939B2 (en) 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8930497B1 (en) 2008-10-31 2015-01-06 Netapp, Inc. Centralized execution of snapshot backups in a distributed application environment
US8972868B2 (en) 2008-12-08 2015-03-03 Sap Ag Task decomposition with data availability
US8904343B2 (en) 2009-12-21 2014-12-02 Sap Se Adding services to application platform via extension
US8468124B2 (en) 2010-06-30 2013-06-18 International Business Machines Corporation Debugging workflows
US9560035B2 (en) * 2010-08-04 2017-01-31 At&T Mobility Ii Llc Systems, devices, methods and computer program products for establishing network connections between service providers and applications that run natively on devices
US9767268B2 (en) 2011-04-20 2017-09-19 International Business Machines Corporation Optimizing a compiled access control table in a content management system
US8910166B2 (en) 2011-09-09 2014-12-09 Microsoft Corporation Automatic transcoding and semantic adaptation between scripting and workflow systems
US8745635B2 (en) 2012-04-24 2014-06-03 Sap Ag Managing business process messaging
US9256412B2 (en) 2012-07-04 2016-02-09 Sap Se Scheduled and quarantined software deployment based on dependency analysis
US8887260B2 (en) * 2012-10-25 2014-11-11 Facebook, Inc. Token-based access control
US9930103B2 (en) * 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US20170039492A1 (en) 2015-08-04 2017-02-09 Sap Se Workflow management system leveraging in-memory platform artifacts
US9721230B2 (en) 2015-08-04 2017-08-01 Sap Se Developer mode for workflow systems steering patch deployment
US20170039521A1 (en) 2015-08-04 2017-02-09 Sap Se Protection of running workflows against deployment
US20170039385A1 (en) 2015-08-04 2017-02-09 Sap Se Record-level security access in workflows
US20170039046A1 (en) 2015-08-04 2017-02-09 Sap Se Lock-free execution of workflow instances
US9712513B2 (en) * 2015-10-05 2017-07-18 Kony, Inc. Identity management over multiple identity providers
US10425465B1 (en) * 2016-07-29 2019-09-24 Google Llc Hybrid cloud API management
US10936711B2 (en) * 2017-04-18 2021-03-02 Intuit Inc. Systems and mechanism to control the lifetime of an access token dynamically based on access token use
US10715564B2 (en) * 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11122035B2 (en) * 2018-05-24 2021-09-14 International Business Machines Corporation Secure delegation of a refresh token for long-running operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533796B1 (en) * 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
CN103930897A (zh) * 2011-09-29 2014-07-16 甲骨文国际公司 移动应用、单点登录管理
CN104255007A (zh) * 2011-09-29 2014-12-31 甲骨文国际公司 Oauth框架
CN105659558A (zh) * 2013-09-20 2016-06-08 甲骨文国际公司 具有单一、灵活、可插拔OAuth服务器的多个资源服务器和OAuth保护的RESTful OAuth同意管理服务,以及对OAuth服务的移动应用单点登录

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴栋淦 ; .解析OAuth2.0流程及认证接口设计.佛山科学技术学院学报(自然科学版).(第06期),全文. *

Also Published As

Publication number Publication date
US10904238B2 (en) 2021-01-26
CN110717171A (zh) 2020-01-21
US20200021573A1 (en) 2020-01-16
EP3594871A1 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
CN110717171B (zh) 用于状态保存和重用的访问令牌管理
US11736469B2 (en) Single sign-on enabled OAuth token
US10621329B2 (en) Mobile application, resource management advice
US11658984B2 (en) Authenticating access to computing resources
US10057335B2 (en) Dynamic registration of an application with an enterprise system
CN109828761B (zh) 为企业系统中的设备管理改变事件的方法、系统和介质
US20180324173A1 (en) Stateful session manager
CA3120582A1 (en) Dual factor authentication with active directory and one time password token combination
EP3610623B1 (en) Protocol-level identity mapping
US20160164851A1 (en) Authenticating mobile applications using policy files
US10162952B2 (en) Security model for network information service
US10992680B2 (en) Authorization client management in a distributed computing environment
US11159634B1 (en) Subscription fan out
CN110447033B (zh) 基于客户访问限制的认证
US11126610B1 (en) Conflict resolution in a data proxy
US11089133B1 (en) Synchronizing data with delayed subscriptions
US20230098484A1 (en) Techniques for backwards compatibility in an identity management cloud service
US20230099355A1 (en) Single sign-on services for database clusters

Legal Events

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