首页 / 专利库 / 软件 / 软件包 / 软件组件 / 经由应用编程接口从一步认证自动升级到两步认证

经由应用编程接口从一步认证自动升级到两步认证

阅读:295发布:2020-05-08

专利汇可以提供经由应用编程接口从一步认证自动升级到两步认证专利检索,专利查询,专利分析的服务。并且客户端通过应用编程 接口 (API)向 服务器 发送用户标识符和密码。客户端与服务器建立经认证的会话,其中客户端具有用于与API相关联的操作的第一组 许可 。响应于服务器对用户标识符和密码的验证,客户端接收登录响应和共享秘密。客户端基于共享秘密生成一次性密码(OTP)。客户端通过API将OTP发送到服务器。响应于服务器对照共享秘密验证OTP,服务器授予与API相关联的操作的第二组许可。,下面是经由应用编程接口从一步认证自动升级到两步认证专利的具体信息内容。

1.一种用于两步认证的方法,所述方法包括:
由客户端经由应用编程接口(API)向服务器发送用户标识符和密码;
与所述服务器建立经认证的会话,所述客户端具有与所述API相关联的操作的第一组许可
响应于所述服务器对所述用户标识符和密码的验证,接收登录响应和共享秘密;
由所述客户端基于所述共享秘密生成一次性密码(OTP);
经由所述API将所述OTP发送到所述服务器;以及
响应于所述服务器对照所述共享机密来验证所述OTP,授予与所述API相关联的操作的第二组许可。
2.如权利要求1所述的方法,还包括:
由所述客户端设备从用户接收所述用户标识符和密码。
3.如前述权利要求中的任一项所述的方法,其中所述登录响应和所述共享秘密的接收是响应于确定与所述用户标识符相关联的用户被指定用于从一个因素认证升级到两个因素认证。
4.如前述权利要求中任一项所述的方法,还包括:
由所述客户端将所述共享秘密存储在与用户相关联的客户端偏好组件内。
5.如前述权利要求中任一项所述的方法,其中所述服务器被配置为将所述共享秘密存储在与用户相关联的用户简档内。
6.如前述权利要求中任一项所述的方法,其中所述API包括表述性状态转移(REST)API。
7.如前述权利要求中任一项所述的方法,其中所述第二组许可大于所述第一组许可。
8.如前述权利要求中任一项所述的方法,还包括:
在随后的登录操作中,将所述用户ID、所述密码和基于所述共享秘密生成的当前OTP发送到所述服务器。
9.一种用于两步认证的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,其可由处理电路读取并且存储用于由所述处理电路执行以用于执行根据权利要求1至8中任一项所述的方法的指令。
10.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行根据权利要求1至8中任一项所述的方法。
11.一种计算机系统,包括一个或多个处理器、一个或多个计算机可读存储器、和一个或多个计算机可读存储设备、以及存储在所述一个或多个存储设备中的至少一个上的程序指令,所述程序指令用于由所述一个或多个处理器中的至少一个经由所述一个或多个存储器中的至少一个来执行,所存储的程序指令包括:
用于由客户端经由应用编程接口(API)向服务器发送用户标识符和密码的程序指令;
用于与所述服务器建立经认证的会话的程序指令,所述客户端具有用于与所述API相关联的操作的第一组许可;
用于响应于所述服务器对所述用户标识符和密码的验证,接收登录响应和共享秘密的程序指令;
用于由所述客户端基于所述共享秘密生成一次性密码(OTP)的程序指令;
用于经由所述API将所述OTP发送到所述服务器的程序指令;以及
用于响应于所述服务器对照所述共享秘密验证所述OTP而授予与所述API相关联的操作的第二组许可的程序指令。
12.如权利要求11所述的计算机系统,所存储的程序指令还包括:
用于由所述客户端设备从用户接收所述用户标识符和密码的程序指令。
13.如权利要求11或12中的任一项所述的计算机系统,其中,所述登录响应和所述共享秘密的接收是响应于确定与所述用户标识符相关联的用户被指定用于从一个因素认证升级到两个因素认证。
14.如权利要求11至13中任一项所述的计算机系统,所存储的程序指令还包括:
用于由所述客户端将所述共享秘密存储在与用户相关联的客户端偏好组件内的程序指令。
15.如权利要求11至14中任一项所述的计算机系统,其中所述服务器被配置为将所述共享秘密存储在与用户相关联的用户简档内。
16.如权利要求11至15中的任一项所述的计算机系统,其中所述API包括表述性状态转移(REST)API。
17.如权利要求11至13中的任一项所述的计算机系统,其中所述第二组许可大于所述第一组许可。
18.如权利要求11至17中任一项所述的计算机系统,所存储的程序指令还包括:用以在随后的登录操作中将所述用户ID、所述密码和基于所述共享秘密生成的当前OTP发送到所述服务器的程序指令。
19.如权利要求11至18中任一项所述的计算机系统,其中所存储的程序指令被存储在数据处理系统中的计算机可读存储设备中,并且其中所存储的程序指令通过网络从远程数据处理系统被传输。
20.如权利要求11至19中任一项所述的计算机系统,其中所存储的程序指令被存储在服务器数据处理系统中的计算机可读存储设备中,并且其中所存储的程序指令通过网络被下载到远程数据处理系统,以在与所述远程数据处理系统相关联的计算机可读存储设备中使用。

说明书全文

经由应用编程接口从一步认证自动升级到两步认证

技术领域

[0001] 本发明一般涉及用于两步认证的方法、系统和计算机程序产品。更具体地说,本发明涉及用于经由应用编程接口从一步认证自动升级到两步认证的方法、系统和计算机程序产品。

背景技术

[0002] 需要为应用提供适当的安全认证。当前,网络应用安全性正在从用户提供用户标识符(ID)和密码以便向网络服务或应用进行认证的标准过程增强到进一步要求两步认证过程。除了要求用户提供第一认证因素,诸如用户ID和密码之外,两步认证还要求用户提供第二认证因素以便完成认证过程。通常,第二认证因素是用户已知的、不太可能被未授权用户知道的信息,诸如用户已知的秘密或安全令牌。
[0003] 因此,在本领域中需要解决上述问题。

发明内容

[0004] 从第一方面来看,本发明提供了一种用于两步认证的方法,该方法包括:由客户端经由应用编程接口(API)向服务器发送用户标识符和密码;与所述服务器建立经认证的会话,所述客户端具有与所述API相关联的操作的第一组许可;响应于所述服务器对所述用户标识符和密码的验证,接收登录响应和共享秘密;由所述客户端基于所述共享秘密生成一次性密码(OTP);经由所述API将所述OTP发送到所述服务器;以及响应于服务器对照共享秘密验证OTP,授予与API相关联的操作的第二组许可。
[0005] 从另一方面来看,本发明提供了一种用于两步认证的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取并且存储用于由处理电路执行以执行用于执行本发明的步骤的方法的指令。
[0006] 从另一方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。
[0007] 从另一方面来看,本发明提供了一种计算机系统,其包括一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读存储设备、以及存储在所述一个或多个存储设备中的至少一个上的程序指令,所述程序指令用于由所述一个或多个处理器中的至少一个经由所述一个或多个存储器中的至少一个来执行,所存储的程序指令包括:用于由客户端经由应用编程接口(API)向服务器发送用户标识符和密码的程序指令;用于与所述服务器建立经认证的会话的程序指令,所述客户端具有用于与所述API相关联的操作的第一组许可;用于响应于所述服务器对所述用户标识符和密码的验证,接收登录响应和共享秘密的程序指令;用于由所述客户端基于所述共享秘密生成一次性密码(OTP)的程序指令;用于经由所述API将所述OTP发送到所述服务器的程序指令;以及用于响应于服务器对照共享秘密验证OTP而授予与API相关联的操作的第二组许可的程序指令。
[0008] 说明性实施例提供了一种方法、系统和计算机程序产品。一种方法的实施例包括由客户端经由应用编程接口(API)向服务器发送用户标识符和密码。该实施例还包括与服务器建立经认证的会话,其中客户端具有用于与API相关联的操作的第一组许可。该实施例还包括响应于服务器对用户标识符和密码的验证,接收登录响应和共享秘密。该实施例还包括由客户端基于共享秘密生成一次性密码(OTP)。该实施例还包括经由API将OTP发送到服务器。该实施例还进一步包括响应于服务器对照共享秘密验证OTP,授予与API相关联的操作的第二组许可。
[0009] 实施例还包括由客户端设备从用户接收用户标识符和密码。在实施例中,登录响应和共享秘密的接收响应于确定与用户标识符相关联的用户被指定用于从一个因素认证升级到两个因素认证。
[0010] 实施例还包括由客户端将共享秘密存储在与用户相关联的客户端偏好组件内。在一个实施例中,服务器被配置为将共享秘密存储在与用户相关联的用户简档内。在一个实施例中,API包括表述性状态转移(REST)API。在一个实施例中,第二组许可大于第一组许可。
[0011] 实施例还包括在随后的登录操作中将用户ID、密码和基于共享秘密生成的当前OTP发送到服务器。
[0012] 实施例包括计算机可用程序产品。计算机可用程序产品包括一个或多个计算机可读存储设备,以及存储在一个或多个存储设备中的至少一个上的程序指令。实施例包括计算机系统。该计算机系统包括一个或多个处理器、一个或多个计算机可读存储器、以及一个或多个计算机可读存储设备,以及存储在一个或多个存储设备中的至少一个上的程序指令,用于由一个或多个处理器中的至少一个经由一个或多个存储器中的至少一个来执行。附图说明
[0013] 在所附权利要求中阐述了被认为是本发明的特性的某些新颖特征。然而,结合附图通过参考以下对说明性实施例的详细描述,将最好地理解本发明本身及其优选使用模式、进一步的目的和优点,其中:
[0014] 图1描述了可以实现说明性实施例的数据处理系统的网络的框图
[0015] 图2描述了可以实现说明性实施例的数据处理系统的框图;
[0016] 图3描述了根据说明性实施例的用于两步认证的自动升级的示例配置的框图;
[0017] 图4描述了根据说明性实施例的用于两步认证的自动升级的示例过程的消息流;
[0018] 图5描绘了根据说明性实施例的用于两步认证的自动升级的示例客户端侧过程的流程图;以及
[0019] 图6描绘了根据说明性实施例的用于两步认证的自动升级的示例服务器侧过程的流程图。

具体实施方式

[0020] 各种说明性实施例提供了用于利用无状态协议应用编程接口(API)的服务器应用或服务的从一步认证到两步认证的自动升级。无状态协议不需要发送方或接收方在通信会话的生命期间保留会话信息。一个或多个实施例提供了对完全带内利用表述性状态转移(REST)API的服务器应用或服务从一步认证到两步认证的自动升级,而无需REST API工作区域之外的附加步骤。两步认证有时被称为双因素认证。在特定实施例中,仅利用用户ID和密码来认证的一步认证对于特定用户被自动升级到利用用户ID/密码以及一次性密码来认证的两步认证。
[0021] 在双因素认证的传统用例中,用户经由浏览器登录到web应用,输入用户ID和密码,并在与用户相关联的用户简档内启用双因素认证。用户然后通常通过扫描QR码来捕获与智能电话或其他设备的共享秘密。用户基于共享秘密生成验证码,并将验证码提交给认证服务器以供验证。在现有的实现中,要求用户通过经由web浏览器登录来以传统方式设置第二因素,并且与API访问相比,将不是相同的共享秘密和算法的单独的认证令牌用于web访问。
[0022] 本文描述的一个或多个特定实施例允许经由REST API与web应用交互的用户利用传统web浏览器可用的相同特征集,即,使得能够对其用户账户进行两步认证,作为经由REST API客户端的认证。
[0023] 在一个实施例中,特定用户被指定为需要从一个因素认证升级到两个因素认证,以便在下一次登录尝试时准许对一个或多个应用或服务的访问。在特定实施例中,用户被应用或服务的管理员指定为需要双因素认证。在该实施例中,用户通过使用web服务(REST API)客户端应用提供用户ID和密码来登录到诸如认证服务器的服务器。在该实施例中,服务器尝试使用用户ID和密码来验证用户。
[0024] 在成功认证之后,在服务器和客户端之间建立诸如web服务会话等会话,其中用户处于受限的登录状态。在受限登录状态中,用户被认证但仅具有访问API操作的有限集合的许可。在该实施例中,服务器生成共享秘密并将该共享秘密存储在会话内。在一个或多个实施例中,共享秘密是仅为客户端和服务器所知的信息,其使用诸如公钥加密的密钥协商协议来创建。在特定实施例中,共享秘密是密码、口令短语或伪随机生成的数字或字符串。在该实施例中,服务器将登录响应发送回包含会话专用数据和共享秘密的客户端。
[0025] 在该实施例中,客户端应用基于共享秘密生成一次性密码(OTP)。在特定实施例中,OTP是使用诸如在M'Raihi,D.,Machani,S.,PEI,M.,Rydell,J.,“TOTP:基于时间的一次性密码算法”,请求注解(RFC)6238,因特网工程任务组(IETF),May2011中描述的基于时间的一次性密码(TOTP)算法从共享秘密生成的。在一个或多个实施例中,服务器使用密码散列函数将共享秘密与当前时间戳组合以生成一次性密码。在该实施例中,客户端向服务器发送API请求,该API请求包括OTP,该OTP请求将共享秘密设置到与用户相关联的用户简档中。
[0026] 响应于接收到所述OTP,所述服务器对照所述共享秘密验证所述OTP。如果验证成功,则服务器将共享秘密存储在用户简档内,并将成功响应发送回客户端。在该实施例中,客户端应用将共享秘密存储到REST API客户端偏好组件或另一数据库中。在该实施例中,来自用户的后续登录要求用户基于共享秘密来提交用户ID、密码和当前OTP,以便向服务器认证以获得对由服务器提供的应用和服务的访问。
[0027] 仅作为示例,关于特定类型的服务、传输、数据处理系统、环境、组件和应用来描述说明性实施例。这些和其它类似技术的任何特定表现形式不是要限制本发明。可以在示例性实施例的范围内选择这些和其它类似技术的任何适当表现。
[0028] 此外,可以针对任何类型的数据、数据源或通过数据网络对数据源的访问来实现说明性实施例。在本发明的范围内,任何类型的数据存储设备可以在本地数据处理系统处或通过数据网络向本发明的实施例提供数据。在使用移动设备描述实施例的情况下,在说明性实施例的范围内,适于与移动设备一起使用的任何类型的数据存储设备可以在本地移动设备处或者通过数据网络向这样的实施例提供数据。
[0029] 使用特定代码、设计、架构、协议、布局、示意图和工具来描述说明性实施例,这些仅作为示例,而不是对说明性实施例的限制。此外,为了描述清楚,在一些实例中使用特定软件、工具和数据处理环境仅作为示例来描述说明性实施例。说明性实施例可以结合其他相当或类似目的结构、系统、应用或架构来使用。例如,在本发明的范围内,其他可比较的移动设备、结构、系统、应用或其架构可以与本发明的这种实施例结合使用。说明性实施例可以以硬件、软件或其组合来实现。
[0030] 本公开中的示例仅用于清楚描述,而不是限制于说明性实施例。从本公开可以想到附加的数据、操作、动作、任务、活动和操纵,并且在说明性实施例的范围内可以设想这些附加的数据、操作、动作、任务、活动和操纵。
[0031] 本文列出的任何优点仅是示例,并且不旨在限制说明性实施例。通过特定的说明性实施例可以实现附加的或不同的优点。此外,特定说明性实施例可具有上文所列优点中的一些、全部或不具有上文所列优点。
[0032] 参考附图,并且具体参考图1和图2,这些附图是可以实现说明性实施例的数据处理环境的示例图。图1和图2仅仅是示例,并且不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。特定实现可以基于以下描述对所描绘的环境进行许多修改
[0033] 图1描述了可以实现说明性实施例的数据处理系统的网络的框图。数据处理环境100是其中可以实现说明性实施例的计算机网络。数据处理环境100包括网络102。网络102是用于在数据处理环境100内连接在一起的各种设备和计算机之间提供通信链路的介质。
网络102可以包括诸如有线、无线通信链路或光纤电缆的连接。
[0034] 客户端或服务器仅是连接到网络102的某些数据处理系统的示例色,并且不旨在排除这些数据处理系统的其他配置或角色。服务器104和服务器106连同存储器108一起耦合到网络102。软件应用程序可以在数据处理环境100中的任何计算机上执行。客户端110、112和114也耦合到网络102。诸如服务器104或106或客户端110、112或114的数据处理系统可以包含数据,并且可以具有在其上执行的软件应用或软件工具。
[0035] 仅作为示例,而不暗示对这样的体系结构的任何限制,图1描绘了可在实施例的示例实现中使用的某些组件。例如,服务器104和106以及客户端110、112、114被描绘为服务器和客户端,仅作为示例,而不是暗示对客户端-服务器架构的限制。作为另一个例子,一个实施例可以分布在如图所示的几个数据处理系统和数据网络上,而另一个实施例可以在说明性实施例的范围内的单个数据处理系统上实现。数据处理系统104、106、110、112和114还表示适于实现实施例的集群、分区和其它配置中的示例节点
[0036] 设备132是本文描述的设备的示例。例如,设备132可以采取智能电话、平板计算机、膝上型计算机、固定或便携式形式的客户端110、可穿戴计算设备或任何其他合适的设备的形式。被描述为在图1中的另一数据处理系统中执行的任何软件应用程序可以被配置为以类似的方式在设备132中执行。在图1中的另一数据处理系统中存储或产生的任何数据或信息可以被配置为以类似的方式在设备132中存储或产生。
[0037] 服务器104的服务器应用105实现这里描述的服务器侧认证操作的实施例。数据库109可以存储在如图所示的存储器108中,或者由另一个源(未示出)提供。在特定实施例中,数据库109可以存储与一个或多个用户相关联的用户简档信息。客户端应用111实现这里描述的客户端侧认证操作的实施例。
[0038] 服务器104和106、存储器108、客户端110、112和114以及设备132可以使用有线连接、无线通信协议或其他合适的数据连接耦合到网络102。客户端110、112和114可以是例如个人计算机或网络计算机。
[0039] 在所描述的示例中,服务器104可以向客户端110、112和114提供数据,例如引导文件、操作系统映像和应用。在该示例中,客户端110、112和114可以是服务器104的客户端。客户端110、112、114或其某种组合可以包括它们自己的数据、引导文件、操作系统映像和应用。数据处理环境100可以包括未示出的附加服务器、客户端和其他设备。
[0040] 在所描述的示例中,数据处理环境100可以是因特网。网络102可以表示使用传输控制协议/网际协议(TCP/IP)和其它协议来彼此通信的网络和网关的集合。在因特网的核心是主节点或主机计算机之间的数据通信链路的主干,包括路由数据和消息的数千个商业、政府、教育和其它计算机系统。当然,数据处理环境100也可以实现为许多不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1旨在作为示例,而不是作为对不同说明性实施例的架构限制。
[0041] 除了其他用途之外,数据处理环境100可以用于实现其中可以实现示例性实施例的客户端-服务器环境。客户端-服务器环境使得软件应用程序和数据能够分布在网络上,以便应用程序通过使用客户端数据处理系统和服务器数据处理系统之间的交互性来工作。数据处理环境100还可以采用面向服务的体系结构,其中分布在网络上的可互操作的软件组件可以被打包在一起作为一致的业务应用。数据处理环境100还可以采取的形式,并且采用服务递送的云计算模型以实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努或与服务的提供者的交互来快速供应和释放。
[0042] 参考图2,该图描述了可以实现说明性实施例的数据处理系统的框图。数据处理系统200是计算机的示例,例如图1中的服务器104和106、或客户端110、112和114、或另一类型的设备,其中可以为示例性实施例设置实现处理的计算机可用程序代码或指令。
[0043] 数据处理系统200还代表数据处理系统或其中的配置,例如图1中的设备132,其中可以放置实现示例性实施例的处理的计算机可用程序代码或指令。数据处理系统200仅作为示例被描述为计算机,而不限于此。在不脱离这里描述的数据处理系统200的操作和功能的一般描述的情况下,以诸如图1中的设备132的其他设备的形式的实现可以诸如通过添加触摸接口来修改数据处理系统200,并且甚至从数据处理系统200中去除某些描绘的组件。
[0044] 在所描述的例子中,数据处理系统200采用集线器体系结构,包括北桥和存储器控制器集线器(NB/MCH)202以及南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208和图形处理器210耦合到北桥和存储器控制器集线器(NB/MCH)202。处理单元206可以包含一个或多个处理器,并且可以使用一个或多个异构处理器系统来实现。处理单元206可以是多核处理器。在某些实现中,图形处理器210可以通过加速图形端口(AGP)耦合到NB/MCH202。
[0045] 在所描述的例子中,局域网(LAN)适配器212耦合到南桥和I/O控制器集线器(SB/ICH)204。音频适配器216、键盘鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)和其它端口232、以及PCI/PCIe设备234通过总线238耦合到南桥和I/O控制器集线器204。硬盘驱动器(HDD)或固态驱动器(SSD)226和CD-ROM230通过总线240耦合到南桥和I/O控制器集线器204。PCI/PCIe设备234可以包括例如以太网适配器、附加卡和用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM224可以是例如闪存二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM230可使用例如集成驱动电子(IDE)、串行高级技术附件(SATA)接口或诸如外部SATA(eSATA)和微SATA(mSATA)的变形。超级I/O(SIO)设备236可以通过总线238耦合到南桥和I/O控制器集线器(SB/ICH)204。
[0046] 存储器例如主存储器208、ROM224或闪存(未示出),是计算机可用存储设备的一些示例。硬盘驱动器或固态驱动器226、CD-ROM230和其它类似可用的设备是包括计算机可用存储介质的计算机可用存储设备的一些示例。
[0047] 操作系统在处理单元206上运行。操作系统协调并提供对图2中的数据处理系统200内的各种组件的控制。操作系统可以是用于任何类型的计算平台的商业上可获得的操作系统,包括但不限于服务器系统、个人计算机和移动设备。面向对象或其它类型的编程系统可以与操作系统一起操作,并且提供从在数据处理系统200上执行的程序或应用对操作系统的调用。
[0048] 用于操作系统、面向对象的编程系统以及诸如图1中的服务器应用105或客户端应用111的应用或程序的指令位于存储设备上,诸如以硬盘驱动器226上的代码226A的形式,并且可被加载到诸如主存储器208的一个或多个存储器中的至少一个中,以便由处理单元206执行。说明性实施例的过程可以由处理单元206使用计算机实现的指令来执行,所述指令可以位于存储器中,例如主存储器208、只读存储器224,或者位于一个或多个外围设备中。
[0049] 此外,在一种情况下,代码226A可以通过网络201A从远程系统201B下载,其中类似的代码201C存储在存储设备201D上。在另一种情况下,代码226A可以通过网络201A下载到远程系统201B,其中下载的代码201C存储在存储设备201D上。
[0050] 图1-2中的硬件可以根据实现而变化。除了图1-2中描述的硬件之外,或者代替这些硬件,可以使用其它内部硬件或外围设备,例如闪存、等效的非易失性存储器或光盘驱动器等。此外,示例性实施例的处理可以应用于多处理器数据处理系统。
[0051] 在一些说明性示例中,数据处理系统200可以是个人数字助理(PDA),其通常配置有闪存以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一个或多个总线,例如系统总线、I/O总线和PCI总线。当然,总线系统可以使用任何类型的通信结构或体系结构来实现,用于提供在附接到该结构或体系结构的不同组件或设备之间的数据传输。
[0052] 通信单元可以包括一个或多个用于发送和接收数据的设备,例如调制解调器或网络适配器。存储器可以是例如主存储器208或高速缓存,诸如在北桥和存储器控制器集线器202中找到的高速缓存。处理单元可以包括一个或多个处理器或CPU。
[0053] 图1-2中所描述的例子和上述例子不意味着暗示体系结构限制。例如,数据处理系统200除了采取移动或可穿戴设备的形式之外,还可以是平板计算机、膝上型计算机或电话设备。
[0054] 在计算机或数据处理系统被描述为虚拟机、虚拟设备或虚拟组件的情况下,虚拟机、虚拟设备或虚拟组件使用数据处理系统200中所描绘的一些或所有组件的虚拟化表现来以数据处理系统200的方式操作。例如,在虚拟机、虚拟设备或虚拟组件中,处理单元206被表现为主机数据处理系统中可用的所有或一些数量的硬件处理单元206的虚拟化实例,主存储器208被表现为主机数据处理系统中可用的主存储器208的所有或一些部分的虚拟化实例,并且磁盘226被表现为主机数据处理系统中可用的磁盘226的所有或一些部分的虚拟化实例。在这种情况下,主机数据处理系统由数据处理系统200表示。
[0055] 参考图3,该图描绘了根据说明性实施例的用于两步认证的自动升级的示例配置的框图。客户端302是图1中的客户端110的示例,并且客户端应用306是图1中的客户端应用111的示例。服务器304是图1中的服务器104的示例,并且服务器应用314是图1中的服务器应用105的示例。网络300是图1中的网络102的示例。
[0056] 客户端应用程序306包括认证组件308、REST API组件310和客户端偏好组件312。认证组件308被配置成执行客户端侧认证操作,诸如如本文所述从共享秘密生成OTP。REST API组件310被配置成执行基于REST的消息操作,例如在客户端302和服务器304之间,如这里所描述的。客户端偏好组件312被配置成存储与客户端302的用户322相关联的客户端偏好信息,诸如此处所述的从服务器304接收的共享秘密。
[0057] 服务器应用314包括认证组件316、REST API组件318和用户简档组件320。认证组件316被配置成执行服务器侧认证操作,如本文所述诸如生成共享秘密、验证用户ID/密码组合、以及对照共享秘密来验证给定OTP。REST API部件318被配置成执行基于REST的消息操作,例如在服务器304和客户端302之间,如这里所描述的。用户配置文件组件320被配置成存储与客户端302的用户322相关联的用户配置文件信息,诸如在此描述的由认证组件316生成的共享秘密。
[0058] 在一个实施例中,提供了用于利用REST API的应用和服务的两步认证的过程,其中用户322向客户端302的客户端应用306提供用户ID和密码,并且客户端应用306向服务器304的服务器应用314发送用户ID和密码。响应于接收到用户ID和密码,服务器应用314验证用户ID和密码。在成功验证用户ID和密码之后,服务器应用314确定是否要将用户322从一步认证升级到两步认证。如果用户322不从一步认证升级到两步认证,则服务器304在客户端302和服务器304之间建立具有对客户端302的API操作的完全许可/访问权的经认证的会话。如果用户322要从一步认证升级到两步认证,则服务器304在客户端302和服务器304之间建立具有关于客户端302的许可API操作的有限许可的经认证的会话。服务器304向客户端302发送包括由认证组件316生成的共享秘密的登录响应。客户端302接收包括共享秘密的登录响应,并且基于共享秘密生成一次性密码(OTP)。客户端302向服务器304发送包括OTP的API请求,指示共享秘密将被设置到与用户322相关联的用户简档中。服务器304接收包括OTP的请求,并对照共享秘密来验证OTP。如果服务器304成功地对照共享秘密验证OTP,则服务器304继续服务器304和客户端302之间的经认证的会话,其中客户端302被授予对API操作的完全许可/访问权。服务器304将共享秘密存储在用户简档内,使得客户端应用
306的后续登录需要用户ID、密码和基于共享秘密生成的当前OTP。
[0059] 参考图4,该图描绘了根据说明性实施例的用于两步认证的自动升级的示例过程的消息流。在一个或多个实施例中,消息流400可在图3的客户端应用程序306和服务器应用程序314中实现。
[0060] 在402中,客户端302从用户322接收用户ID和密码。在404中,客户端302将用户ID和密码发送到服务器304。在406中,服务器304通过验证用户ID和密码来使用第一认证因素认证用户322。如果用户322被指定为需要从一步认证升级到两步认证,则在408中,服务器304生成共享秘密并建立与客户端302的经认证的会话。在特定实施例中,经认证的会话具有对客户端302的API操作的有限许可/访问权。在410中,服务器304使用经认证的会话向客户端302发送会话专用数据和共享秘密。在412中,客户端302基于共享秘密生成一次性密码(OTP)。在414中,客户端302将基于共享秘密生成的OTP发送到服务器304。
[0061] 在416中,服务器304对照共享秘密来验证OTP。如果OTP通过验证,则在418中,服务器304将共享秘密存储在与用户322相关联的用户简档中。在420中,服务器304向客户端302发送认证响应以继续经认证的会话,其中客户端302具有对API操作的完全许可/访问权以接收对由服务器304或另一服务器提供的应用和/或服务的访问。在422中,客户端302将共享秘密存储在客户端偏好组件312中。消息流400在此之后结束。在该实施例中,来自用户322的后续登录要求用户322提供用户ID、密码和基于共享秘密生成的当前OTP,以便被服务器304认证以获得对由服务器提供的应用和服务的访问。
[0062] 参考图5,该图描绘了根据说明性实施例的用于两步认证的自动升级的示例客户端侧过程的流程图。在一个或多个实施例中,过程500可以在图3中的客户端应用306中实现。在502中,客户端应用306提示用户322输入用户ID和密码。在504中,客户端应用306从用户322接收用户ID和密码。在506中,客户端应用306将用户ID和密码发送到服务器304。
[0063] 如果用户322被指定为需要从一步认证升级到两步认证,则服务器304生成共享秘密。在508中,客户端302与服务器304建立经认证的会话。在特定实施例中,第一经认证的会话具有对客户端302的API操作的有限许可/访问权。在510中,客户端302使用经认证的会话从服务器304接收包括共享秘密的登录响应。
[0064] 在512,客户端302基于从服务器304接收的共享秘密生成一次性密码(OTP)。在514中,客户端302将基于共享秘密生成的OTP发送到服务器304。服务器304对照共享秘密来验证OTP。如果OTP通过验证,则服务器304将共享秘密存储在与用户322相关联的用户简档中。在516,客户端302从服务器304接收认证响应。在518,客户端302确定认证响应是否指示用户322被认证。如果用户322未被认证,则过程500结束。如果用户322被认证,则在520,客户端302继续与服务器304经认证的会话,其中,向客户端302授予对API操作的完全许可/访问权,以接收对由服务器304或另一服务器提供的应用和/或服务的访问权。在522,客户端302将共享秘密存储在客户端偏好组件312中。此后,客户端应用306结束过程500。在该实施例中,来自用户322的后续登录要求用户322提供用户ID、密码和基于共享秘密生成的当前OTP,以便被服务器304认证以获得对由服务器提供的应用和服务的访问。
[0065] 参考图6,该图描绘了根据说明性实施例的用于两步认证的自动升级的示例服务器侧过程的流程图。在一个或多个实施例中,过程600可以在图3中的服务器应用314中实现。在602中,服务器304的服务器应用314从客户端302接收由用户322提供的用户ID和密码。
[0066] 在604中,服务器应用314通过验证用户ID和密码来使用第一认证因素认证用户322。在606中,服务器应用314建立与客户端302的经认证的会话。在特定实施例中,经认证的会话具有对客户端302的API操作的有限许可/访问权。在608中,服务器应用314确定是否需要将用户322从一个因素认证升级到两个因素认证。如果用户322被指定为需要从一个因素认证升级到两个因素认证,则在610中,服务器应用314生成共享秘密。在612中,服务器应用314使用经认证的会话向客户端302发送包括共享秘密的登录响应。响应于接收到共享秘密,客户端302基于共享秘密生成一次性密码(OTP),并将基于共享秘密生成的OTP发送到服务器304。
[0067] 在614,服务器应用314从客户端302接收OTP。在616中,服务器应用314对照共享秘密来验证OTP。如果OTP通过验证,则在618中,服务器应用314将共享秘密存储在与用户322相关联的用户简档中。在620,服务器304继续经认证的会话,在该会话中,授予客户端302对API操作的完全许可/访问权,以接收对由服务器304或另一服务器提供的应用和/或服务的访问权。在622中,服务器应用314向客户端302发送认证响应,指示继续经认证的会话。在该实施例中,来自用户322的后续登录要求用户322提供用户ID、密码和基于共享秘密生成的当前OTP,以便被服务器304认证以获得对由服务器304或另一服务器提供的应用和/或服务的访问。如果在608中,服务器应用314确定不需要双因素认证,则在622中,服务器应用314向客户端302发送认证响应,指示经认证的会话可以由客户端302使用。在用户322没有升级到双因素认证的情况下,用户322的随后登录仅要求提供用户ID和密码。此后,服务器应用314结束过程600。
[0068] 因此,在说明性实施例中提供了计算机实现的方法、系统或装置以及计算机程序产品,以使得能够将用户从一步认证自动升级到两步认证以及其它相关特征、功能或操作。在关于一种类型的设备描述实施例或其一部分的情况下,计算机实现的方法、系统或装置、计算机程序产品或其一部分被适配或配置成与该类型的设备的适当且可比较的表现一起使用。
[0069] 在实施例被描述为在应用中实现的情况下,在软件即服务(SaaS)模型中的应用交付可以设想在说明性实施例的范围内。在SaaS模型中,通过在云基础设施中执行应用,向用户提供实现实施例的应用的能力。用户可以通过诸如web浏览器(例如,基于web的电子邮件)或其他轻量客户端应用之类的瘦客户端接口使用各种客户端设备来访问应用。用户不管理或控制底层云基础设施,包括网络、服务器、操作系统或云基础设施的存储。在一些情况下,用户甚至可能不管理或控制SaaS应用的能力。在一些其它情况下,应用程序的SaaS实施方案可允许有限的用户特定应用程序配置设定的可能例外。
[0070] 本发明可以是任何可能的技术细节集成平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
[0071] 计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号
[0072] 本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0073] 用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如"C"编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0074] 在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
[0075] 这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
[0076] 计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0077] 附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈