CN112771831B - 用于反向代理解决方案中的单点登入认证的随机数处置器 - Google Patents

用于反向代理解决方案中的单点登入认证的随机数处置器 Download PDF

Info

Publication number
CN112771831B
CN112771831B CN201980061782.0A CN201980061782A CN112771831B CN 112771831 B CN112771831 B CN 112771831B CN 201980061782 A CN201980061782 A CN 201980061782A CN 112771831 B CN112771831 B CN 112771831B
Authority
CN
China
Prior art keywords
authentication
client
session identifier
proxy service
service
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
CN201980061782.0A
Other languages
English (en)
Other versions
CN112771831A (zh
Inventor
N·马迪克斯·拉帕波特
V·马利克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112771831A publication Critical patent/CN112771831A/zh
Application granted granted Critical
Publication of CN112771831B publication Critical patent/CN112771831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • 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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

示出了用于向反向代理系统提供SSO能力的方法、系统和介质,涉及从客户端接收包括认证令牌和专用会话标识符的认证响应消息并且确定标识符是否被存储在代理服务上。如果会话标识符被存储在代理服务上,则向认证响应消息被引导到的服务提供方发送认证响应消息。如果认证响应消息中的会话标识符未被存储在代理服务上:则向认证响应消息被引导到的服务提供方发送登录请求消息,从服务提供方接收认证请求消息,认证请求消息包括另一专用会话标识符并且将认证请求消息重新引导到身份提供方,存储另一会话标识符,并且向客户端发送具有另一标识符的认证请求消息。

Description

用于反向代理解决方案中的单点登入认证的随机数处置器
背景技术
在网络安全中,恶意行为者或攻击者经常尝试使用合法(易受攻击的)文件进行恶意使用或利用敏感信息访问文件来渗透计算机系统,以利用敏感信息访问或破坏文件或者将恶意文件放在机器的文件系统上。例如,财务或个人信息可能被获取和出售或用于窃取资金。公共和私人实体的重要信息可能会被窃取、破坏或毁坏。
攻击者时常使用的一种方法是被称为回放攻击或重放攻击的网络攻击,其中有效的数据传输(例如来自客户端浏览器)会被攻击者拦截,然后被回放或重播以获得对计算机资源的访问。例如,计算机系统要求用户提供他们的用户凭证,例如用户名和密码,以便获得对计算机系统支持的资源的访问。攻击者在用户与计算机系统交换期间会拦截用户凭证。随后,攻击者重播或回放被拦截的用户凭证,以渗透计算机系统。
为了防止回放攻击,许多系统与每个登录会话一起地利用专用的随机会话标识符值,诸如随机值或会话令牌。例如,计算机系统可以生成对于会话专用的随机数值,并使用如下散列函数对随机数值进行散列,仅计算机系统稍后可以通过从随机数再次生成散列并且将其与接收到的散列值进行匹配来验证该散列函数。
计算机系统向客户端提供随机数值和经散列随机数值,该客户端存储随机数并且在会话期间与计算机系统的后续通信中利用随机数和经散列随机数值。随机数通常由与计算机系统的域相关联的计算机系统存储在被放置在客户端上的cookie中,例如box.com。该计算机系统能够使用由该计算机系统针对该会话存储的随机数值来重新生成经散列随机数值,并且将接收到的经散列随机数值与该重新生成的经散列随机数值进行比较。如果接收到的经散列随机数值与重新生成的经散列随机数值不匹配,那么该通信被视为攻击,并且被计算机系统拒绝。
然而,许多系统利用反向代理作为客户端设备和计算机系统之间的中介。例如,反向代理可以被用于提供对位于防火墙后面的服务器的访问。当利用反向代理服务时,客户端设备和计算机系统之间的通信被重新引导以穿过反向代理服务。然而,由于反向代理服务具有与计算机系统不同的域,例如box.com.proxy.ms,代理服务不具有由计算机系统针对该会话生成的随机数值。结果,反向代理服务无法提供由计算机系统针对会话生成的随机数,因此,来自反向代理服务的通信被计算机系统认为是无效的并且被拒绝,从而使反向代理服务不可用。
相对于这些和其他技术挑战,提出了本文进行的本公开。
发明内容
在认证期间使用专用会话标识符来防止对计算机系统的重播或重放攻击是期望的且是广泛使用的安全性措施。然而,利用反向代理服务以用于用户客户端和服务提供方之间的通信也可能是有利的。然而,常规的反向代理服务利用与服务提供方的域不同的域。差异在于域可能会导致常规的反向代理服务无法访问与服务提供方的域相关联的专用会话标识符,从而防止成功的认证。所公开的技术提供了一种解决方案,该解决方案准许反向代理服务被用于处置用户客户端和服务提供方之间的通信,同时还准许在认证中利用专用会话标识符来防止重播或重放攻击。
为了实现上面简要提及的技术益处,本文公开的技术的某些实施方式可以在具有反向代理服务的系统中执行单点登入认证,这涉及从客户端向服务提供方发送第一登录请求,以发起第一登录会话。响应于第一登录请求,服务提供方生成第一专用会话标识符,存储第一专用会话标识符,并且对第一专用会话标识符进行散列,以创建第一会话标识符散列。服务提供方向客户端发送第一认证请求消息,该第一认证请求消息包含第一会话标识符和第一会话标识符散列并且将第一认证请求消息重新引导到身份提供方。
响应于第一认证请求消息,客户端存储第一会话标识符并且向身份提供方发送第一认证请求。身份提供方响应于第一认证请求而认证客户端,生成第一认证令牌,并且向客户端发送具有第一认证令牌并且将客户端重新引导到代理服务的第一认证响应。客户端接收具有第一认证令牌的第一认证响应,并且将具有第一会话标识符的第一认证响应重新引导到代理服务。
代理服务接收第一认证响应并且确定第一会话标识符是否被存储在代理服务上。如果第一会话标识符未被存储在代理服务上,则代理服务向服务提供方发送第二登录请求,以发起第二登录会话。响应于第二登录请求,服务提供方生成第二专用会话标识符,存储第二专用会话标识符,并且对第二专用会话标识符进行散列,以创建第二会话标识符散列。服务提供方从服务提供方向代理服务发送第二认证请求消息,该第二认证请求消息包含第二会话标识符并且将第二认证请求消息重新引导到身份提供方。
代理服务存储第二会话标识符并且向客户端发送第二认证请求消息。客户端存储第二会话标识符并且向身份提供方发送第二认证请求消息。身份提供方响应于第二认证请求而认证客户端,生成第二认证令牌,并且向客户端发送具有第二认证令牌并且将客户端重新引导到代理服务的第二认证响应。客户端接收具有第二认证令牌的第二认证响应,并且将具有第二会话标识符的第二认证响应重新引导到代理服务。
代理服务接收第二认证响应并且确定第二会话标识符是否被存储在代理服务上。如果第二会话标识符被存储在代理服务上,则代理服务向服务提供方发送第二认证响应,以完成第二登录会话。
在一些实施方式中,第一会话标识符包括第一随机数,并且第二会话标识符包括第二随机数。在某些实施方式中,第二登录请求包括与第一登录请求中的状态数据相匹配的状态数据。在另一实施方式中,在身份提供方中使用代理配置数据来标识代理服务。在又一实施方式中,第一认证请求中所包括的一个或多个参数被用于标识代理服务。在特定实施方式中,代理服务是后缀代理服务,并且针对后缀代理服务的标识数据被附加到与服务提供方相对应的通用资源。
在具有单点登入认证能力的反向代理系统的实施方式中,代理服务被配置为从客户端接收包括认证令牌和专用会话标识符的认证响应消息,并且确定从客户端接收的认证响应消息中的专用会话标识符是否被存储在代理服务上。如果从客户端接收的认证响应消息中的专用会话标识符被存储在代理服务上,则代理服务被配置为向认证响应消息被引导到的服务提供方发送具有认证令牌和专用会话标识符的认证响应消息。
如果从客户端接收的认证响应消息中的专用会话标识符未被存储在代理服务上,则代理服务被配置为向认证响应消息被引导到的服务提供方发送登录请求消息,从服务提供方接收认证请求消息,该认证请求消息包括另一专用会话标识符并且将认证请求消息重新引导到身份提供方,将另一专用会话标识符存储在代理服务上,并且将具有另一专用会话标识符的认证请求消息发送给客户端。
如上面简要讨论的,本文公开的技术的实施方式可以使得能够使用与反向代理服务一起使用的专用会话标识符进行认证,以减少计算机系统在认证期间相对于重放攻击的脆弱性,从而避免由于计算机资源受损或破坏而造成的低效。更安全的计算机系统将为计算机系统的授权用户带来计算机资源的更高的可用性和效率性。也可以通过所公开技术的实施方式来实现本文未具体标识的其他技术益处。
应该了解的是,上述主题可以实施为计算机控制的装置、计算机实现的方法、计算设备或者诸如计算机可读介质等制品。通过阅读以下详细说明和回顾关联附图,这些和各种其他特征将是显而易见的。
该发明内容被提供来以简化的形式介绍下面在详细描述中进一步描述的所公开技术的一些方面的简要描述。该发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,并且该发明内容不旨在被用于限制所要求保护的主题的范围。此外,所要求保护的主题并不限于解决在本公开的任何部分中提到的任何或所有缺点的实施方式。
附图说明
图1是示出了涉及客户端设备、身份提供方、服务提供方和反向代理服务的联网计算环境的说明性示例的网络架构图;
图2A是示出了在没有反向代理服务的情况下用于单点登入认证的客户端设备、服务提供方和身份提供方之间的消息的常规交换的说明性示例的软件架构图;
图2B是示出了利用反向代理服务在客户端设备、服务提供方和身份提供方之间进行消息的常规交换的说明性示例的软件架构图,该反向代理服务导致单点登入认证失败;
图3是示出了根据所公开的技术利用反向代理服务进行单点登入认证的客户端设备、服务提供方和身份提供方之间的消息交换的说明性示例的软件架构图;
图4是示出了根据所公开的技术利用反向代理服务进行单点登入认证的客户端设备、服务提供方和身份提供方之间的消息传送的图示的信息收发图;
图5A是示出了客户端设备中的用于与服务提供方的单点登入登录会话的过程的说明性示例的流程图,其中客户端设备被重新引导到身份提供方以供认证;
图5B是示出了客户端设备中的用于与利用反向代理服务的服务提供方的单点登入登录会话的过程的说明性示例的流程图,其中客户端设备被重新引导到身份提供方以供认证;
图5C是示出了根据所公开的技术在身份提供方中用于在与服务提供方的单点登入登录会话期间将客户端设备重新引导到反向代理服务的过程的说明性示例的流程图;
图5D是示出了根据所公开的技术在反向代理服务中用于利用反向代理服务认证客户端设备以与服务提供方建立单点登入登录会话的过程的说明性示例的流程图;
图5E是示出了反向代理服务中用于利用反向代理服务认证客户端设备的过程的另一说明性示例的流程图;
图5F是示出了图5E的过程的附加部分的流程图;
图5G是示出了图5E的过程的其他附加部分的流程图;
图6是示出了用于计算设备(诸如图1和图3所示的计算设备)的说明性计算机硬件和软件架构的计算机架构图,其可以实施本文提出的技术的各个方面;
图7是图示了能够实施本文提出的技术的各个方面的分布式计算环境的网络图;以及
图8是图示了用于计算设备(诸如图1和图3所示的计算设备)的计算设备架构的计算机架构图,其能够实施本文提出的技术的各个方面。
具体实施方式
以下详细描述涉及一种用于在与服务提供方的单点登入(SSO)登录会话期间重新引导客户端设备通过反向代理服务的方法。如上面简要讨论的,使用专用会话标识符(诸如随机数)有利于防止重播或回放攻击以获得对计算机系统的访问。利用反向代理服务来管理客户端设备与服务提供方之间的通信也是有利的。
然而,反向代理服务的使用通常与使用专用会话标识符的SSO登录的常规方法不兼容,因为由服务提供方生成的专用会话标识符通常被发送给客户端设备并与服务提供方的特定域(例如box.com)相关联地存储在其上,诸如以放置在客户端上的浏览器上的cookie的形式。然而,由于反向代理服务通常利用不同的域,例如box.com.proxy.ms,反向代理服务无法访问专用会话标识符。反向代理服务无法将专用会话标识符提供给服务提供方,这通常会导致拒绝登录尝试。
在所公开的技术中,客户端发起与服务提供方的第一登录尝试,并且服务提供方通过向客户端发送第一会话标识符和第一会话标识符的散列并将客户端重新引导到身份提供方以供认证来响应。身份提供方对客户端在第一登录尝试中提供的用户凭证进行认证,并利用第一会话标识符散列生成第一认证令牌。身份提供方还确定是否定义了与客户端相关的反向代理服务,并且如果反向代理服务被定义,则将具有第一认证令牌并将客户端重新引导到反向代理服务的认证响应发送给客户端。
客户端向反向代理服务提供第一认证令牌、第一会话标识符和第一会话标识符散列。如果反向代理服务无法识别出由客户端设备提供的第一会话标识符,那么反向代理服务发起对服务提供方的第二登录尝试。服务提供方通过向反向代理服务发送第二会话标识符并且重新引导到身份提供方来响应于第二登录尝试。反向代理服务存储第二会话标识符,并且将响应传递给客户端。
身份提供方对由客户端在第二登录尝试中提供的用户凭证进行认证,利用第二会话标识符散列生成第二认证令牌。身份提供方发送第二认证响应,该第二认证响应将客户端重新引导到反向代理服务并且包括第二认证令牌。客户端将第二第二认证响应和第二会话标识符提供给反向代理服务。因为反向代理服务存储了第二会话标识符,所以反向代理服务识别出第二会话标识符,并且将第二认证令牌和第二会话标识符传递给服务提供方。服务提供方识别第二会话标识符,并且基于第二认证令牌完成第二登录尝试。
所公开的技术通过使反向代理服务能够与使用专用会话标识符的SSO认证一起使用来提高计算机安全性。从使用反向代理服务获得的安全性和资源利用优点与从在SSO认证会话中使用专用会话标识符获得的安全性相组合。
虽然本文描述的主题是在与计算机系统上的操作系统和应用程序的执行结合执行的程序模块的一般上下文中提出的,但是本领域技术人员将认识到,可以与其他类型的程序模块组合执行其他实施方式。通常,程序模块包括例程、程序、组件、数据结构以及执行特定任务或实施特定抽象数据类型的其他类型的结构。而且,本领域技术人员将了解,本文描述的主题可以与其他计算机系统配置一起实践,包括手持设备、多处理器系统、基于微处理器的或可编程的客户电子设备、嵌入在设备中的计算或处理系统(诸如可穿戴设备、汽车、家庭自动化等)、小型计算机、大型计算机等。
在以下详细描述中,参照了形成其一部分并且通过说明的方式示出特定配置或示例的附图。现在参照附图,其中在多个附图中相同的数字表示相同的元件,将描述具有反向代理服务的系统中的单点登入认证的各个方面,该反向代理服务提供提高的安全性。
图1是示出了网络计算环境100的说明性示例的网络架构图,该网络计算环境100涉及通过网络110与身份提供方104、服务提供方106和反向代理服务108通信的客户端设备102。客户端设备102可以是用户用于通过网络访问资源(诸如由服务提供方106提供的服务)的设备,诸如个人计算机或智能电话。
身份提供方(IdP)104创建、维持和管理针对用户的标识信息,并向由服务提供方106所支持的应用提供认证服务。例如,IdP 104可以是基于安全断言标记语言(SAML)的身份提供方,其连同由SAML服务提供方106消耗的用户的SSO简档来发出认证断言,例如认证令牌。在另一示例中,IdP 104可以提供由加利福尼亚圣拉蒙的OPENID基金会控制的OAuth2.0标准的OpenID Connect(OIDC)认证层,其将标识认证令牌提供给依赖服务提供方106的OIDC。
服务提供方106支持由客户端102可以通过网络110访问的应用。当客户端102尝试访问服务提供方106上需要认证的应用时,该应用将客户端重新引导到IdP 104以证实客户端的真实性,诸如通过针对标识数据库(例如由华盛顿雷德蒙市的微软公司提供的活动目录(AD)目录服务)检查客户端的用户凭证,例如用户名和密码。如果客户端的用户凭证的认证成功,则IdP 104将利用表示对客户端的用户凭证的证实的认证令牌将客户端返回到应用。
图2A是软件架构图,其图示了在没有反向代理服务的情况下客户端设备102、IdP104和服务提供方106之间用于SSO认证会话的消息的常规交换200的简化示例。在该示例中,在202中,客户端102向服务提供方106上的应用发起登录请求。服务提供方106生成专用会话标识符值,例如在该示例中为随机数值,并对该随机数进行散列,例如使用公钥加密该随机数。在204中,服务提供方106将包含随机数和随机数散列的响应发送给客户端102,并且将客户端102重新引导到IdP 104以供认证。
客户端102存储随机数,并且在210中将具有随机数散列的认证请求发送给IdP104,以用于对客户端的用户凭证的认证。如果IdP104成功地认证了客户端的用户凭证,那么在212中,IdP 104将具有随机数散列的认证令牌发送给客户端102。将随机数散列包括在认证令牌中防止了该认证令牌由不具有对应的随机数值的任何其他客户端使用。
在220中,客户端102将认证令牌、随机数和随机数散列转发给服务提供方106。服务提供方106通过从它针对会话存储的随机数值重新生成随机数散列值并且将所重新生成的随机数散列值与接收到的随机数散列值进行比较来验证没有发生回放攻击。服务提供方106将认证令牌用作客户端102的标识的证实,并且同意访问102所请求访问的应用。
图2B是示出了利用反向代理服务108在客户端设备102、服务提供方106和身份提供方104之间进行消息的常规交换250的说明性示例的软件架构图,该反向代理服务108导致单点登入认证失败。在该示例中,类似于上述图2A的示例,客户端102在252中发起第一登录请求,并且在254中从服务提供方106接收具有随机数和随机数散列的响应,该响应将客户端102重新引导到IdP 104。客户端102存储随机数,例如使用客户端102上与针对服务提供方106的域(例如box.com)相关联的cookie。
在260中,客户端102将它的认证请求与随机数散列一起重新引导到IdP 104。IdP104对来自客户端102的用户凭证进行认证,生成具有认证令牌和随机数散列的将客户端102重新引导到反向代理服务108的认证响应。在264中,客户端102利用从IdP 104接收的认证令牌将认证响应引导通过反向代理服务108到服务提供方106。然而,因为反向代理服务108具有与服务提供方不同的域,例如box.com.proxy.ms,代理服务不具有对由服务提供方106所提供的会话的随机数的访问。因为反向代理服务无法与随机数一起提供与认证令牌中的随机数散列相对应的认证令牌,服务提供方106无法使用随机数来验证会话,并且拒绝作为所尝试的回放攻击的登录尝试的完成。
所公开的技术提供了一种方法,由此反向代理服务针对客户端的登录会话从服务提供方获得专用会话标识符,例如随机数,其中服务提供方将客户端重新引导到身份提供方以供认证。所公开的技术通常不需要修改客户端、服务提供方或身份提供方,而是可以在反向代理服务中实施。结果,例如所公开的技术可以被实施,以使客户端能够使用反向代理服务相对于服务提供方被IdP认证,其中IdP、客户端和服务提供方可以根据标准标识协议(诸如SAML或OpenID)进行操作。
图3是示出了根据所公开的技术利用反向代理服务308进行单点登入认证的客户端设备102、服务提供方106和身份提供方304之间的消息交换300的说明性示例的软件架构图。
与上面相对于图2A和图2B描述的常规示例一致,在302中,客户端102向服务提供方106发起第一登录请求。响应于第一登录请求,服务提供方106生成第一随机数NONCE1并且对其进行散列以产生第一随机数散列HASH1。在303中,在REDIR-IDP AUTH REQ1(NONCE1、HASH1)中,服务提供方106将客户端102重新引导到IdP 304以供认证,并且将NONCE1和HASH1发送给客户端102。
客户端102将NONCE1存储在诸如由服务提供方106放置在客户端102上的与服务提供方域相关联的cookie中。在310中,客户端102将包含HASH1的第一认证请求AUTH REQ1发送给具有用户凭证的IdP 304,以供用户尝试登录服务提供方106上的应用。IdP 304对客户端的用户凭证进行认证,并且生成包括HASH1的第一认证令牌TOKEN1,并且还在重新引导配置数据305中搜索定义与客户端的用户凭证相关的反向代理服务的数据。
在312中,在REDIR-PROXY AUTH RESP TOKEN1(HASH1)中,IdP 304向客户端102发送具有TOKEN1和HASH1的认证响应,该认证响应将客户端102重新引导到反向代理服务308,反向代理服务308在重新引导配置数据305中被定义。在320中,客户端102将包含TOKEN1和HASH1以及NONCE1的认证响应重新引导到反向代理服务308。例如,可以使用后缀代理方法将客户端102重新引导到反向代理服务308,其中代理服务器的名称被附加到客户端102尝试登录的服务提供方106上的应用的URL。例如,可以将解析为服务提供方106上的应用的box.com的URL修改为box.com.proxy.ms,其解析为反向代理服务308,但是可以由反向代理服务308提取原始URL box.com。建立针对客户端的反向代理服务的其他方法也可以与所公开的技术一起使用。
响应于接收到具有TOKEN1、NONCE1和HASH1的认证响应,反向代理服务308在其本地数据存储库中搜索NONCE1。因为客户端102在302中关于服务提供方域发起了第一登录请求,所以NONCE1不存在于反向代理服务308上。结果,在330中,反向代理服务308向服务提供方106发起第二登录请求AUTH REQ2。
响应于第二登录请求,服务提供方106生成第二随机数NONCE2并且对其进行散列以产生第二随机数散列HASH2。在332中,在REDIR-IDP AUTH REQ2(NONCE2、HASH2)中,服务提供方106将反向代理服务308重新引导到IdP 304以供认证,并且将NONCE2和HASH2发送给反向代理服务308,该反向代理服务308存储NONCE2。反向代理服务308然后将REDIR-IDPAUTH REQ2(NONCE2、HASH2)传递给客户端102。
客户端102存储NONCE2,并且在340中,向IdP 304发送具有客户端的用户凭证和HASH2的第二认证请求AUTH REQ2。IdP 304对客户端的用户凭证进行认证,并且生成具有HASH2的第二认证令牌TOKEN2,该第二认证令牌在342中以REDIR-PROXY AUTH RESPTOKEN2(HASH2)被发送给客户端102。要注意的是,如果客户端102被配置为对反向代理服务308的URL进行回复,则此时到代理的重新引导可能不是必需的。在336中,客户端102将NONCE2添加到认证响应,并且将AUTH RESPTOKEN2(NONCE2、HASH2)发送给反向代理服务308。
反向代理服务308在其本地数据存储库中搜索NONCE2,NONCE2因为在332中由服务提供方106发送给反向代理服务308的来自REDIR-IDP AUTH REQ2(NONCE2、HASH2)消息的NONCE2被反向代理服务308存储而被找到。结果,在350中,反向代理服务308将认证响应AUTH RESP TOKEN2(NONCE2、HASH2)发送给服务提供方106。
服务提供方106接收AUTH RESP TOKEN2(NONCE2、HASH2)并且利用HASH2通过从针对该会话所存储的NONCE2的值重新生成随机数散列并且将所重新生成的散列值与接收到的散列值进行比较来验证没有回放攻击发生。如果接收到的随机数散列值HASH2与所重新生成的随机数散列值相匹配,那么服务提供方106在330中完成由登录请求LOGIN REQ2发起的第二登录会话。TOKEN2证实从客户端102接收到的用户凭证。要注意的是,与在302中来自客户端102的LOGIN REQ1相关联的第一登录会话未完成。
要注意的是,尽管本文描述的场景引用了随机数,诸如OpenID协议中提供的随机数,但是所描述的概念可以被应用于专用会话标识符值被生成并且用于防止回放攻击的其他场景或协议。类似地,尽管本文描述的场景引用了认证令牌,但本文描述的概念可以应用于其他场景或协议,其中身份提供方使用其他形式的标识认证数据来指示客户端的用户凭证已通过认证。
图4是示出了消息传送场景400的图示的消息收发图,其示出了根据上面相对于图3讨论的所公开的技术利用反向代理服务308进行单点登入认证的客户端设备102、服务提供方106和身份提供方304之间的消息的序列。
在402中,客户端设备通过向服务提供方106提交第一登录请求来发起第一登录会话。作为响应,服务提供方106生成第一随机数NONCE1,该第一随机数NONCE1被散列以创建HASH1,例如使用服务提供方106已知的第一密钥。在404中,服务提供方106通过将客户端102重新引导到IdP 304来进行响应,并且包括NONCE1,客户端102本地存储NONCE1(例如存储在与客户端正在请求访问的服务提供方域相关联的客户端102上的cookie中)以及HASH1。
在410中,客户端102提交第一认证请求AUTH REQ1(HASH1),例如使用客户端102提交用户的凭证来访问服务提供方106上的应用或域。IdP 304对用户凭证进行认证,并且如果成功的话,则生成TOKEN1或类似数据指示用户凭证有效。IdP 304还被配置为搜索针对登录会话所定义的代理重新引导,这可以基于一个或多个因素,诸如用户的凭证或域、认证请求中的参数、或服务提供方106上的应用的域。
如果找到相关的代理重新引导定义,那么在412中,IdP 304向客户端102发送包含TOKEN1和HASH1的认证响应,即,REDIR-PROXY AUTH RESP(TOKEN1),该认证响应将客户端102重新引导到反向代理服务。如上面所讨论的,所示的重新引导的一个示例是后缀代理重新引导,该后缀代理重新引导将代理后缀添加到客户端102尝试访问的服务提供方106上的应用的URL。在414中,客户端102将NONCE1添加到认证响应,并且由于重新引导,将AUTHRESP TOKEN1(NONCE1、HASH1)转发给反向代理服务308。
反向代理服务308接收AUTH RESP TOKEN1(NONCE1、HASH1),审查NONCE1,并且确定它先前没有存储NONCE1。该确定使反向代理服务308在422中发起具有被发送给服务提供方106的LOGIN REQ2的第二登录会话。
服务提供方106通过生成和存储第二随机数NONCE2、对NONCE2进行散列以创建HASH2、并且返回将登录请求重新引导到IdP 304的消息并且该消息包括NONCE2和HASH2(例如REDIR-IDP AUTH REQ2(NONCE2、HASH2))来响应LOGIN REQ2。REDIR-IDP AUTH REQ2(NONCE2、HASH2)消息被引导到反向代理服务308,例如解析为反向代理服务308的后缀代理URL,因为LOGIN REQ2起源于反向代理服务308。
反向代理服务308接收REDIR-IDP AUTH REQ2(NONCE2、HASH2),本地存储NONCE2,并在424中传递REDIR-IDP AUTH REQ2(NONCE2、HASH2)通过到客户端102。客户端102本地存储NONCE2,并且在430中,将针对第二登录会话的第二认证请求AUTH REQ2(HASH2)提交给IdP 304。
IdP 304对AUTH REQ2中的用户凭证进行认证,生成具有HASH2的第二认证令牌TOKEN2,并且在432中将具有TOKEN2的第二认证响应(例如REDIR-PROXY AUTH RESP TOKEN2(HASH2))发送给客户端102。客户端102将NONCE2附加到第二认证响应,例如AUTH RESPONSETOKEN2(NONCE2,HASH2),并在434中将第二认证响应发送给反向代理服务308。
反向代理服务308识别出NONCE2,因为它是先前存储的。因为反向代理服务308识别出NONCE2,所以它在436中将第二认证响应传递给服务提供方106。服务提供方106利用HASH2通过从针对该会话所存储的NONCE2的值重新生成随机数散列值并且将所重新生成的散列值与接收到的HASH2的值进行比较来验证第二认证响应。如果散列值匹配,那么认证响应被验证。然后,服务提供方106使用TOKEN2完成第二登录会话。客户端102和服务提供方106之间的后续通信穿过反向代理服务308。
要注意的是,一些会话上下文数据可以由客户端102、服务提供方106和反向代理服务308交换和维持。例如,如下服务提供方上下文数据可以被维持,该服务提供方上下文数据指示客户端102尝试访问的服务提供方106上的资源,例如服务提供方106上的登陆页面的URL。
要了解的是,在与图3和图4相关联的示例中示出的架构和消息收发是说明性的,并且不限制所公开的技术的范围。本领域技术人员将容易认识到,可以与所公开的技术保持一致地使用其他架构和消息协议。
图5A至图5D是示出了在客户端102、服务提供方106、IdP 304和反向代理服务308中执行的过程的说明性示例的流程图。要注意的是,客户端102和服务提供方106中的过程可以是用于执行在协议(诸如OpenID或SAML)下定义的认证功能的常规过程,并且IdP304中的过程可以是用于利用代理服务的常规过程。在所公开技术的一个方面中,反向代理服务308中的过程操纵根据所定义的认证协议操作的客户端102和服务提供方106的过程,以便与专用会话标识符组合来实施反向代理服务以防止回放攻击。
图5A是示出了客户端102中的用于与服务提供方的单点登入登录会话的登录过程500的说明性示例的流程图,其中客户端被重新引导到IdP 304以供认证。在502中,用户登录请求被发送给服务提供方,例如服务提供方106,以请求访问应用或资源。在504中,从服务提供方接收包含第一随机数和第一随机数散列并且将登录请求重新引导到IdP 304以供认证的响应,例如redirect_URI被定义在OpenID中以将客户端发送给IdP 304,并且客户端102存储接收到的第一随机数。在510中,客户端102将具有用户凭证的第一认证请求发送给IdP 304,并将第一随机数散列发送给IdP 304。
在512中,客户端102从IdP 304接收第一认证响应,例如REDIR-PROXY AUTH RESPTOKEN1(HASH1),该第一认证响应具有第一认证令牌TOKEN1并且将客户端102重新引导到反向代理服务308。客户端102将在502中所存储的第一随机数NONCE1附接至第一认证响应,例如AUTH RESP TOKEN1(NONCE1、HASH1),并在514中将第一认证响应转发给反向代理服务308。
图5B是示出了客户端设备102中的用于与利用反向代理服务308的服务提供方106的单点登入登录会话的过程520的说明性示例的流程图,其中客户端102被重新引导到IdP304以供认证。在该示例中,过程520遵循与图5A的过程500相同的逻辑,但是对第二登录请求进行操作,诸如图3和图4中的LOGIN REQ2,涉及由服务提供方106响应于第二登录请求而生成的第二随机数NONCE2和第二随机数散列HASH2。
在522中,响应从反向代理服务308被接收,例如REDIR-IDP AUTH REQ(NONCE2、HASH2),其将客户端102重新引导到IdP304。客户端102本地存储接收到的随机数NONCE2。在524中,客户端102将第二认证请求(例如图3和图4中的AUTH REQ2)发送给IdP 304。
在526中,客户端102从具有具有HASH2的第二认证令牌TOKEN2的IDP 304接收第二认证响应,例如图3和图4中的AUTH RESP TOKEN2(HASH2),其将客户端102重新引导到反向代理服务308。如上面所提到的,在一些示例中,重新引导可能不是必需的,因为此时客户端102被配置为与对应于反向代理服务308的后缀代理URL通信,因为它从反向代理服务308接收到REDIR-IDP AUTH RESP(NONCE2、HASH2)消息。
客户端102将在522中存储的第二随机数NONCE2附接至第二认证响应,例如AUTHRESPTOKEN2(NONCE2、HASH2),并在528中将第二认证响应转发给反向代理服务308。
在图5A和图5B的示例中,过程500和过程520根据所定义的认证协议(诸如OpenID或SAML)执行逻辑以执行SSO认证。过程500图示了针对第一登录请求操作的逻辑,诸如图3和图4中的LOGIN REQ1,而过程520图示了针对第二登录请求操作的逻辑,诸如图3和图4中的LOGIN REQ2。
图5C是示出了根据所公开的技术在IdP 304中用于在与服务提供方106的单点登入登录会话期间认证从客户端102接收的用户凭证并将客户端102重新引导到反向代理服务308的过程530的说明性示例的流程图。在532中,IdP 304从客户端102接收认证请求,例如AUTH REQ1,其包括针对操作客户端102的用户的用户凭证。在534中,IdP 304对用户凭证进行认证,并且如果用户被认证,则生成认证令牌,例如TOKEN1或TOKEN2,认证令牌包括与认证请求一起被接收的随机数散列,例如HASH1或HASH2。
在536中,IdP 304确定反向代理服务是否在与用户或应用相关的重新引导配置数据中被定义。例如,可以针对用户或特定域中的所有用户定义特定的反向代理服务。在另一示例中,针对如下服务提供方106上的应用定义反向代理服务,用户正在寻求针对该服务提供方106的认证。重新引导配置数据可以由系统管理员预定义,并且例如提供针对反向代理服务的URL。
如果没有反向代理服务重新引导在重新引导配置数据中被定义,那么控制在540至546处分支以利用在534中生成的认证令牌向客户端102发送认证响应消息。SSO认证实质上以常规方式进行,诸如图2A所图示的SSO场景。
如果反向代理服务重新引导在重新引导配置数据中被定义,那么控制在540至542处分支以配置认证响应消息,该认证响应消息将客户端重新引导到所定义的反向代理服务,例如客户端102被重新引导到反向代理服务308。控制进行到546以将重新引导认证响应消息与在534中生成的认证令牌一起发送给客户端102。
图5D是示出了根据所公开的技术在反向代理服务308中用于利用反向代理服务认证客户端102以与服务提供方106建立单点登入登录会话的过程550的说明性示例的流程图。过程550利用从客户端102接收的认证响应中所包含的随机数值来确定认证响应所属的登录会话是由客户端还是代理发起的。如果登录会话是由客户端发起的,那么代理发起与服务提供方的新的登录会话,以便从服务提供方获得有效的随机数值。
在552中,反向代理服务308从客户端102接收认证响应,该认证响应包括具有随机数散列和随机数的认证令牌。在556中,反向代理服务308确定在认证响应中接收的随机数是否由反向代理服务308存储。
如果随机数未被反向代理服务308存储,那么当前登录会话由客户端102发起,并且反向代理服务308将无法成功完成登录会话。控制在560至562处分支,以用于使反向代理服务308发送从反向代理服务308到服务提供方106的新的用户登录请求。要注意的是,登录请求可以包括服务提供方上下文数据,诸如服务提供方106上的登陆页面的URL,该服务提供方上下文数据也可以被包括在在认证响应中接收到的认证令牌中。新的用户登录请求可以包括与来自认证令牌的服务提供方上下文数据相匹配的服务提供方上下文数据,即,来自从客户端102到服务提供方106的原始登录请求的上下文数据,使得新的登录请求被引导到与原始登录请求相同的服务提供方106上的上下文,例如相同的登陆页面。
服务提供方106将利用如下消息来响应于新的登录请求,该消息将登录请求重新引导到IdP 304以供认证并且包含新的随机数和随机数散列。反向代理服务308在564中接收重新引导登录请求的响应消息,并且本地存储接收到的随机数。在566中,反向代理服务308将针对新的登录会话的响应消息转发给客户端102。
当反向代理服务308从客户端102接收到包括先前例如在564中由反向代理服务308存储的随机数的认证响应时,那么接收到的认证响应属于先前在562中由反向代理服务308发起的新的登录会话。控制在560至568处分支,其中反向代理服务308将认证响应转发给服务提供方106。由于针对新的登录会话的随机值可以被服务提供方106验证,因此新的登录会话可以成功完成。随后,客户端102和服务提供方106之间的通信穿过反向代理服务308。
图5E、图5F和图5G是控制流程图,图示了根据所公开技术的某些方面的用于在具有反向代理服务的系统中执行SSO认证的过程570的另一示例。
在过程570中,在572中,客户端向服务提供方发送第一登录请求以发起第一登录会话。在572中,响应于第一登录请求,服务提供方生成、存储和散列第一随机数。在574中,服务提供方将包含第一会话标识符和会话标识符散列的消息发送给客户端,并将客户端重新引导到身份提供方。
在575中,客户端存储第一随机数,并且将第一认证请求发送给身份提供方。在576中,身份提供方对客户端进行认证,生成第一认证令牌,并且将具有第一认证令牌和第一会话标识符散列并且将客户端重新引导到代理服务的第一认证响应发送给客户端。控制流程继续到图5F中的580,其中客户端从身份提供方接收具有第一认证令牌的第一认证响应,并且利用第一认证令牌和第一会话标识符将第一认证响应重新引导到反向代理服务。
在582中,反向代理服务从客户端接收被重新引导的认证响应,并确定它是否识别出接收到的认证响应内的会话标识符。如果反向代理服务未识别出会话标识符,那么控制在图5G中的584至586处分支,其中反向代理服务通过向服务提供方发送第二登录请求来发起第二登录会话。
在588中,响应于第二登录请求,服务提供方生成、存储和散列第二会话标识符。在590中,服务提供方向反向代理服务发送包含第二会话标识符散列并且重新引导到身份提供方的第二认证请求消息。在592中,反向代理服务存储第二会话标识符并且向客户端转发第二认证请求消息。
在594中,客户端将接收到的第二随机数存储在重新引导消息中,并且将第二认证请求发送给身份提供方。在596中,身份提供方对客户端进行认证,并发送具有第二认证令牌并且将客户端重新引导到反向代理服务的第二认证响应。
控制返回到图5EF中的580,其中客户端接收第二认证响应,并且将具有第二认证令牌以及第二会话标识符和第二标识符散列的第二认证响应重新引导到反向代理服务。在582中,反向代理服务接收与第二登录会话相对应的第二认证响应,并确定它是否识别出从客户端被重新引导的认证响应中的会话标识符。
因为代理服务器先前在592中存储了针对第二登录会话的第二会话标识符,所以第二会话标识符被反向代理服务找到,并且控制在图5F中的584至585处分支,其中反向代理服务将认证响应转发给服务提供方第二认证响应具有第二认证令牌和第二会话标识符和第二会话标识符散列。因为服务提供方能够识别出第二会话标识符,因此服务提供方完成第二登录会话。要注意的是,第一登录会话尚未完成。
本领域技术人员将容易了解,在不脱离所公开技术的范围的情况下,可以使用各种方法来执行利用反向代理服务的单点登入认证。
通过使利用反向代理服务的单点登入认证成为可能,所公开的技术支持专用会话标识符(诸如随机数)的使用,以防止系统中的回放攻击,该系统也可以获得使用反向代理服务的益处。实现专用会话标识符的使用提高了计算机系统的安全。使用反向代理服务还可以提高安全,诸如通过支持安全套接字层(SSL)加密,或引起更有效的资源利用。
要了解的是,尽管本文公开的实施例主要是在执行利用反向代理服务的单点登入认证的上下文中提出的。本文公开的技术可以类似地应用于其他上下文,其中利用类似功能性来利用反向代理服务执行认证。
图6是示出了能够执行本文描述的软件组件的计算机600的架构的计算机架构图。图6所图示的架构是用于服务器计算机、移动电话、电子阅读器、智能手机、台式计算机、上网本计算机、平板计算机、膝上型计算机或适合于执行本文提出的软件组件的另一类型的计算设备的架构。
在这方面,应该了解的是,图6所示的计算机600可以用于实施能够执行本文提出的任何软件组件的计算设备。例如但不限于,参照图6描述的计算架构可以用于实施图3的系统100所图示的客户端102、IdP 304、服务提供方106和反向代理服务308,其能够执行上述各种软件组件,诸如图5A至图5F所图示的过程的操作。
图6所图示的计算机600包括中央处理单元602(“CPU”)、系统存储器604(包括随机存取存储器606(“RAM”)和只读存储器(“ROM”)608)以及将存储器604耦合至CPU 602的系统总线610。ROM 608中存储有基础输入/输出系统(“BIOS”或“固件”),该基础输入/输出系统包含诸如在启动期间帮助在计算机600内的元件之间传送信息的基础例程。计算机600还包括一个或多个大容量存储设备612,以存储操作系统621、应用程序622以及其他类型的程序和数据,包括但不限于计算机资源624和重新引导配置数据630。计算机资源624和重新引导配置数据630可以被存储在彼此不同的存储设备中。
大容量存储设备612通过连接至总线610的大容量存储控制器(未示出)连接至CPU602。大容量存储设备612及其关联的计算机可读介质为计算机600提供非易失性存储。尽管本文包含的计算机可读介质的描述是指大容量存储设备,诸如硬盘、CD-ROM驱动、DVD-ROM驱动或USB存储密钥,但本领域技术人员应该了解的是,计算机可读介质可以是计算机600可以访问的任何可用的计算机存储介质或通信介质。
通信介质包括诸如载波或其他传输机构的调制数据信号中的计算机可读指令、数据结构、程序模块或其他数据,并且包括任何递送介质。术语“调制数据信号”是指以对信号中的信息进行编码的方式改变或设置其一个或多个特性的信号。通过示例而非限制,通信介质包括诸如有线网络或直接有线连接等有线介质以及诸如声学、射频、红外和其他无线介质等无线介质。上述任何组合也应包括在计算机可读介质的范围内。
通过示例而非限制,计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实施的易失性和非易失性介质、可移除和不可移除介质。例如,计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术,CD-ROM、数字通用光盘(“DVD”)、HD-DVD、蓝光光碟、或其他光学存储装置,盒式磁带、磁带、磁盘存储装置或其他磁性存储设备,或者可以用于存储期望信息并且可以由计算机600访问的任何其他介质。为了权利要求的目的,短语“计算机存储介质”及其变型不包括波或信号本身或通信介质。
根据各种配置,计算机600可以使用通过诸如网络618等网络到远程计算机的逻辑连接在联网环境中操作。计算机600可以通过连接至总线610的网络接口单元620连接至网络618。应该了解的是,网络接口单元620也可以用于连接至其他类型的网络和远程计算机系统。计算机600还可以包括输入/输出控制器616,以接收和处理来自许多其他设备的输入,包括键盘、鼠标、触摸输入或电子手写笔(未在图6中示出)。类似地,输入/输出控制器616可以将输出提供给显示屏或其他类型的输出设备(也未在图6中示出)。
应该了解的是,本文描述的软件组件在被加载到CPU 602中并被执行时可以将CPU602和整个计算机600从通用计算设备变换为定制为支持本文提出的功能性的专用计算设备。CPU 602可以由任何数量的晶体管或其他离散电路元件构成,其可以单独或共同地假设任何数量的状态。更具体地,响应于本文公开的软件模块内所包含的可执行指令,CPU 602可以作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU 602如何在状态之间进行过渡来变换CPU 602,从而变换构成CPU 602的晶体管或其他离散硬件元件。
对本文提出的软件模块进行编码也可以变换本文提出的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的特定变换取决于各种因素。这种因素的示例包括但不限于用于实施计算机可读介质的技术、计算机可读介质的特征在于主要存储装置或辅助存储装置等。例如,如果计算机可读介质被实施为基于半导体的存储器,则可以通过变换半导体存储器的物理状态来将本文公开的软件编码在计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器或其他离散电路元件的状态。软件还可以变换这种组件的物理状态,以便在其上存储数据。
作为另一示例,可以使用磁性或光学技术来实施本文公开的计算机可读介质。在这种实施方式中,当软件被编码在其中时,本文提出的软件可以变换磁性或光学介质的物理状态。这些变换可以包括更改给定磁性介质内的特定位置的磁性特性。这些变换还可以包括更改给定光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不脱离本描述的范围和精神的情况下,物理介质的其他变换是可能的,提供前述示例仅是为了支持该讨论。
鉴于上述内容,应该了解的是,在计算机600中发生了许多类型的物理变换,以便存储和执行本文提出的软件组件。还应该了解的是,计算机600的图6所示的架构或类似架构可以用于实施其他类型的计算设备,包括手持计算机、视频游戏设备、嵌入式计算机系统、诸如智能手机和平板计算机等移动设备以及本领域技术人员已知的其他类型的计算设备。还设想,计算机600可能不包括图6所示的所有组件,可以包括在图6中未明确示出的其他组件,或者可以使用与图6所示的架构完全不同的架构。
图7示出了可以提供云源资源的说明性分布式计算环境702的各个方面,诸如用于图3的IdP 304、服务提供方106和反向代理服务308的资源,其中可以执行本文描述的软件组件。因此,图7所图示的分布式计算环境702可以用于执行能够提供上面相对于图1至图5描述的功能性的程序代码和/或本文描述的任何其他软件组件。
根据各种实施方式,分布式计算环境702在网络708上操作,与网络708通信或作为网络708的一部分进行操作。一个或多个客户端设备706A至706N(在下文中统称为和/或通常称为“设备706”)可以经由网络708和/或其他连接(未在图7中图示)与分布式计算环境702通信。
在所图示的配置中,设备706包括:计算设备706A,诸如膝上型计算机、台式计算机或其他计算设备;“板”或平板计算设备(“平板计算设备”)706B;移动计算设备706C,诸如移动电话、智能手机或其他移动计算设备;服务器计算机706D;和/或其他设备706N。应该理解的是,任何数量的设备706都可以与分布式计算环境702进行通信。本文参照图6和图8图示并描述了设备706的两个示例计算架构。应该理解的是,本文图示和描述的所图示客户端设备706和计算架构是说明性的,并且不应被解释为以任何方式限制。
在所图示的配置中,分布式计算环境702包括应用服务器704、数据存储装置710和一个或多个网络接口712。根据各种实施方式,应用服务器704的功能性可以由一个或多个服务器计算机提供,该一个或多个服务器计算机作为网络708的一部分执行或与网络708通信。应用服务器704可以托管各种服务,诸如虚拟机、门户和/或其他资源。在所图示的配置中,应用服务器704托管一个或多个虚拟机714以托管应用,诸如用于实施上面关于图1至图5描述的功能性的程序组件。应该理解的是,该配置是说明性的,并且不应解释为以任何方式限制。应用服务器704还可以托管一个或多个web门户、链接页面、网站和/或其他信息(“web门户”)716或提供对一个或多个web门户、链接页面、网站和/或其他信息(“web门户”)716的访问。
根据各种实施方式,应用服务器704还包括一个或多个邮箱服务718和一个或多个消息收发服务720。邮箱服务718可以包括电子邮件(“email”)服务。邮箱服务718还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息收发服务720可以包括但不限于即时消息收发(“IM”)服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器704还可以包括一个或多个社交网络服务722。社交网络服务722可以提供各种类型的社交网络服务,包括但不限于用于共享或发布状况更新、即时消息、链接、照片、视频和/或其他信息的服务、用于评论或显示对文章、产品、博客或其他资源的兴趣的服务和/或其他服务。在一些配置中,社交网络服务722由FACEBOOK社交网络服务、LINKEDIN专业网络服务、FOURSQUARE地理网络服务等提供或包括FACEBOOK社交网络服务、LINKEDIN专业网络服务、FOURSQUARE地理网络服务等。在其他配置中,社交网络服务722由其他服务、站点和/或提供方(可能被称为“社交网络提供方”)提供。例如,一些网站允许用户在各种活动和/或上下文(诸如阅读已发表的文章、对商品或服务进行评论、发表、协作、游戏等)期间经由电子邮件、聊天服务和/或其他方式彼此交互。其他服务也是可能的并且设想了其他服务。
社交网络服务722可以包括评论、博客和/或微博服务。这种服务的示例包括但不限于YELP评论服务、KUDZU检阅服务、OFFICETALK企业微博服务、TWITTER消息收发服务和/或其他服务。应该了解的是,上述服务列表不是穷举的,并且为了简洁起见,在本文中未提及许多附加的和/或替代的社交网络服务722。这样,上述配置是说明性的,并且不应解释为以任何方式限制。
而且如图7所示,应用服务器704还可以托管其他服务、应用、门户和/或其他资源(“其他服务”)724。这些服务可以包括但不限于如NETFLIX流视频服务等流视频服务和诸如来自谷歌公司的GMAIL电子邮件服务等生产力服务。因此,可以了解的是,分布式计算环境702的用户执行的活动可以包括各种邮箱、消息收发、社交网络、群组对话、生产力、娱乐和其他类型的活动。这些服务以及其他服务的使用可以被检测到,并且用于定制利用本文公开的技术的计算设备的操作。
如上面所提及的,分布式计算环境702可以包括数据存储装置710。根据各种实施方式,数据存储装置710的功能性由在网络708上操作或与网络708通信的一个或多个数据库提供。数据存储装置710的功能性还可以由配置为托管分布式计算环境702的数据的一个或多个服务器计算机提供。数据存储装置710可以包括、托管或提供一个或多个真实或虚拟数据存储库726A至726N(在下文中统称为和/或通常称为“数据存储库726”)。数据存储库726被配置为托管由应用服务器704使用或创建的数据和/或其他数据。
分布式计算环境702可以与网络接口712通信或被其访问。网络接口712可以包括用于支持两个或多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于设备706和应用服务器704。应该了解的是,网络接口712也可以用于连接至其他类型的网络和/或计算机系统。
应该理解的是,本文描述的分布式计算环境702可以利用任何数量的虚拟计算资源和/或其他分布式计算功能性来实施本文描述的软件元件的任何方面,这些虚拟计算资源和/或其他分布式计算功能性可以被配置为执行本文公开的软件组件的任何方面。还应该理解的是,设备706还可以包括真实或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、游戏控制台或其他类型的游戏设备、移动计算设备、智能手机和/或其他设备。这样,本文公开的技术的各种实施方式使配置为访问分布式计算环境702的任何设备能够利用本文描述的功能性。
现在转到图8,将描述用于计算设备的说明性计算设备架构800,诸如能够执行本文描述的各种软件组件的图3的系统100所图示的客户端102、IdP 304、服务提供方106和反向代理服务308。计算设备架构800适用于部分地由于形状因数、无线连接性和/或电池供电的操作而支持移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板设备、板设备、便携式视频游戏设备等。
计算设备架构800也适用于图7所示的任何设备706。此外,计算设备架构800的各个方面适用于传统的台式计算机、便携式计算机(例如膝上型计算机、笔记本计算机、超便携式计算机和上网本)、服务器计算机以及其他计算机设备,诸如本文描述的那些。例如,下面在本文中公开的单点触摸和多点触摸方面可以应用于利用触摸屏或某种其他支持触摸的设备(诸如支持触摸的跟踪板或支持触摸的鼠标)的台式计算机、膝上型计算机、可转换式计算机(convertible)、智能手机或平板计算机设备。计算设备架构800还可以用于实施图3的系统100所图示的客户端102、IdP 304、服务提供方106和反向代理服务308和/或用于实施或消耗本文描述的功能性的其他类型的计算设备。
图8所图示的计算设备架构800包括处理器802、存储器组件804、网络连接性组件806、传感器组件808、输入/输出组件810和电源组件812。在所图示的配置中,处理器802与存储器组件804、网络连接性组件806、传感器组件808、输入/输出(“I/O”)组件810和电源组件812通信。尽管没有在图8所图示的各个组件之间示出连接,但是组件可以电连接以相互作用并执行设备功能。在一些配置中,组件被布置为经由一个或多个总线(未示出)进行通信。
处理器802包括一个或多个CPU核心,其被配置为处理数据,执行一个或多个应用程序的计算机可执行指令以及与计算设备架构800的其他组件通信,以执行本文描述的各种功能性。处理器802可以用于执行本文提出的软件组件的各个方面,尤其是执行至少部分地利用支持触摸的输入的那些。
在一些配置中,处理器802包括图形处理单元(“GPU”),其被配置为加速由CPU执行的操作,包括但不限于通过执行通用科学和工程计算应用以及图形密集型计算应用(诸如高分辨率视频(例如720P、1080P、4K和更高版本)、视频游戏、3D建模应用等)执行的操作。在一些配置中,处理器802被配置为与离散GPU(未示出)通信。在任何情况下,都可以根据协同处理CPU/GPU计算模型来配置CPU和GPU,其中应用的顺序部分在CPU上执行,并且计算密集型部分由GPU加速。
在一些配置中,处理器802是与下面在本文中描述的一个或多个其他组件一起的片上系统(“SoC”)或者包括在其中。例如,SoC可以包括处理器802、GPU、一个或多个网络连接性组件806以及一个或多个传感器组件808。在一些配置中,部分地利用封装叠加(“PoP”)集成电路封装技术来制作处理器802。而且,处理器802可以是单核或多核处理器。
处理器802可以根据可从英国剑桥的ARM HOLDINGS获得许可证的ARM架构来创建。备选地,处理器802可以根据x86架构来创建,诸如可从加利福尼亚州山景城的英特尔公司等获得的。在一些配置中,处理器802是可从加利福尼亚圣地亚哥的高通公司获得的SNAPDRAGON SoC、可从加利福尼亚圣塔克拉拉的NVIDIA获得的TEGRA SoC、可从韩国首尔的三星获得的HUMMINGBIRD SoC、可从德克萨斯州达拉斯的德州仪器获得的开放多媒体应用平台(“OMAP”)SoC、上述任何SoC的定制版本或专有SoC。
存储器组件804包括RAM 814、ROM 816、集成存储存储器(“集成存储装置”)818和可移除存储存储器(“可移除存储装置”)820。在一些配置中,RAM 814或其部分、ROM 816或其部分和/或RAM 814和ROM 816的某种组合被集成在处理器802中。在一些配置中,ROM 816被配置为存储固件、操作系统或其部分(例如操作系统内核)和/或引导加载程序,以从集成存储装置818或可移除存储装置820加载操作系统内核。
集成存储装置818可以包括固态存储器、硬盘或固态存储器和硬盘的组合。可以将集成存储器818焊接或以其他方式连接至逻辑板,在该逻辑板上也可以连接处理器802和本文描述的其他组件。这样,集成存储装置818被集成在计算设备中。集成存储装置818可以被配置为存储操作系统或其部分、应用程序、数据和本文描述的其他软件组件。
可移除存储装置820可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,提供可移除存储装置820代替集成存储装置818。在其他配置中,提供可移除存储装置820作为附加的可选存储装置。在一些配置中,可移除存储装置820在逻辑上与集成存储装置818组合,使得总的可用存储装置可用并作为集成存储装置818和可移除存储装置820的总组合容量显示给用户。
可移除存储装置820被配置为插入到可移除存储存储器插槽(未示出)或其他机构中,可移除存储装置820通过该插槽被插入并固定以支持连接,可移除存储装置820可以通过该连接与计算设备的其他组件通信,诸如处理器802。可移除存储装置820可以以各种存储卡格式实施,包括但不限于PC卡、压缩闪存卡、记忆棒、安全数字(“SD”)、迷你SD、微型SD、通用集成电路卡(“UICC”)(例如订户标识模块(“SIM”)或通用SIM(“USIM”))、专有格式等。
可以理解,一个或多个存储器组件804可以存储操作系统。根据各种配置,操作系统包括但不限于来自微软公司的WINDOWS操作系统、来自加利福尼亚库比蒂诺的苹果公司的IOS操作系统以及来自加利福尼亚山景城的谷歌公司的安卓操作系统。也可以使用其他操作系统。
网络连接性组件806包括无线广域网组件(“WWAN组件”)822、无线局域网组件(“WLAN组件”)824和无线个人局域网组件(“WPAN组件”)826。网络连接性组件806支持与网络828之间的通信,该网络828可以是WWAN、WLAN或WPAN。尽管图示了单个网络828,但是网络连接性组件806可以支持与多个网络的同时通信。例如,网络连接性组件806可以支持经由以下一个或多个与多个网络的同时通信:WWAN、WLAN或WPAN。
网络828可以是WWAN,诸如利用一种或多种移动电信技术来经由WWAN组件822将语音和/或数据服务提供给利用计算设备架构800的计算设备的移动电信网络。移动电信技术可以包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动电信系统(“UMTS”)、长期演进(“LTE”)和全球微波接入互操作性(“WiMAX”)。
而且,网络828可以利用各种信道接入方法(前述标准可能使用或可能不使用),包括但不限于时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分复用(“OFDM”)、空分多址(“SDMA”)等。可以使用通用分组无线电服务(“GPRS”)、全球演进的增强数据速率(“EDGE”)、包括高速下行分组接入(“HSDPA”)的高速分组接入(“HSPA”)协议系列、增强型上行(“EUL”)或被称为高速上行分组接入(“HSUPA”)、演进型HSPA(“HSPA+”)、LTE和各种其他当前和未来的无线数据访问标准来提供数据通信。网络828可以被配置为利用上述技术的任何组合来提供语音和/或数据通信。网络828可以被配置为或适用于根据未来一代的技术来提供语音和/或数据通信。
在一些配置中,WWAN组件822被配置为向网络828提供双多模式连接性。例如,WWAN组件822可以被配置为向网络828提供连接性,其中网络828经由GSM和UMTS技术或经由技术的某种其他组合来提供服务。备选地,可以利用多个WWAN组件822来执行这种功能性,和/或提供附加的功能性以支持其他不兼容的技术(即,无法由单个WWAN组件支持)。WWAN组件822可以支持到多个网络(例如UMTS网络和LTE网络)的类似连接性。
网络828可以是根据一个或多个电气和电子工程师协会(“IEEE”)104.11标准(诸如IEEE 104.11a、104.11b、104.11g、104.11n和/或未来的104.11标准(在本文中统称为WI-FI))操作的WLAN。还设想了草案104.11标准。在一些配置中,利用一个或多个无线WI-FI接入点来实施WLAN。在一些配置中,一个或多个无线WI-FI接入点是具有到WWAN的连接性的另一计算设备,该WWAN充当WI-FI热点。WLAN组件824被配置为经由WI-FI接入点连接至网络828。可以经由各种加密技术来保护这种连接,包括但不限于WI-FI保护接入(“WPA”)、WPA2、有线等效保密性(“WEP”)等。
网络828可以是根据红外数据协会(“IrDA”)、蓝牙、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或某种其他短程无线技术进行操作的WPAN。在一些配置中,WPAN组件826被配置为支持经由WPAN与诸如外围设备、计算机或其他计算设备等其他设备的通信。
传感器组件808包括磁力计830、环境光传感器832、接近传感器834、加速度计836、陀螺仪838和全球定位系统传感器(“GPS传感器”)840。设想诸如但不限于温度传感器或冲击检测传感器等其他传感器也可以并入到计算设备架构800中。
磁力计830被配置为测量磁场的强度和方向。在一些配置中,磁力计830向存储在存储器组件804中的一个存储器组件804内的罗盘应用程序提供测量,以便在参考系中向用户提供包括基本方向、北、南、东和西的准确方向。可以向包括罗盘组件的导航应用程序提供类似的测量。设想了由磁力计830获得的测量的其他用途。
环境光传感器832被配置为测量环境光。在一些配置中,环境光传感器832向存储在一个存储器组件804内的应用程序提供测量,以便自动调整显示器的亮度(如下所述)以补偿弱光和强光环境。设想了由环境光传感器832获得的测量的其他用途。
接近传感器834被配置为在没有直接接触的情况下检测在计算设备附近的物体或事物的存在。在一些配置中,接近传感器834检测用户的身体(例如用户的面部)的存在并将该信息提供给存储在存储器组件804中的一个存储器组件804内的利用该接近信息来启用或禁用计算设备的一些功能性的应用程序。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(如下所述),使得用户的面部不会在呼叫期间无意地结束呼叫或启用/禁用电话应用程序内的其他功能性。设想了由接近传感器834检测到的接近的其他用途。
加速度计836被配置为测量适当的加速度。在一些配置中,来自加速度计836的输出被应用程序用作控制该应用程序的一些功能性的输入机构。在一些配置中,来自加速度计836的输出被提供给应用程序,以用于在横向和纵向模式之间切换,计算坐标加速度或检测跌倒。设想了加速度计836的其他用途。
陀螺仪838被配置为测量和维持引导。在一些配置中,来自陀螺仪838的输出被应用程序用作控制该应用程序的一些功能性的输入机构。例如,陀螺仪838可以用于准确识别视频游戏应用或某种其他应用的3D环境内的移动。在一些配置中,应用程序利用来自陀螺仪838和加速度计836的输出来增强用户输入操作。设想了陀螺仪838的其他用途。
GPS传感器840被配置为从GPS卫星接收信号以用于计算位置。由GPS传感器840计算的位置可以由需要或受益于位置信息的任何应用程序使用。例如,由GPS传感器840计算的位置可以与导航应用程序一起使用,以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,GPS传感器840可以用于向外部基于位置的服务(诸如E911服务)提供位置信息。GPS传感器840可以利用一个或多个网络连接性组件806来获得经由WI-FI、WIMAX和/或蜂窝三角测量技术生成的位置信息,以辅助GPS传感器840获得位置固定。GPS传感器840也可以在辅助GPS(“A-GPS”)系统中使用。
I/O组件810包括显示器842、触摸屏844、数据I/O接口组件(“数据I/O”)846、音频I/O接口组件(“音频I/O”)848、视频I/O接口组件(“视频I/O”)850和照相机852。在一些配置中,显示器842和触摸屏844被组合。在一些配置中,数据I/O组件846、音频I/O组件848和视频I/O组件850中的两个或多个被组合。I/O组件810可以包括被配置为支持下面描述的各种接口的离散处理器,或者可以包括内置于处理器802的处理功能性。
显示器842是被配置为以视觉形式呈现信息的输出设备。具体地,显示器842可以呈现图形用户界面(“GUI”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息收发数据、互联网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器842是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“LCD”)。在一些配置中,显示器842是有机发光二极管(“OLED”)显示器。设想了其他显示器类型。
触摸屏844是被配置为检测触摸的存在和位置的输入设备。触摸屏844可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏844作为透明层并入到显示器842的顶部,以使用户能够使用一个或多个触摸来与呈现在显示器842上的物体或其他信息进行交互。在其他配置中,触摸屏844是并入到不包括显示器842的计算设备的表面上的触摸板。例如,计算设备可以具有并入到显示器842的顶部的触摸屏和在与显示器842相对的表面上的触摸板。
在一些配置中,触摸屏844是单点触摸触摸屏。在其他配置中,触摸屏844是多点触摸触摸屏。在一些配置中,触摸屏844被配置为检测离散触摸、单点触摸手势和/或多点触摸手势。为了方便起见,这些在本文中统称为“手势”。现在将描述几种手势。应该理解的是,这些手势是说明性的,并且不旨在限制所附权利要求的范围。而且,所描述的手势、附加手势和/或替代手势可以在软件中实施以与触摸屏844一起使用。这样,开发人员可以创建特定于特定应用程序的手势。
在一些配置中,触摸屏844支持轻敲手势,其中用户在显示器842上呈现的项目上轻敲触摸屏844一次。轻敲手势可以出于各种原因而使用,包括但不限于打开或启动用户轻敲的任何内容,诸如图形图标。在一些配置中,触摸屏844支持双击手势,其中用户在显示器842上呈现的项目上轻敲触摸屏844两次。可以出于各种原因使用双击手势,包括但不限于分阶段放大或缩小。在一些配置中,触摸屏844支持轻敲并保持手势,其中用户轻敲触摸屏844并维持接触至少预定义时间。可以出于各种原因使用轻敲并保持手势,包括但不限于打开上下文特定菜单。
在一些配置中,触摸屏844支持平移手势,其中用户将手指放置在触摸屏844上,并且在触摸屏844上移动手指的同时维持与触摸屏844的接触。可以出于各种原因使用平移手势,包括但不限于以受控的速率在屏幕、图像或菜单之中移动。也设想了多个手指平移手势。在一些配置中,触摸屏844支持轻弹手势,其中用户在用户希望屏幕移动的方向上滑动手指。可以出于各种原因使用轻弹手势,包括但不限于在菜单或页面中水平或垂直滚动。在一些配置中,触摸屏844支持捏合和伸展手势,其中用户在触摸屏844上用两个手指(例如拇指和食指)进行捏合运动或使两个手指移动分开。可以出于各种原因使用捏合和伸展手势,包括但不限于逐步放大或缩小网站、地图或图片。
尽管已经参照使用一个或多个手指执行手势来呈现上述手势,但是诸如脚趾等其他附器或诸如手写笔等物体也可以用于与触摸屏844交互。这样,上述手势应该理解为说明性的,并且不应解释为以任何方式限制。
数据I/O接口组件846被配置为支持向计算设备的数据输入和从计算设备的数据输出。在一些配置中,数据I/O接口组件846包括连接器,该连接器被配置为例如出于同步操作目的提供计算设备与计算机系统之间的有线连接性。连接器可以是专有连接器或标准化连接器,诸如USB、微型USB、迷你USB、USB-C等。在一些配置中,连接器是用于将计算设备与另一设备(诸如对接站、音频设备(例如数字音乐播放器)或视频设备)对接的对接连接器。
音频I/O接口组件848被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频I/O接口组件848包括被配置为收集音频信号的麦克风。在一些配置中,音频I/O接口组件848包括被配置为提供耳机或其他外部扬声器的连接性的耳机插孔。在一些配置中,音频接口组件848包括用于输出音频信号的扬声器。在一些配置中,音频I/O接口组件848包括光学音频电缆出口。
视频I/O接口组件850被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频I/O接口组件850包括视频连接器,该视频连接器被配置为从另一设备(例如诸如DVD或蓝光光碟播放器等视频媒体播放器)接收视频作为输入,或将视频作为输出发送给另一设备(例如监测器、电视或某种其他外部显示器)。在一些配置中,视频I/O接口组件850包括高清晰度多媒体接口(“HDMI”)、迷你HDMI、微型HDMI、DisplayPort或用于输入/输出视频内容的专有连接器。在一些配置中,视频I/O接口组件850或其部分与音频I/O接口组件848或其部分组合。
照相机852可以被配置为捕获静止图像和/或视频。照相机852可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,照相机852包括闪光灯以辅助在弱光环境中拍照。照相机852的设置可以被实施为硬件或软件按钮。
尽管未图示,但是一个或多个硬件按钮也可以包括在计算设备架构800中。硬件按钮可以用于控制计算设备的某个操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
所图示的电源组件812包括一个或多个电池854,可以将其连接至电池电量计856。电池854可以是可充电的或一次性的。可充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。电池854中的每个电池854可以由一个或多个单电池制成。
电池电量计856可以被配置为测量电池参数,诸如电流、电压和温度。在一些配置中,电池电量计856被配置为测量电池的放电速率、温度、使用年限和其他因素的影响,以在一定百分比的误差内预测剩余寿命。在一些配置中,电池电量计856将测量结果提供给应用程序,该应用程序被配置为利用测量来向用户呈现有用的电源管理数据。电源管理数据可以包括以下一个或多个:已用电池的百分比、剩余电池的百分比、电池条件、剩余时间、剩余容量(例如以瓦特小时为单位)、电流消耗和电压。
电源组件812还可以包括电源连接器(未示出),该电源连接器可以与一个或多个前述I/O组件810组合。电源组件812可以经由电源I/O组件810与外部电源系统或充电设备接口连接。也可以使用其他配置。
本文提出的公开内容还涵盖了以下条款中陈述的主题:
条款1.一种用于在具有反向代理服务的系统中执行单点登入认证的计算机实现的方法,该方法包括:从客户端向服务提供方发送第一登录请求,以发起第一登录会话;响应于第一登录请求,在服务提供方中,生成第一专用会话标识符,存储第一专用会话标识符,并且对第一专用会话标识符进行散列,以创建第一会话标识符散列;从服务提供方向客户端发送第一认证请求消息,该第一认证请求消息包含第一会话标识符和第一会话标识符散列并且将第一认证请求消息重新引导到身份提供方;响应于第一认证请求消息,在客户端中,存储第一会话标识符并且向身份提供方发送第一认证请求;在身份提供方中,响应于第一认证请求而认证客户端,生成第一认证令牌,并且向客户端发送具有第一认证令牌并且将客户端重新引导到代理服务的第一认证响应;在客户端中,接收具有第一认证令牌的第一认证响应,并且将具有第一会话标识符的第一认证响应重新引导到代理服务;在代理服务中,接收第一认证响应并且确定第一会话标识符是否被存储在代理服务上;如果第一会话标识符未被存储在代理服务上,则在代理服务中,向服务提供方发送第二登录请求,以发起第二登录会话;响应于第二登录请求,在服务提供方中,生成第二专用会话标识符,存储第二专用会话标识符,并且对第二专用会话标识符进行散列,以创建第二会话标识符散列;从服务提供方向代理服务发送第二认证请求消息,该第二认证请求消息包含第二会话标识符和第二会话标识符散列并且将第二认证请求消息重新引导到身份提供方;在代理服务中,存储第二会话标识符并且向客户端发送第二认证请求消息;在客户端中,存储第二会话标识符并且向身份提供方发送第二认证请求消息;在身份提供方中,响应于第二认证请求而认证客户端,生成第二认证令牌,并且向客户端发送具有第二认证令牌并且将客户端重新引导到代理服务的第二认证响应;在客户端中,接收具有第二认证令牌的第二认证响应,并且将具有第二会话标识符的第二认证响应重新引导到代理服务;在代理服务中,接收第二认证响应并且确定第二会话标识符是否被存储在代理服务上;以及如果第二会话标识符被存储在代理服务上,则在代理服务中,向服务提供方发送第二认证响应,以完成第二登录会话。
条款2.根据条款1的计算机实现的方法,其中会话标识符包括第一随机数,并且第二会话标识符包括第二随机数。
条款3.根据条款1的计算机实现的方法,其中第二登录请求包括与第一登录请求中的服务提供方上下文数据相匹配的服务提供方上下文数据。
条款4.根据条款1的计算机实现的方法,其中响应于第一认证请求而认证客户端,生成第一认证令牌,并且向客户端发送具有第一认证令牌并且将客户端重新引导到代理服务的第一认证响应的步骤包括:使用代理配置数据来标识代理服务。
条款5.根据条款4的计算机实现的方法,其中第一认证请求中所包括的一个或多个参数被用于标识代理服务。
条款6.根据条款1的计算机实现的方法,其中代理服务包括后缀代理服务,并且针对后缀代理服务的标识数据被附加到与服务提供方相对应的通用资源。
条款7.一种具有单点登入认证能力的反向代理系统,系统包括:具有一个或多个处理器和至少一个计算机存储介质的代理服务,至少一个计算机存储介质具有存储在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使一个或多个处理器:从客户端接收包括认证令牌和专用会话标识符的认证响应消息;确定从客户端接收的认证响应消息中的专用会话标识符是否被存储在代理服务上;如果从客户端接收的认证响应消息中的专用会话标识符被存储在代理服务上,则向认证响应消息被引导到的服务提供方发送具有认证令牌和专用会话标识符的认证响应消息;以及如果从客户端接收的认证响应消息中的专用会话标识符未被存储在代理服务上,则:向认证响应消息被引导到的服务提供方发送登录请求消息,从服务提供方接收认证请求消息,认证请求消息包括另一专用会话标识符并且将认证请求消息重新引导到身份提供方,将另一专用会话标识符存储在代理服务上,并且向客户端发送具有另一专用会话标识符的认证请求消息。
条款8.根据条款7的反向代理系统,系统包括身份提供方,身份提供方具有一个或多个处理器和至少一个计算机存储介质,至少一个计算机存储介质具有存储在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使一个或多个处理器:从客户端接收认证请求消息;认证来自客户端的认证请求消息中所包括的用户凭证,并且生成认证令牌;确定与来自客户端的认证请求消息相关并且标识用于重新引导的代理服务的代理服务重新引导是否被定义;如果与来自客户端的认证请求消息相关的代理服务重新引导被定义,则生成被配置为重新引导到代理服务并且包括所生成的认证令牌的认证响应消息;以及向客户端发送被配置为重新引导到代理服务并且包括所生成的认证令牌的认证响应消息。
条款9.根据条款8的反向代理系统,其中由身份提供方从客户端接收的认证请求中所包括的一个或多个参数被身份提供方利用,以确定与来自客户端的认证请求消息相关的代理服务重新引导是否被定义。
条款10.根据条款7的反向代理系统,其中专用会话标识符包括第一随机数,并且另一专用会话标识符包括第二随机数。
条款11.根据条款7的反向代理系统,其中客户端和服务提供方被配置为根据预定义认证协议进行操作,并且代理服务被配置为根据预定义认证协议与客户端和服务提供方通信,使得客户端设备和服务提供方不需要来自预定义认证协议的操作修改。
条款12.根据条款7的反向代理系统,其中代理服务包括后缀代理服务,并且针对后缀代理服务的标识数据被附加到与服务提供方相对应的通用资源定位符。
条款13.根据条款7的反向代理系统,其中由代理服务向认证响应消息被引导到的服务提供方发送的登录请求消息包括与认证响应消息中的状态数据相匹配的状态数据。
条款14.一种具有存储在其上的计算机可执行指令的一个或多个计算机存储介质,该计算机可执行指令在由一个或多个处理器执行时使处理器执行一种用于反向代理系统中的单点登入认证的方法,该方法包括:在代理服务中:从客户端接收包括认证令牌和专用会话标识符的认证响应消息;确定从客户端接收的认证响应消息中的专用会话标识符是否被存储在代理服务上;如果从客户端接收的认证响应消息中的专用会话标识符被存储在代理服务上,则向认证响应消息被引导到的服务提供方发送具有认证令牌和专用会话标识符的认证响应消息;以及如果从客户端接收的认证响应消息中的专用会话标识符未被存储在代理服务上,则:向认证响应消息被引导到的服务提供方发送登录请求消息,从服务提供方接收认证请求消息,认证请求消息包括另一专用会话标识符并且将认证请求消息重新引导到身份提供方,将另一专用会话标识符存储在代理服务上,并且向客户端发送具有另一专用会话标识符的认证请求消息。
条款15.根据条款14的计算机存储介质,系统包括身份提供方,身份提供方具有一个或多个处理器和至少一个计算机存储介质,至少一个计算机存储介质具有存储在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时使一个或多个处理器:从客户端接收认证请求消息;认证来自客户端的认证请求消息中所包括的用户凭证,并且生成认证令牌;确定与来自客户端的认证请求消息相关并且标识用于重新引导的代理服务的代理服务重新引导是否被定义;如果与来自客户端的认证请求消息相关的代理服务重新引导被定义,则生成被配置为重新引导到代理服务并且包括所生成的认证令牌的认证响应消息;以及向客户端发送被配置为重新引导到代理服务并且包括所生成的认证令牌的认证响应消息。
条款16.根据条款15的计算机存储介质,其中由身份提供方从客户端接收的认证请求中所包括的一个或多个参数被身份提供方利用,以确定与来自客户端的认证请求消息相关的代理服务重新引导是否被定义。
条款17.根据条款14的计算机存储介质,其中专用会话标识符包括第一随机数,并且另一专用会话标识符包括第二随机数。
条款18.根据条款14的计算机存储介质,其中客户端和服务提供方被配置为根据预定义认证协议进行操作,并且代理服务被配置为根据预定义认证协议与客户端和服务提供方通信,使得客户端设备和服务提供方不需要来自预定义认证协议的操作修改。
条款19.根据条款14的计算机存储介质,其中代理服务包括后缀代理服务,并且针对后缀代理服务的标识数据被附加到与服务提供方相对应的通用资源定位符。
条款20根据条款14的计算机存储介质,其中由代理服务向认证响应消息被引导到的服务提供方发送的登录请求消息包括与认证响应消息中的状态数据相匹配的状态数据。
基于前述内容,应该了解的是,所公开的技术使得能够在利用反向代理服务的系统中进行单点登入会话,从而通过减少回放攻击的脆弱性来提高安全,并通过使用反向代理服务来提高安全和效率。尽管已经用特定于计算机结构特征、方法和变换动作、特定计算机器和计算机可读介质的语言描述了本文提出的主题,但是应该理解的是,所附权利要求中陈述的主题不必受到本文描述的特定特征、动作或介质的限制。相反,将特定特征、动作和介质公开为实施所要求保护的主题的示例形式。
上述主题仅以说明方式提供,并且不应解释为限制性的。可以在不遵循所图示和描述的示例配置和应用并且不脱离在以下权利要求中陈述的本公开的范围的情况下对本文描述的主题进行各种修改和改变。

Claims (20)

1.一种用于在具有反向代理服务的系统中执行单点登入认证的计算机实现的方法,所述方法包括:
从客户端向服务提供方发送第一登录请求,以发起第一登录会话;
响应于所述第一登录请求,在所述服务提供方中,生成第一专用会话标识符,存储所述第一专用会话标识符,并且对所述第一专用会话标识符进行散列,以创建第一会话标识符散列;
从所述服务提供方向所述客户端发送第一认证请求消息,所述第一认证请求消息包含所述第一会话标识符和所述第一会话标识符散列并且将第一认证请求消息重新引导到身份提供方;
响应于所述第一认证请求消息,在所述客户端中,存储所述第一会话标识符并且向所述身份提供方发送第一认证请求;
在所述身份提供方中,响应于所述第一认证请求而认证所述客户端,生成第一认证令牌,并且向所述客户端发送具有所述第一认证令牌并且将所述客户端重新引导到代理服务的第一认证响应;
在所述客户端中,接收具有所述第一认证令牌的所述第一认证响应,并且将具有所述第一会话标识符的所述第一认证响应重新引导到所述代理服务;
在所述代理服务中,接收所述第一认证响应并且确定所述第一会话标识符是否被存储在所述代理服务上;
如果所述第一会话标识符未被存储在所述代理服务上,则在所述代理服务中,向所述服务提供方发送第二登录请求,以发起第二登录会话;
响应于所述第二登录请求,在所述服务提供方中,生成第二专用会话标识符,存储所述第二专用会话标识符,并且对所述第二专用会话标识符进行散列,以创建第二会话标识符散列;
从所述服务提供方向所述代理服务发送第二认证请求消息,所述第二认证请求消息包含所述第二会话标识符和所述第二会话标识符散列并且将第二认证请求消息重新引导到所述身份提供方;
在所述代理服务中,存储所述第二会话标识符并且向所述客户端发送所述第二认证请求消息;
在所述客户端中,存储所述第二会话标识符并且向所述身份提供方发送所述第二认证请求消息;
在所述身份提供方中,响应于所述第二认证请求而认证所述客户端,生成第二认证令牌,并且向所述客户端发送具有所述第二认证令牌并且将所述客户端重新引导到所述代理服务的第二认证响应;
在所述客户端中,接收具有所述第二认证令牌的所述第二认证响应,并且将具有所述第二会话标识符的所述第二认证响应重新引导到所述代理服务;
在所述代理服务中,接收所述第二认证响应并且确定所述第二会话标识符是否被存储在所述代理服务上;以及
如果所述第二会话标识符被存储在所述代理服务上,则在所述代理服务中,向所述服务提供方发送所述第二认证响应,以完成所述第二登录会话。
2.根据权利要求1所述的计算机实现的方法,其中所述会话标识符包括第一随机数,并且所述第二会话标识符包括第二随机数。
3.根据权利要求1所述的计算机实现的方法,其中所述第二登录请求包括与所述第一登录请求中的服务提供方上下文数据相匹配的服务提供方上下文数据。
4.根据权利要求1所述的计算机实现的方法,其中响应于所述第一认证请求而认证所述客户端,生成第一认证令牌,并且向客户端发送具有所述第一认证令牌并且将所述客户端重新引导到代理服务的第一认证响应的所述步骤包括:使用代理配置数据来标识所述代理服务。
5.根据权利要求4所述的计算机实现的方法,其中所述第一认证请求中所包括的一个或多个参数被用于标识所述代理服务。
6.根据权利要求1所述的计算机实现的方法,其中所述代理服务包括后缀代理服务,并且针对所述后缀代理服务的标识数据被附加到与所述服务提供方相对应的通用资源。
7.一种具有单点登入认证能力的反向代理系统,所述系统包括:
一个或多个处理器;以及
至少一个计算机存储介质,所述至少一个计算机存储介质在其上存储有计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述一个或多个处理器:
从客户端接收包括认证令牌和专用会话标识符的认证响应消息;
确定从所述客户端接收的所述认证响应消息中的所述专用会话标识符是否被存储在代理服务上;
如果从所述客户端接收的所述认证响应消息中的所述专用会话标识符被存储在所述代理服务上,则向所述认证响应消息被引导到的服务提供方发送具有所述认证令牌和所述专用会话标识符的所述认证响应消息;以及
如果从所述客户端接收的所述认证响应消息中的所述专用会话标识符未被存储在所述代理服务上,则:
向所述认证响应消息被引导到的所述服务提供方发送登录请求消息,
从所述服务提供方接收认证请求消息,所述认证请求消息包括另一专用会话标识符并且将所述认证请求消息重新引导到身份提供方,
将所述另一专用会话标识符存储在所述代理服务上,以及
向所述客户端发送具有所述另一专用会话标识符的所述认证请求消息。
8.根据权利要求7所述的反向代理系统,所述系统包括所述身份提供方,所述身份提供方具有一个或多个处理器和至少一个计算机存储介质,所述至少一个计算机存储介质具有存储在其上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述一个或多个处理器:
从所述客户端接收认证请求消息;
认证来自所述客户端的所述认证请求消息中所包括的用户凭证,并且生成认证令牌;
确定与来自所述客户端的所述认证请求消息相关并且标识用于重新引导的所述代理服务的代理服务重新引导是否被定义;
如果与来自所述客户端的所述认证请求消息相关的所述代理服务重新引导被定义,则生成被配置为重新引导到所述代理服务并且包括所生成的所述认证令牌的认证响应消息;以及
向所述客户端发送被配置为重新引导到所述代理服务并且包括所生成的所述认证令牌的所述认证响应消息。
9.根据权利要求8所述的反向代理系统,其中由所述身份提供方从所述客户端接收的所述认证请求中所包括的一个或多个参数被所述身份提供方利用,以确定与来自所述客户端的所述认证请求消息相关的代理服务重新引导是否被定义。
10.根据权利要求7所述的反向代理系统,其中所述专用会话标识符包括第一随机数,并且所述另一专用会话标识符包括第二随机数。
11.根据权利要求7所述的反向代理系统,其中所述客户端和所述服务提供方被配置为根据预定义认证协议进行操作,并且所述代理服务被配置为根据所述预定义认证协议与所述客户端和所述服务提供方通信,使得所述客户端设备和服务提供方不需要来自所述预定义认证协议的操作修改。
12.根据权利要求7所述的反向代理系统,其中所述代理服务包括后缀代理服务,并且针对所述后缀代理服务的标识数据被附加到与所述服务提供方相对应的通用资源定位符。
13.根据权利要求7所述的反向代理系统,其中由所述代理服务向所述认证响应消息被引导到的所述服务提供方发送的所述登录请求消息包括与所述认证响应消息中的状态数据相匹配的状态数据。
14.一种计算机存储介质,所述计算机存储介质在其上存储有计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时,使所述处理器执行用于反向代理系统中的单点登入认证的方法,所述方法包括:在代理服务中,
从客户端接收包括认证令牌和专用会话标识符的认证响应消息;
确定从所述客户端接收的所述认证响应消息中的所述专用会话标识符是否被存储在所述代理服务上;
如果从所述客户端接收的所述认证响应消息中的所述专用会话标识符被存储在所述代理服务上,则向所述认证响应消息被引导到的服务提供方发送具有所述认证令牌和所述专用会话标识符的所述认证响应消息;以及
如果从所述客户端接收的所述认证响应消息中的所述专用会话标识符未被存储在所述代理服务上,则:
向所述认证响应消息被引导到的所述服务提供方发送登录请求消息,
从所述服务提供方接收认证请求消息,所述认证请求消息包括另一专用会话标识符并且将所述认证请求消息重新引导到身份提供方,
将所述另一专用会话标识符存储在所述代理服务上,以及
向所述客户端发送具有所述另一专用会话标识符的所述认证请求消息。
15.根据权利要求14所述的计算机存储介质,所述系统包括所述身份提供方,所述身份提供方具有一个或多个处理器和至少一个计算机存储介质,所述至少一个计算机存储介质具有存储在其上的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使所述一个或多个处理器:
从所述客户端接收认证请求消息;
认证来自所述客户端的所述认证请求消息中所包括的用户凭证,并且生成认证令牌;
确定与来自所述客户端的所述认证请求消息相关并且标识用于重新引导的所述代理服务的代理服务重新引导是否被定义;
如果与来自所述客户端的所述认证请求消息相关的所述代理服务重新引导被定义,则生成被配置为重新引导到所述代理服务并且包括所生成的所述认证令牌的认证响应消息;以及
向所述客户端发送被配置为重新引导到所述代理服务并且包括所生成的所述认证令牌的所述认证响应消息。
16.根据权利要求15所述的计算机存储介质,其中由所述身份提供方从所述客户端接收的所述认证请求中所包括的一个或多个参数被所述身份提供方利用,以确定与来自所述客户端的所述认证请求消息相关的代理服务重新引导是否被定义。
17.根据权利要求14所述的计算机存储介质,其中所述专用会话标识符包括第一随机数,并且所述另一专用会话标识符包括第二随机数。
18.根据权利要求14所述的计算机存储介质,其中所述客户端和所述服务提供方被配置为根据预定义认证协议进行操作,并且所述代理服务被配置为根据所述预定义认证协议与所述客户端和所述服务提供方通信,使得所述客户端设备和服务提供方不需要来自所述预定义认证协议的操作修改。
19.根据权利要求14所述的计算机存储介质,其中所述代理服务包括后缀代理服务,并且针对所述后缀代理服务的标识数据被附加到与所述服务提供方相对应的通用资源定位符。
20.根据权利要求14所述的计算机存储介质,其中由所述代理服务向所述认证响应消息被引导到的所述服务提供方发送的所述登录请求消息包括与所述认证响应消息中的状态数据相匹配的状态数据。
CN201980061782.0A 2018-09-21 2019-06-28 用于反向代理解决方案中的单点登入认证的随机数处置器 Active CN112771831B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/138,488 US10938801B2 (en) 2018-09-21 2018-09-21 Nonce handler for single sign on authentication in reverse proxy solutions
US16/138,488 2018-09-21
PCT/US2019/039663 WO2020060646A1 (en) 2018-09-21 2019-06-28 Nonce handler for single sign on authentication in reverse proxy solutions

Publications (2)

Publication Number Publication Date
CN112771831A CN112771831A (zh) 2021-05-07
CN112771831B true CN112771831B (zh) 2022-12-27

Family

ID=67439364

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980061782.0A Active CN112771831B (zh) 2018-09-21 2019-06-28 用于反向代理解决方案中的单点登入认证的随机数处置器

Country Status (4)

Country Link
US (1) US10938801B2 (zh)
EP (1) EP3854049B1 (zh)
CN (1) CN112771831B (zh)
WO (1) WO2020060646A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9853977B1 (en) * 2015-01-26 2017-12-26 Winklevoss Ip, Llc System, method, and program product for processing secure transactions within a cloud computing system
US20200106766A1 (en) * 2018-09-28 2020-04-02 Konica Minolta Laboratory U.S.A., Inc. Method and system for security assertion markup language (saml) service provider-initiated single sign-on
US11431698B2 (en) * 2018-10-31 2022-08-30 NBA Properties, Inc. Partner integration network
US11329823B2 (en) 2019-09-26 2022-05-10 Bank Of America Corporation User authentication using tokens
US11303629B2 (en) 2019-09-26 2022-04-12 Bank Of America Corporation User authentication using tokens
US11140154B2 (en) * 2019-09-26 2021-10-05 Bank Of America Corporation User authentication using tokens
US11574045B2 (en) 2019-12-10 2023-02-07 Winkk, Inc. Automated ID proofing using a random multitude of real-time behavioral biometric samplings
US11553337B2 (en) 2019-12-10 2023-01-10 Winkk, Inc. Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel
US11928193B2 (en) 2019-12-10 2024-03-12 Winkk, Inc. Multi-factor authentication using behavior and machine learning
US11328042B2 (en) * 2019-12-10 2022-05-10 Winkk, Inc. Automated transparent login without saved credentials or passwords
US11936787B2 (en) 2019-12-10 2024-03-19 Winkk, Inc. User identification proofing using a combination of user responses to system turing tests using biometric methods
WO2021232347A1 (en) * 2020-05-21 2021-11-25 Citrix Systems, Inc. Cross device single sign-on
US11477188B2 (en) * 2020-07-01 2022-10-18 Citrix Systems, Inc. Injection of tokens or client certificates for managed application communication
US11652613B2 (en) * 2020-09-04 2023-05-16 Citrix Systems, Inc. Secure information exchange in federated authentication
CN113766186B (zh) * 2021-08-25 2023-05-23 浙江大华技术股份有限公司 网络摄像机配置界面的跳转方法、装置、系统和电子装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897743A (zh) * 2016-05-26 2016-08-24 努比亚技术有限公司 一种跨域单点登录的方法及服务器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4179535B2 (ja) 2002-09-03 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、リバースプロキシ、コンピュータ装置、データ処理方法及びプログラム
US20060277596A1 (en) * 2005-06-06 2006-12-07 Calvert Peter S Method and system for multi-instance session support in a load-balanced environment
US8327426B2 (en) * 2006-06-01 2012-12-04 Novell Intellectual Property Holdings, Inc. Single sign on with proxy services
US8966594B2 (en) * 2008-02-04 2015-02-24 Red Hat, Inc. Proxy authentication
US9699168B2 (en) * 2010-12-13 2017-07-04 International Business Machines Corporation Method and system for authenticating a rich client to a web or cloud application
CA2775206C (en) 2011-04-27 2019-02-26 Perspecsys Inc. System and method of handling requests in a multi-homed reverse proxy
JP5197843B1 (ja) * 2011-12-27 2013-05-15 株式会社東芝 認証連携システムおよびidプロバイダ装置
US9137131B1 (en) 2013-03-12 2015-09-15 Skyhigh Networks, Inc. Network traffic monitoring system and method to redirect network traffic through a network intermediary
US9294462B2 (en) * 2014-01-15 2016-03-22 Cisco Technology, Inc. Redirect to inspection proxy using single-sign-on bootstrapping
US10609070B1 (en) * 2016-03-10 2020-03-31 Claude W. Farmer, III Device based user authentication
US10243946B2 (en) 2016-11-04 2019-03-26 Netskope, Inc. Non-intrusive security enforcement for federated single sign-on (SSO)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105897743A (zh) * 2016-05-26 2016-08-24 努比亚技术有限公司 一种跨域单点登录的方法及服务器

Also Published As

Publication number Publication date
EP3854049B1 (en) 2022-04-20
US20200099675A1 (en) 2020-03-26
EP3854049A1 (en) 2021-07-28
WO2020060646A1 (en) 2020-03-26
US10938801B2 (en) 2021-03-02
CN112771831A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
CN112771831B (zh) 用于反向代理解决方案中的单点登入认证的随机数处置器
US11184359B2 (en) Automated access control policy generation for computer resources
US10992658B2 (en) Client-side native application and browser identification for session control in proxy solutions
CN108292332B (zh) 利用第三方数据和元数据来扩展联合图
US20160142387A1 (en) Storage for encrypted data with enhanced security
US20200287915A1 (en) Automated generation and deployment of honey tokens in provisioned resources on a remote computer resource platform
US20210120412A1 (en) Zero-touch provisioning of internet of things devices
US10922388B2 (en) Session control for client-side applications in proxy solutions
US11956239B2 (en) Identity misconfiguration detection for role-based access control
US11159568B2 (en) Account management using account activity usage restrictions
EP4272416A1 (en) Interim connections for providing secure communication of content between devices
US20180034795A1 (en) Simplified Configuration of Computing Devices for Use with Multiple Network Services
US10891385B2 (en) Encryption at rest for cloud-resourced virtual machines
US11539828B2 (en) User interface process flow for posting content on a display device
US20220342976A1 (en) Enhance single sign-on flow for secure computing resources
US20230239286A1 (en) Dynamic attachment of secure properties to machine identity with digital certificates
US20230239164A1 (en) Embedding intermediate certificate in digital certificate
US20230239163A1 (en) Establishing pki chain of trust in air gapped cloud

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