A login session server is configured to establish a communications session between an application that runs natively on a device and a service that is secured by a web services gateway by supporting a temporary login session socket between the device and the login session server and by passing a login session token to the device over the temporary login session socket. The temporary login session socket can be used to verify that the application that runs natively on the device is authorized to use the services of the service provider. Related systems, devices, methods and computer program products are disclosed.
|
14. A login session server for establishing a communications session between an application that runs natively on a computing device and a service that is secured by a web services gateway, the login session server comprising:
a hardware processor, and
a computer readable medium, the computer readable medium storing computer readable program code, the computer readable program code when executed by the processor configures the processor to:
establish a temporary login session socket with the computing device in response to a request by the computing device;
establish a temporary bidirectional secure socket with the computing device in response to the request;
send a login session token to the computing device over the temporary bidirectional secure socket, the login session token indicating that the application is verified to access the service that is secured by the web services gateway;
close the temporary login session socket in response to a receipt of the login session token that indicates that the application is verified to access the service by the computing device; and
communicate the login session token to the web services gateway.
12. A communications method for establishing a communications session between an application that runs natively on a computing device and a service provided by a web services gateway, the communications method comprising:
establishing, by a login session server, a temporary login session socket with the computing device in response to a request by the computing device;
establishing, by the login session server, a temporary bidirectional secure socket with the computing device in response to the request by the computing device;
sending, by the login session server, a login session token to the computing device via the temporary bidirectional secure socket, the login session token indicating that the application that runs natively on the computing device is verified to access the service that is secured by the web services gateway, the login session token sent over the temporary login session socket in response to a verification that the application is authorized to access the service;
closing, by the login session server, the temporary login session socket in response to a receipt of the login session token that indicates that the application that runs natively on the computing device is verified to access the service by the computing device; and
communicating, by the login session server, the login session token to the web services gateway.
1. A communications method for establishing a communications session between an application that runs natively on a computing device and a service provided by a web services gateway, the communications method comprising:
supporting, by the computing device, a temporary login session socket between the computing device and a login session server;
receiving, by the computing device, a login session token from the login session server, the login session token indicating that the application that runs natively on the computing device is verified to access the service provided by the web services gateway;
accepting, by the computing device, a userid and a password for the service;
launching, by the computing device, a web browser;
communicating, from the computing device to the web services gateway via the web browser, the userid and the password for the service along with the login session token that indicates that the application that runs natively on the computing device is verified to access the service; and
establishing, by the computing device, the communications session between the application and the service in response to a verification by the web services gateway of the userid and the password, so that the application that runs natively on the computing device is allowed to access the service from the web services gateway utilizing the web browser.
2. The communications method according to
establishing a temporary bidirectional secure socket between the computing device and the login session server; and
receiving the login session token that indicates that the application that runs natively on the computing device is verified to access the service, from the login session server at the computing device over the temporary bidirectional secure socket.
3. The communications method according to
4. The communications method according to
presenting a user interface that accepts an input of the userid and the password for the service; and
accepting the userid and the password via the user interface.
5. The communications method according to
6. The communications method according to
7. The communications method according to
establishing a bidirectional link between the computing device and the service; and
allowing the application to access the service over the bidirectional link.
8. The communications method according to
combining the userid and the password for the service and the login session token to produce an application-specific login for the computing device; and
establishing the communications session between the application and the service in response to the verification by the web services gateway of the application-specific login.
9. The communications method according to
communicating the userid and the password along with the login session token from the computing device to a security server; and
communicating the userid and the password along with the login session token from the security server to the web services gateway.
10. The communications method according to
11. The communications method according to
sending the userid and the password along with the login session token from the login session server to a security server; and
sending the userid and the password along with the login session token from the security server to the web services gateway.
13. The communications method according to
communicating the login session token from the login session server to a security server; and
communicating the login session token from the security server to the web services gateway.
15. The login session server according to
|
The World Wide Web is being increasingly used for personal, commercial and other communications. Typically, a user device, such as a desktop, notebook or netbook computer, a smartphone or an embedded device, accesses the World Wide Web using a browser on the device that communicates with a web server. The web server may be hosted by an enterprise, such as a retailer, financial institution, media enterprise, social networking enterprise, etc. The web server may run applications that are supported by the hosting enterprise.
In running a web server application by a browser on a device, it is often desirable to access services of a third party service provider. These services may include telephony-based services and/or Internet protocol-based services, such as Short Message Services (SMS), Multimedia Messaging Services (MMS), IP Multimedia Services (IMS), email text-to-speech conversion, voice recognition, chat, retrieval of contacts, retrieval of database records, etc. In these cases, a secure connection may be pre-established between the web server and a Web Services Gateway (WSG) of the service provider. These secure connections can allow the web server to register the device with the service provider, so that the device can then log on to the service provider using its browser, and use the third party services provided by the service provider as part of the application.
A new phenomenon has recently emerged in the application environment: applications that run natively on a device rather than running through a host web server. These applications are commonly referred to as “apps”. For example, hundreds of thousands of applications have been written by large numbers of application developers to run natively on the iPhone® device. These applications may be compiled applications that run natively on the device, rather than running on a web server and interacting with the device using its browser. The proliferation of applications has made it possible for developers with limited resources to develop specialized applications that can run natively on a device without the need for the overhead of a web server.
Unfortunately, since these natively run applications need not use a web server, it has been difficult for service providers to be able to make their services available to these natively run applications. Thus, although these natively run applications could benefit from using service providers and the service providers could benefit from providing services to these natively run applications, it has been difficult for the service providers to support these natively run applications.
Various embodiments described herein can provide methods for establishing a communications session between an application that runs natively on a device and a service that is secured by a web services gateway. In some embodiments, the device supports a temporary login session socket between the device and a login session server. A login session token is received at the device from the login session server. A userid and a password for the service is accepted from a user at the device. The userid and password along with the login session token are communicated from the device to the web services gateway. The communications session between the application that runs natively on the device and the service that is secured by the web services gateway is then established in response to verification by the web services gateway of the userid, the password and the login session token. In some embodiments, prior to communicating the userid and password along with the login session token from the device to the web services gateway, the userid and password along with the login session token are communicated from the login session server to the web services gateway, so that they can be verified when communicated from the device. Accordingly, applications that run natively on a device can use the services of the service provider even though an enterprise web server does not provide an application host that is preregistered with the service provider.
In some embodiments, the temporary login session socket is provided by a temporary bidirectional secure socket between the device and the login session server, and the login session token is received over the temporary bidirectional secure socket. Moreover, the temporary login session socket, such as the temporary bidirectional secure socket, may be closed in response to receiving the login session token at the device from the login session server.
In other embodiments, the userid and password for the service are accepted at the device by presenting at the device a user interface that identifies both the service and the application and that accepts input of the userid and password. The user interface accepts the userid and password that are input to the user interface. Since the user interface identifies both the service and the application, the user of the user device may be aware that the user is logging on to a third party service that will be used by the application that runs natively on the device.
In still other embodiments, the userid and password along with the login session token are communicated from the device to the web services gateway by launching a browser at the device and communicating the userid and the password along with the login session token from the device to the web services gateway using the browser. The browser is then closed in response to receipt of the userid and the password along with the login session token by the web services gateway. Direct bidirectional communications may then take place between the application program that runs natively on the device and the web services gateway.
In still other embodiments, the communications session between the application that runs natively on the device and the service that is secured by the web service gateway is established by establishing a bidirectional link between the device and the service in response to verification by the web services gateway of the userid, the password and the login session token. The application that runs natively on the device is then allowed to access the service that is secured by the web services gateway over the bidirectional link between the device and the service.
The userid, the password and the login session token may be communicated from the device to the web services gateway by combining the userid, the password and the login session token to produce an application-specific login for the device, which is communicated from the device to the web services gateway. Communications may be established between the application that runs natively on the device and the service that is secured by the web services gateway in response to verification by the web services gateway of the application-specific login.
In some embodiments, communicating the userid and password along with the login session token from the device to the web services gateway and/or from the login session server to the web services gateway may be direct. In other embodiments, these communications may take place indirectly via a security server that lies outside the firewall of the service provider and web services gateway. Thus, in some embodiments, the userid and password along with the login session token may be communicated from the device to the security server and then the userid and password along with the login session token may be communicated from the security server to the web services gateway. Prior to this communication taking place, the userid and password along with the login session token may also be communicated from the login session server to the web services gateway via the security server, as well.
It will be understood that various embodiments have been described above in connection with methods that are performed by the device. Complementary methods may also be performed by the login session server. Moreover, although various embodiments have been described above in connection with methods, analogous devices that include an application program that runs natively thereon, analogous login session servers and analogous computer program products for devices and servers may also be provided according to other embodiments.
Other methods, systems, and/or computer program products according to embodiments of the invention will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
Various embodiments now will be described more fully hereinafter with reference to the accompanying drawings, in which illustrative embodiments are shown. However, many different forms may be provided and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of various embodiments to those skilled in the art.
It will be understood that when an element is referred to as being “coupled”, “connected” or “responsive” (and variants thereof) to another element, it can be directly coupled, connected or responsive to the other element or intervening elements may also be present. In contrast, when an element is referred to as being “directly coupled”, “directly connected” or “directly responsive” (and variants thereof) to another element, there are no intervening elements present. Like numbers refer to like elements throughout. As used herein the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated by “/”.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes” and/or “including” when used herein, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art in light of the present disclosure, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The present invention is described in part below with reference to block diagrams and flowcharts of methods, systems and computer program products according to various embodiments. It will be understood that a block of the block diagrams or flowcharts, and combinations of blocks in the block diagrams or flowcharts, may be implemented at least in part by computer program instructions. These computer program instructions may be provided to one or more enterprise, application, personal, pervasive and/or embedded computer systems, such that the instructions, which execute via the computer system(s) create means, modules, devices and/or methods for implementing the functions/acts specified in the block diagram block or blocks. A computer program according to embodiments of the invention comprises a tangible, non-transitory computer usable storage medium having computer-readable program code embodied therein. Combinations of general purpose computer systems and/or special purpose hardware also may be used in other embodiments.
These computer program instructions may also be stored in memory of the computer system(s) that can direct the computer system(s) to function in a particular manner, such that the instructions stored in the memory produce an article of manufacture including computer-readable program code which implements the functions/acts specified in block or blocks. The computer program instructions may also be loaded into the computer system(s) to cause a series of operational steps to be performed by the computer system(s) to produce a computer implemented process such that the instructions which execute on the processor provide steps for implementing the functions/acts specified in the block or blocks. Accordingly, a given block or blocks of the block diagrams and/or flowcharts provides support for methods, computer program products and/or systems (structural and/or means-plus-function).
It should also be noted that in some alternate implementations, the functions/acts noted in the flowcharts may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Finally, the functionality of one or more blocks may be separated and/or combined with that of other blocks.
The service provider 130 is accessed by a web services gateway 140 that is protected behind a firewall 150. The web services gateway 140 is a gateway that provides a single point of control, access and validation of web services requests and allows the web service provider 130 to control which services are available to different groups of web service users. Web services gateways are currently marketed by IBM® as the IBM Web Services Gateway, by Alcatel-Lucent as the OmniAccess® 8550 Web Services Gateway, and by others.
The device 110 may be a smartphone, such as an Apple® iPhone or a BlackBerry® device, but may include other smartphones, Internet appliances, set top boxes, home security systems, home management devices, vehicle electronics and/or other enterprise, application, personal, pervasive and/or embedded computing systems that are used by a user to access web services. These devices 110 may include a browser therein that can access an application at a web server. However, these devices 110 may also run an application 120 natively on the device 110. In fact, as noted above, hundreds of thousands of specialized applications have now been written for smartphone devices, to be downloaded to the devices in compiled form and run natively on these devices.
When a device accesses a web server using a browser to run an application on the web server, the web server may be responsible for obtaining from the service provider 130 the services that may be used to run the application on the device 110. However, when the application 120 runs natively on the device 110, the device 110 need not interact with a web server to obtain the necessary services from the service provider 130. Accordingly, it has been difficult for native applications 120 to use the services of the service provider 130, which may decrease the functionality or usability of a given native application 120, and may also decrease revenue opportunities for the service providers 130.
Various embodiments described herein provide a login session server 160 that can facilitate establishing of a communications session 170 between an application 120 that runs natively on the device 110 and a service of a service provider 130 that is secured by a web services gateway 140. More specifically, the login session server 160 establishes a temporary login session socket 162 with the device 110, and provides a login session token 164 to the device 110. The login session server 160 also communicates the userid and password of the user device along with the login session token 164 to the web services gateway 140 via connection 142. The login session server 160 may then close the temporary login session socket 162. The device 110 may then communicate with the web services gateway 140 using the userid, password and login session token 164. Thus, a communications session 170 may proceed between the service provider 130 and the application 120, even though the application 120 does not communicate with the service provider 130 via a web server for the application.
Continuing with the description of
Referring to
Referring to
Continuing with the description of
The use of a login server 160 and a login session number 960, according to some embodiments, will be further described in connection with
Referring now to
Accordingly, the login session server 160 may only issue a login session number 962 to the device 110 upon verification that the application 120 has contracted with the service provider 130 to provide the service, and that the amount of service does not exceed preexisting agreed-upon limits. If this is the case, a temporary login session number 962 is issued by the login session server 160 and provided to the device 110. When the device 110 logs on at the user interface 1150, the device provides the userid, password and the login session number 962 to the application ID database 142.
In some embodiments, the token 162 or number 962, along with the userid and password, may be conveyed to the web services gateway 140 and/or its application ID database 142 by the device 110 opening up a browser and accessing the application ID database via the browser. Accordingly, in
Referring now to
Finally, referring to
Accordingly, various embodiments described herein can allow a communications session to be established between an application 120 that runs natively on a device 110 and a service provider 130 that is secured by a web services gateway 130, even though the application 120 that runs natively does not run through an application server 140 on an enterprise web server 742.
It will be understood that various embodiments herein have described a login session server 160 for a given service provider 130. However, a login session server 160 may also serve a plurality of different service providers, and act as a clearinghouse to allow multiple natively run applications 120 on multiple devices 110 to access multiple services of multiple service providers without the need for the application to be associated with an application server 140 on an enterprise web server 742.
Many different embodiments have been disclosed herein, in connection with the above description and the drawings. It will be understood that it would be unduly repetitious and obfuscating to literally describe and illustrate every combination and subcombination of these embodiments. Accordingly, the present specification, including the drawings, shall be construed to constitute a complete written description of all combinations and subcombinations of the embodiments described herein, and of the manner and process of making and using them, and shall support claims to any such combination or subcombination.
In the drawings and specification, there have been disclosed embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.
Glasgow, Jay O., Jaskolski, Johannes
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6374359, | Nov 19 1998 | International Business Machines Corporation | Dynamic use and validation of HTTP cookies for authentication |
6763468, | May 11 1999 | Sun Microsystems, Inc. | Method and apparatus for authenticating users |
7478434, | May 31 2000 | International Business Machines Corporation | Authentication and authorization protocol for secure web-based access to a protected resource |
7503065, | Apr 24 2002 | Sprint Spectrum LLC | Method and system for gateway-based authentication |
7516483, | Aug 24 2001 | JPMORGAN CHASE BANK, N A , AS ADMINISTRATIVE AGENT | System and method for accomplishing two-factor user authentication using the internet |
7954141, | Oct 26 2004 | TELECOM ITALIA S P A | Method and system for transparently authenticating a mobile user to access web services |
7966497, | Feb 15 2002 | Qualcomm Incorporation | System and method for acoustic two factor authentication |
7992198, | Apr 13 2007 | Microsoft Technology Licensing, LLC | Unified authentication for web method platforms |
8341270, | Jan 24 2006 | Citrix Systems, Inc | Methods and systems for providing access to a computing environment |
8355407, | Jan 24 2006 | Citrix Systems, Inc | Methods and systems for interacting, via a hypermedium page, with a virtual machine executing in a terminal services session |
8511547, | Dec 22 2005 | MasterCard International Incorporated | Methods and systems for two-factor authentication using contactless chip cards or devices and mobile devices or dedicated personal readers |
8705720, | Feb 08 2007 | ARLINGTON TECHNOLOGIES, LLC | System, method and apparatus for clientless two factor authentication in VoIP networks |
8756660, | Apr 17 2008 | Microsoft Technology Licensing, LLC | Enabling two-factor authentication for terminal services |
8875264, | Oct 05 2010 | CSE CO , LTD | System, method and program for off-line two-factor user authentication |
20090328182, | |||
20110271099, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 13 2010 | GLASGOW, JAY O | AT&T MOBILITY II LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025205 | /0053 | |
Aug 04 2010 | AT&T MOBILITY II LLC | (assignment on the face of the patent) | / | |||
Sep 29 2010 | JASKOLSKI, JOHANNES | AT&T MOBILITY II LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025205 | /0053 |
Date | Maintenance Fee Events |
Mar 08 2017 | ASPN: Payor Number Assigned. |
Jun 18 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 13 2024 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jan 31 2020 | 4 years fee payment window open |
Jul 31 2020 | 6 months grace period start (w surcharge) |
Jan 31 2021 | patent expiry (for year 4) |
Jan 31 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jan 31 2024 | 8 years fee payment window open |
Jul 31 2024 | 6 months grace period start (w surcharge) |
Jan 31 2025 | patent expiry (for year 8) |
Jan 31 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jan 31 2028 | 12 years fee payment window open |
Jul 31 2028 | 6 months grace period start (w surcharge) |
Jan 31 2029 | patent expiry (for year 12) |
Jan 31 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |