Users may have many different accounts for a multitude of applications and services. Examples of applications and services may include social networking services, file sharing services, email services, voice communication services, office productivity services, task tracking services, and still others. A user may have to establish a corresponding username and password to authenticate for each account. This becomes a difficult and inconvenient practice where numerous accounts are involved. Accordingly, users may set weak passwords that are short or otherwise easy to remember, share passwords among multiple accounts, use third-party password managers, or engage in other practices that might be regarded as insecure. Also, if an application requires multi-factor authentication, a user needs to provide each factor for each application, which can be frustrating.
The concept of identity federation arose as a solution to this problem. Under identity federation, a user establishes an account with a federated identity provider. To this end, the user specifies a single set of security credentials. The federated account is then linked to a multiplicity of applications and services that are provided by other organizations. When the user seeks to access applications and services that are linked to the federated account, the user can simply provide the single username, password, or other credentials of the federated account for authentication. In like manner, an organization such as an enterprise may use a directory service such as ACTIVE DIRECTORY by MICROSOFT CORPORATION in order to provide a single log-in for each of multiple applications and services of the organization.
Despite the availability of identity federation, the end user experience may still be suboptimal. Even assuming that users are able to employ a single federated account for multiple applications and services, the users may be required to enter the federated account credentials separately. For example, suppose that a user logs in with a social networking application provided by a social networking service provider that is also a federated identity provider. Subsequently, the user may want to use a file sharing application that is linked to the federated identity provider. The user may then have to supply the same username and password that was previously entered for the social networking application. Repetitively entering these security credentials for each application and service may frustrate users.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The present disclosure relates to providing a single sign-on experience for users of mobile devices. With a single sign-on experience, a user enters a single set of security credentials for an account and, upon authentication, the user is able to access multiple different applications and services that are linked to that account. Multi-factor authentication can also be employed where the user is required to provide a combination of knowledge, possession, or biometric authentication factors. As contemplated herein, the term “single sign-on” can include scenarios in which a user is required to re-enter security credentials due to session timeouts, inactivity periods, suspicious activities, or other events that could cause authentication of the user to be doubted.
In the context of a web browser, a single sign-on experience can be enabled by way of cookies. In response to a user logging in with a federated identity provider, a cookie can be stored on the user's device that contains a token indicating authentication. When the user later accesses another network site that supports authentication by way of the federated identity provider, the cookie is presented and the token can be exchanged for a site-specific token. Consequently, the user does not have to log in again to access the network site.
However, the single sign-on design paradigm from the browser context does not function in the context of mobile applications. Although mobile applications can invoke web views, mobile applications are often containerized. For example, the cookies of a containerized application cannot be used by other containerized applications. Even assuming that a user logs into a federated account by way of a first mobile application, the cookies and application tokens that indicate successful authentication are not made available to a second mobile application because they can have separate containers. As will be described, various implementations of the present disclosure facilitate single sign-on within mobile applications and other applications that embody this container limitation. Moreover, according to the present disclosure, the requirement to use a particular software development kit (SDK) for each application in order to implement single sign-on can be rendered unnecessary.
Specifically, in the present disclosure, examples are disclosed that enable a single sign-on experience for mobile applications that are not necessarily subject to management by a management service. Once a user signs in by way of a particular authentication application, that single sign-on can be leveraged by multiple client applications to authenticate with multiple different service providers, even if the client applications are published by different publishers or developers.
With reference to
The identity provider 206 and the service providers 209 can include, for example, a server computer or any other system providing computing capabilities. Alternatively, the identity provider 206 and the service providers 209 can employ multiple computing devices that can be arranged, for example, in one or more server banks, computer banks, or other arrangements. The computing devices can be located in a single installation or can be distributed among many different geographical locations. For example, the identity provider 206 and the service providers 209 can include multiple computing devices that together form a hosted computing resource, a grid computing resource, or any other distributed computing arrangement. In some cases, the identity provider 206 and the service providers 209 can operate as at least a portion of an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources can vary over time. The identity provider 206 and the service providers 209 can also include or be operated as one or more virtualized computer instances. Generally, the identity provider 206 and the service providers 209 can be operated in accordance with particular security protocols such that they are considered trusted computing environments.
The identity provider 206 can provide a federated identity service on behalf of the service providers 209. To this end, the identity provider 206 can be in communication with an identity data store 215 that stores information associated with user identities. This information can include, for example, usernames, security credentials, biometric identity information, authorized client applications, unauthorized client applications, authorized client devices 203, unauthorized client devices 203, and so on. As will be described, users are able to authenticate by way of the identity provider 206 in order to access services provided by the multiple service providers 209.
Each of the service providers 209 provides a corresponding service for client applications. The services can include, for example, social networking services, email services, voice communication services, enterprise information management services, productivity services, game services, and so on. In some examples, one or more of the service providers 209 can authenticate users separately from the identity provider 206, thereby giving users the option to log in either with the identity provider 206 or with the service provider 209 directly.
The service providers 209 and the identity provider 206 can communicate with the client device 203 over the network 212 by way of hypertext transfer protocol (HTTP), simple object access protocol (SOAP), representational state transfer (REST), and/or other protocols.
The client device 203 can represent a processor-based system, such as a computer system, that can be embodied in the form of a desktop computer, a laptop computer, a personal digital assistant, a cellular telephone, a smartphone, a set-top box, a music player, a web pad, a tablet computer system, a game console, an electronic book reader, or any other device with like capability. The client device 203 can include a display 218 that comprises, for example, one or more devices such as liquid crystal display (LCD) displays or other types of display devices. The client device 203 can also be equipped with networking capability or networking interfaces, including a localized networking or communication capability such as an NFC capability, RFID read and/or write capability, a microphone and/or speaker, or other localized communication capability.
The client device 203 can execute various applications, such as an authentication application 221, a plurality of client applications 224a . . . 224N, and other applications, services, or processes. The authentication application 221 can receive security credentials from a user and to authenticate with the identity provider 206. Upon authentication with the identity provider 206, the authentication application 221 is able to request identity assertions from the identity provider 206 in order to authenticate the client applications 224 with the respective service providers 209 as will be described.
An identity assertion in security assertion markup language (SAML), for example, contains a packet of security information that service providers 209 use to make access control decisions. SAML supports three types of statements: authentication statements, attribute statements, and authorization decision statements. Authentication statements assert to the service provider 209 that the client device 203 authenticated with the identity provider 206 at a particular time using a particular method of authentication. An attribute statement asserts that a client device 203 is associated with certain attributes. An authorization decision statement asserts that a client application 224 is permitted to perform a certain action relative to a resource offered by the service provider 209. Extensible access control markup language (XACML) and/or other languages can be employed.
The client applications 224 correspond to a variety of applications that are employed to access services provided by the service providers 209. The client applications 224 can include a web view component, whereby the client applications 224 interact with the service providers 209 to obtain network content by way of hypertext transfer protocol (HTTP) requests and responses. However, unlike a browser that is used to access various web-based applications, one or more of the client applications 224 can be containerized applications. With containerized applications, cookies set through one client application 224 cannot be accessed by another client application 224. The client applications 224 and the authentication application 221 can individually render a respective user interface 227 upon the display 218.
Turning now to
At step 303, the client application 224 sends an access request to the service provider 209. At step 306, the service provider 209 redirects the client application 224 to request an identity assertion from the identity provider 206. At step 307, the request is redirected by the identity provider 206 to the authentication application 221. In various scenarios, the identity provider 206 knows about the authentication application 221, but the service provider 209 does not know about the authentication application 221. At step 309, the request for the identity assertion is redirected to the authentication application 221.
At step 312, the authentication application 221 renders a user interface 227 upon the display 228. The user interface 227 requests one or more security credentials from a user. At step 315, the authentication application 221 receives the security credentials from the user. Upon receipt of the security credentials, the authentication application 221 requests the identity assertion from the identity provider 206 at step 318. In subsequent accesses by client applications 224, the authentication application 221 can simply use a long-lived stored credential rather than user-provided credentials in order to authenticate with the identity provider 206.
At step 321, the identity provider 206 authenticates the authentication application 221 either using user-provided security credentials or a registration credential, such as a long-lived token or password. At step 324, the identity provider 206 generates the requested identity assertion assuming that the client application 224 is to be permitted access to the service provider 209 using the federated identity. At step 327, the identity provider 206 sends the identity assertion to the authentication application 221. At step 330, the authentication application 221 provides the identity assertion to the client application 224.
At step 333, the client application 224 sends the identity assertion to the service provider 209. The service provider 209 then verifies the identity assertion at step 336. At step 339, the service provider 209 sets a session cookie with the client application 224, where the session cookie includes a session token that permits the client application 224 to access resources provided by the service provider 209. Subsequently, the client application 224 can simply present the session token in order to access the protected resources without requiring an explicit log in from a user. Further, other client applications 224 can log in to service providers 209 in the manner described by
Turning now to
Beginning with step 403, the authentication application 221 receives a request for an identity assertion. For example, the user may have requested to access protected functionality of the client application 224. The request can be received by way of a local uniform resource locator (URL), which can specify callback information for the client application 224. The callback information specifies how the authentication application 221 can transfer the identity assertion back to the client application 224.
At step 404, the authentication application 221 determines whether the user is already authenticated. If the user is not already authenticated, the authentication application 221 moves to step 406. At step 406, the authentication application 221 can render a user interface 227 on the display 218 that can elicit one or more security credentials from a user. This can include, for example, a username, a password, a one-time password, biometric identification, and so on. At step 409, the authentication application 221 receives the security credentials by way of the user interface 227.
At step 412, the authentication application 221 authenticates with the identity provider 206 using the security credentials. If incorrect security credentials are provided, the identity provider 206 can return an error to the authentication application 221, after which the security credentials can be requested again or the process can terminate.
If instead, in step 404, the authentication application 221 determines that the user is already authenticated, the authentication application 221 transitions directly from step 404 to step 412 and can provide a token to confirm the previous authentication. In some cases, the authentication application 221 can be issued a long-lived token by the identity provider 206 to avoid having to provide the security credentials. That is to say, during subsequent authentications, the authentication application 221 can simply provide the long-lived token to identify itself to the identity provider 206.
At step 415, the authentication application 221 requests the identity assertion from the identity provider 206. The request can include an identification of the client application 224 and/or the service provider 209 for which authentication of the client application 224 is requested. At step 418, assuming that the client application 224 is to be provided with access to the service provider 209, the authentication application 221 receives the identity assertion from the identity provider 206. If the client application 224 is not to be provided access, the authentication application 221 can receive an error instead, which can be presented to a user through a user interface 227.
At step 421, the authentication application 221 returns the identity assertion. For example, the authentication application 221 can call a local URL with a predefined scheme name corresponding to the client application 224. This local URL can be determined in some cases from callback information included in the local URL that invoked the authentication application 221. The identity assertion can correspond to security assertion markup language (SAML). Thereafter, the process can proceed to completion.
Continuing to
Beginning with step 503, the identity provider 206 receives an authentication request from an authentication application 221 executed in a client device 203 by way of the network 212. The authentication request can include one or more user-specified security credentials or can include a registration credential previously issued to the authentication application 221, for instance, a token or password. At step 506, the identity provider 206 verifies the authentication request based at least in part on data from the identity data store 215. For example, the identity provider 206 can compute a hash of a password supplied by a user, and then compare the hashed password with a stored hashed password in the identity data store 215. Alternatively, the identity provider 206 can verify that a registration token is authentic. If authentication of the authentication application 221 is not successful, the identity provider 206 can return an error to the authentication application 221. If authentication of the authentication application 221 is successful, the identity provider 206 continues to step 509.
At step 509, the identity provider 206 receives an identity assertion request from the authentication application 221. In some cases, the authentication request of the authentication application 221 can be embodied in the identity assertion request. The identity assertion request can include an identification of the client application 224 and/or the service provider 209 for which the client application 224 has requested access. Alternatively, the identity assertion request can be received from the client application 224 directly, but subsequent communications are channeled through the authentication application 221 as will be described. At step 512, the identity provider 206 verifies the identity assertion request. For example, the identity provider 206 can confirm that it is permitted to provide access by the client application 224 to the service provider 209 based at least in part on stored data from the identity data store 215.
At step 515, the identity provider 206 generates the identity assertion, which can include an authentication token. At step 518, the identity provider 206 returns the identity assertion to the authentication application 221. Thereafter, the process can proceed to completion.
Referring next to
Beginning with step 603, the service provider 209 receives an access request from a client application 224. The service provider 209 then correlates this access request to the use of the identity provider 206 for authentication. At step 606, the service provider 209 sends a redirection response to the client application 224. This can include a hypertext transfer protocol (HTTP) redirection response with status code 302. The redirection response can redirect the client application 224 to the identity provider 206. The client application 224 can then communicate with the identity provider 206 by way of the authentication application 221. The redirection response can include security assertion markup language (SAML) that requests an identity assertion.
At step 609, the service provider 209 receives the identity assertion from the client application 224. At step 612, the service provider 209 verifies the identity assertion. For example, the identity assertion can include an authentication token generated by the identity provider 206, and the service provider 209 can confirm that the authentication token is authentic.
At step 615, the service provider 209 generates a session token. At step 618, the service provider 209 can return an HTTP response that sets a session cookie including the session token with the client application 224. The cookie can be stored by the client application 224 for later use. At step 621, the service provider 209 provides service access to the client application 224 based at least in part on the client application 224 presenting the session token, encoded as one or more parameters of a query string of a uniform resource locator (URL) or encoded within a session cookie. Thereafter, the process can proceed to completion.
Referring next to
Beginning with step 703, the client application 224 sends an access request to a service provider 209. For example, a user may have launched the client application 224 or may have otherwise requested to access protected functionality for which the user has to be logged in with the service provider 209. The protected functionality can include local functionality and/or functionality enabled by network content provided by the service provider 209. At step 706, the client application 224 receives a redirection response from the service provider 209 that redirects the client application 224 to the identity provider 206. For example, the redirection response can correspond to a hypertext transfer protocol (HTTP) response having status code 302. The redirection response can request an identity assertion from the identity provider 206 by a request expressed in security assertion markup language (SAML). The identity provider 206 can then redirect the access request to the authentication application 221.
At step 709, the client application 224 is redirected by the identity provider 206 to request the identity assertion from the authentication application 221. For example, the request can be sent by calling a local uniform resource locator (URL) that has a scheme name corresponding to the authentication application 221. The local URL can encode the request in a query string. To illustrate, the local URL can begin with “authapp://,” where “authapp” is the predetermined scheme name that is registered with the client device 203 to correspond to the authentication application 221. In some implementations, a randomized unique identifier can be used instead to enhance security. The local URL can specify callback information, which can include a scheme name corresponding to the client application 224. This scheme name also can correspond to a randomized unique identifier. The callback information can allow the authentication application 221 to call back to the client application 224 in order to return the requested identity assertion.
At step 712, the client application 224 receives the identity assertion from the authentication application 221. For example, the identity assertion can be received through the use of a local URL that encodes the identity assertion. As the local URLs are invoked, some screen flipping can be perceived upon the display 218 in some cases. Screen flipping can result from applications calling one another or when an operating system does not permit background applications. The identity assertion can include an authentication token generated by the identity provider 206. At step 715, the client application 224 authenticates with the service provider 209 using the identity assertion. In one scenario, the identity provider 206 can redirect the client application 224 to the service provider 209 to provide the identity assertion.
At step 718, the client application 224 can receive a session token from the service provider 209. The session token can correspond to an OAuth token. For example, the session token can be provided within a cookie, which the client application 224 can store in its container or data store for later retrieval. At step 721, the client application 224 can subsequently authenticate with the service provider 209 using the session token during the course of a session. During the session, the client application 224 is able to request protected network content from the service provider 209 or perform other actions that might require user authentication. Thereafter, the process can proceed to completion.
The flowcharts of
Although the flowcharts and sequence diagram show a specific order of execution, it is understood that the order of execution can differ from that which is shown. For example, the order of execution of two or more elements can be switched relative to the order shown. Also, two or more elements shown in succession can be executed concurrently or with partial concurrence. Further, in some examples, one or more of the elements shown in the flowcharts can be skipped or omitted.
The client device 203, the identity provider 206, the service providers 209, or other components described herein can include at least one processing circuit. Such a processing circuit can include, for example, one or more processors and one or more storage devices that are coupled to a local interface. The local interface can include, for example, a data bus with an accompanying address/control bus or any other suitable bus structure.
The one or more storage devices for a processing circuit can store data or components that are executable by the one or more processors of the processing circuit. For example, the identity provider 206, the service providers 209, the authentication application 221, the client applications 224, and/or other components can be stored in one or more storage devices and be executable by one or more processors. Also, a data store, such as the data store 121 can be stored in the one or more storage devices.
The identity provider 206, the service providers 209, the authentication application 221, the client applications 224, and/or other components described herein can be embodied in the form of hardware, as software components that are executable by hardware, or as a combination of software and hardware. If embodied as hardware, the components described herein can be implemented as a circuit or state machine that employs any suitable hardware technology. The hardware technology can include, for example, one or more microprocessors, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, programmable logic devices (e.g., field-programmable gate array (FPGAs), and complex programmable logic devices (CPLDs)).
Also, one or more or more of the components described herein that include software or program instructions can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, a processor in a computer system or other system. The computer-readable medium can contain, store, and/or maintain the software or program instructions for use by or in connection with the instruction execution system.
A computer-readable medium can include a physical media, such as, magnetic, optical, semiconductor, and/or other suitable media. Examples of a suitable computer-readable media include, but are not limited to, solid-state drives, magnetic drives, or flash memory. Further, any logic or component described herein can be implemented and structured in a variety of ways. For example, one or more components described can be implemented as modules or components of a single application. Further, one or more components described herein can be executed in one computing device or by using multiple computing devices.
It is emphasized that the above-described examples of the present disclosure are merely examples of implementations to set forth for a clear understanding of the principles of the disclosure. Many variations and modifications can be made to the above-described examples without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure.
This application is a continuation of, and claims priority to, co-pending U.S. patent application entitled “SINGLE SIGN-ON FOR UNMANAGED MOBILE DEVICES” and filed Dec. 31, 2018 and assigned U.S. patent application Ser. No. 16/236,802 which is a continuation of U.S. patent application entitled “SINGLE SIGN-ON FOR UNMANAGED MOBILE DEVICES” and filed Jun. 15, 2015 and assigned U.S. patent application Ser. No. 14/739,972, which is related to U.S. patent application entitled “SINGLE SIGN-ON FOR MANAGED MOBILE DEVICES” and filed Jun. 15, 2015 and assigned U.S. patent application Ser. No. 14/739,975, U.S. patent application entitled “SINGLE SIGN-ON FOR MANAGED MOBILE DEVICES” and filed Jun. 15, 2015 and assigned U.S. patent application Ser. No. 14/739,980, and U.S. patent application entitled “SINGLE SIGN-ON FOR UNMANAGED MOBILE DEVICES” and filed Jun. 15, 2015 and assigned U.S. patent application Ser. No. 14/739,983, which are incorporated herein by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
5781909 | Logan et al. | Jul 1998 | A |
5864665 | Tran | Jan 1999 | A |
5930786 | Carino, Jr. et al. | Jul 1999 | A |
7231663 | Medvinsky | Jun 2007 | B2 |
7788711 | Sun et al. | Aug 2010 | B1 |
8145909 | Agrawal et al. | Mar 2012 | B1 |
8510818 | Garg et al. | Aug 2013 | B2 |
8613055 | Tomilson et al. | Dec 2013 | B1 |
8635373 | Supramaniam et al. | Jan 2014 | B1 |
8650622 | Murakami et al. | Feb 2014 | B2 |
8745718 | Dufel et al. | Jun 2014 | B1 |
8762947 | Lee et al. | Jun 2014 | B2 |
8850546 | Field et al. | Sep 2014 | B1 |
8984149 | Martini | Mar 2015 | B1 |
9106642 | Bhimanaik | Aug 2015 | B1 |
9166968 | Hosoda | Oct 2015 | B2 |
9225711 | Sorensen | Dec 2015 | B1 |
9866546 | Brannon | Jan 2018 | B2 |
20020067732 | Roy | Jun 2002 | A1 |
20020078153 | Chung et al. | Jun 2002 | A1 |
20020133725 | Roy et al. | Sep 2002 | A1 |
20030172090 | Asunmaa et al. | Sep 2003 | A1 |
20040128542 | Blakley et al. | Jul 2004 | A1 |
20040225890 | Kang et al. | Nov 2004 | A1 |
20050074126 | Stanko | Apr 2005 | A1 |
20060185021 | Dujari et al. | Aug 2006 | A1 |
20060206707 | Kostal et al. | Sep 2006 | A1 |
20070028095 | Allen et al. | Feb 2007 | A1 |
20070118875 | Chow et al. | May 2007 | A1 |
20070133806 | Asano | Jun 2007 | A1 |
20070157298 | Dingwall et al. | Jul 2007 | A1 |
20080072303 | Syed | Mar 2008 | A1 |
20080115198 | Hsu et al. | May 2008 | A1 |
20080133531 | Baskerville et al. | Jun 2008 | A1 |
20080134049 | Gupta et al. | Jun 2008 | A1 |
20080263653 | Lee et al. | Oct 2008 | A1 |
20080289019 | Lam | Nov 2008 | A1 |
20080301791 | Smith et al. | Dec 2008 | A1 |
20090178129 | Cross et al. | Jul 2009 | A1 |
20100017597 | Chandwani | Jan 2010 | A1 |
20100017809 | Bryant-Rich et al. | Jan 2010 | A1 |
20100082491 | Rosenblatt et al. | Apr 2010 | A1 |
20100100925 | Hinton | Apr 2010 | A1 |
20100138903 | Medvinsky | Jun 2010 | A1 |
20100235918 | Mizrahi et al. | Sep 2010 | A1 |
20100242102 | Cross et al. | Sep 2010 | A1 |
20100318636 | Matsumura et al. | Dec 2010 | A1 |
20110099607 | Cohen | Apr 2011 | A1 |
20110126002 | Fu et al. | May 2011 | A1 |
20110134456 | Tsujimoto | Jun 2011 | A1 |
20110213966 | Fu et al. | Sep 2011 | A1 |
20110231919 | Vangpat et al. | Sep 2011 | A1 |
20110289573 | Seidl et al. | Nov 2011 | A1 |
20120079469 | Gonion | Mar 2012 | A1 |
20120079569 | Mendelovich et al. | Mar 2012 | A1 |
20120144501 | Vangpat et al. | Jun 2012 | A1 |
20120210413 | Akula et al. | Aug 2012 | A1 |
20120245990 | Agarwal | Sep 2012 | A1 |
20120272307 | Buer | Oct 2012 | A1 |
20120290336 | Rosenblatt et al. | Nov 2012 | A1 |
20120291114 | Poliashenko et al. | Nov 2012 | A1 |
20120311663 | Seidl et al. | Dec 2012 | A1 |
20130013704 | Pope et al. | Jan 2013 | A1 |
20130031631 | Waltermann et al. | Jan 2013 | A1 |
20130049928 | Moore et al. | Feb 2013 | A1 |
20130086652 | Kavantzas et al. | Apr 2013 | A1 |
20130086669 | Sondhi et al. | Apr 2013 | A1 |
20130117831 | Hook et al. | May 2013 | A1 |
20130124756 | Voronel et al. | May 2013 | A1 |
20130125226 | Shah et al. | May 2013 | A1 |
20130146663 | Hart et al. | Jun 2013 | A1 |
20130191884 | Leicher | Jul 2013 | A1 |
20130227291 | Ahmed et al. | Aug 2013 | A1 |
20130269011 | Wilson | Oct 2013 | A1 |
20130276080 | Nakonetzki et al. | Oct 2013 | A1 |
20130288668 | Pragada et al. | Oct 2013 | A1 |
20130290226 | Dokken | Oct 2013 | A1 |
20130311684 | David | Nov 2013 | A1 |
20130312061 | Roger | Nov 2013 | A1 |
20140007198 | Durbha et al. | Jan 2014 | A1 |
20140020051 | Lu et al. | Jan 2014 | A1 |
20140020078 | Canning et al. | Jan 2014 | A1 |
20140052548 | Dokken, Jr. | Feb 2014 | A1 |
20140068262 | Robertson et al. | Mar 2014 | A1 |
20140082715 | Grajek | Mar 2014 | A1 |
20140129612 | Hamilton et al. | May 2014 | A1 |
20140156732 | Lanni et al. | Jun 2014 | A1 |
20140189827 | Popovich et al. | Jul 2014 | A1 |
20140189841 | Metke et al. | Jul 2014 | A1 |
20140237236 | Kalinichenko et al. | Aug 2014 | A1 |
20140245411 | Meng et al. | Aug 2014 | A1 |
20140279622 | Lamoureux et al. | Sep 2014 | A1 |
20140285337 | Gebhardt | Sep 2014 | A1 |
20140298348 | Qureshi | Oct 2014 | A1 |
20140310792 | Hyland et al. | Oct 2014 | A1 |
20140331297 | Innes et al. | Nov 2014 | A1 |
20140376403 | Shao et al. | Dec 2014 | A1 |
20150046997 | Gupta et al. | Feb 2015 | A1 |
20150052584 | Rudraraju | Feb 2015 | A1 |
20150120572 | Slade | Apr 2015 | A1 |
20150149766 | Shukla et al. | May 2015 | A1 |
20150180868 | Sng | Jun 2015 | A1 |
20150188999 | Manuel-Devadoss | Jul 2015 | A1 |
20150193749 | Ivanoff et al. | Jul 2015 | A1 |
20150244706 | Grajek et al. | Aug 2015 | A1 |
20150249645 | Sobel et al. | Sep 2015 | A1 |
20150317466 | Kumar et al. | Nov 2015 | A1 |
20150365405 | Kalinichenko et al. | Dec 2015 | A1 |
20160065565 | Plotnik et al. | Mar 2016 | A1 |
20160077901 | Martori et al. | Mar 2016 | A1 |
20160080355 | Greenspan et al. | Mar 2016 | A1 |
20160119323 | Krishna | Apr 2016 | A1 |
20160127351 | Smith et al. | May 2016 | A1 |
20160156700 | Chen et al. | Jun 2016 | A1 |
20160162910 | Pradhan et al. | Jun 2016 | A1 |
20160164860 | Dunne et al. | Jun 2016 | A1 |
20160205108 | Si et al. | Jul 2016 | A1 |
20160219060 | Karunakaran et al. | Jul 2016 | A1 |
20160241599 | Qureshi | Aug 2016 | A1 |
20160269898 | Kueh | Sep 2016 | A1 |
20160277388 | Lowe et al. | Sep 2016 | A1 |
20160285847 | Oberheide et al. | Sep 2016 | A1 |
20160292694 | Goldschlag et al. | Oct 2016 | A1 |
20160323280 | Sade et al. | Nov 2016 | A1 |
20160337344 | Johansson et al. | Nov 2016 | A1 |
20170032111 | Johansson et al. | Feb 2017 | A1 |
20170034168 | Wilson et al. | Feb 2017 | A1 |
20170046758 | Sheehan et al. | Feb 2017 | A1 |
20170111351 | Grajek et al. | Apr 2017 | A1 |
20170187708 | Moore et al. | Jun 2017 | A1 |
20180324172 | Unnikrishnan et al. | Nov 2018 | A1 |
20180337914 | Mohamad Abdul et al. | Nov 2018 | A1 |
Number | Date | Country |
---|---|---|
101656609 | Feb 2010 | CN |
102801808 | Nov 2012 | CN |
103503407 | Jan 2014 | CN |
103930897 | Jul 2014 | CN |
2010083889 | Jul 2010 | WO |
2014151227 | Sep 2014 | WO |
Entry |
---|
First Office Action for CN Patent Application No. 202110676868.3 mailed Nov. 4, 2022. |
Benkhelifa et al., On a Real World Implementation of Advanced Authentication Mechanism in a Multi-Tenant Cloud Service Delievery Platform, 2014, IEEE, pp. 1-6. |
Chen; et al. (Almost) Tight Bounds and Existence Theorems for Single-Community Confluent Flows, Jul. 2007, ACM, vol. 54, No. 4, article 16, pp. 1-32. |
Doyle et al., Ubiquitos Desktops with Multi-factor Authentication, 2008, IEEE, pp. 198-203. |
Heckle; et al. Network Authentication Using Single Sign-on the Challenge of Aligning Mental Models. 2008, ACM, pp. 1-10. |
Sharp; et al. Extending Hardware Based Mandatory Access Controls for Memory to Multicore Architectures, May 14, 2018, ACM, pp. 1-3. |
Number | Date | Country | |
---|---|---|---|
20210203655 A1 | Jul 2021 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16236802 | Dec 2018 | US |
Child | 17200225 | US | |
Parent | 14739972 | Jun 2015 | US |
Child | 16236802 | US |