US20150121462A1 - Identity application programming interface - Google Patents
Identity application programming interface Download PDFInfo
- Publication number
- US20150121462A1 US20150121462A1 US14/062,063 US201314062063A US2015121462A1 US 20150121462 A1 US20150121462 A1 US 20150121462A1 US 201314062063 A US201314062063 A US 201314062063A US 2015121462 A1 US2015121462 A1 US 2015121462A1
- Authority
- US
- United States
- Prior art keywords
- application
- user
- identity
- computing device
- access
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
Definitions
- This disclosure generally relates to applications for cloud computing devices.
- Cloud or network-based computing is a type of computing that relies on sharing computing resources over the web rather than relying on local resources (e.g., local servers or personal devices) to handle applications.
- Different services or resources e.g., servers, storage, data and applications
- a user may have one or more accounts with cloud- or network-based service providers to avail of the different services or resources.
- web app is a program that is written in, for example, HTML5, JavaScript, and CSS, and is designed to be run entirely within a web browser on a user's computing device.
- Google Docs and Gmail are examples of cloud- or network-based web apps that are used or run entirely within a web browser tab.
- a web app that can run entirely within the web browser may be either a “hosted web application” or a “packaged web application.”
- a hosted web application may be, for example, hosted on the Internet or other network, available as an URL, and accessed by users using a web browser.
- the hosted web application's components on the Internet may include, for example, a portion of a web site that itself may include one or more web pages and possibly some metadata that may be pertinent to a functionality of the web application.
- a packaged web application may be thought of as a web application all of whose components are bundled in a package that can be downloaded (e.g., from a public or private app store) for local execution by the web browser on the user's computing device.
- a packaged web application may be executed even when the user's computing device is offline i.e. without access to a network or the Internet.
- “native” or “natively-operating” apps are apps that are developed to operate in their own application containers outside of a web browser on the user's computing device.
- a natively-operating app may interact with and take advantage of operating system features and other software that may be typically installed on user's computing device but are not available to web apps.
- a natively-operating app may also be bundled in a package that can be downloaded (e.g., from a public or private app store) for local installation and execution on the user's computing device.
- the packaged natively-operating app like a packaged web application, may also be written in HTML5, JavaScript, and CSS. Both kinds of packaged apps can load the same type of content: HTML documents with CSS and JavaScript.
- a packaged natively-operating app is designed to be installed on the user's computing device and run outside of a browser tab directly from the computing device's hard drive.
- Apps often require access to data or resources, which may be available in a user's cloud- or network-based account, for certain app functionalities.
- a financial or accounting app may require access to user-owned financial data (e.g., bank balances, mortgage payments, etc.) stored in the user's cloud- or network-based account (“user account”).
- user-owned financial data e.g., bank balances, mortgage payments, etc.
- a third party app For security, user approval or authorization may be required before granting the app (e.g., a third party app) access to the user-owned data in the user's cloud- or network-based account.
- Common web authorization protocols e.g., OAuth 1.0 and OAuth 2.0
- the web app may receive an access token that the web app may use (instead of the user's account login credentials) to repeatedly to access the user-owned data in the user account.
- Example implementations of web authorization protocols for granting web apps access to user data in the user's cloud- or network-based account may utilize web features such as HTTP elements, URL redirects and session cookies. While these web features may be suitable for or compatible with the operation of web apps, which run inside a web browser, they are not compatible with the operation of packaged natively-operating apps, which run outside a web browser; the packaged natively-operating apps do not load over HTTP and cannot perform redirects or set cookies.
- web features such as HTTP elements, URL redirects and session cookies. While these web features may be suitable for or compatible with the operation of web apps, which run inside a web browser, they are not compatible with the operation of packaged natively-operating apps, which run outside a web browser; the packaged natively-operating apps do not load over HTTP and cannot perform redirects or set cookies.
- a packaged app as used herein, in appropriate context, may be understood to refer to “a packaged natively-operating app” operating outside a web browser and not to “a packaged web app” operating inside a web browser.
- a packaged app running outside a web browser on a user's computing device may request access to protected user data in a web account of the user.
- the request may be subject to user authentication and approval or consent.
- an identity application programming interface may be configured to present a web-based user consent dialog embedded as an independent process in a user interface (UI) or window of the packaged app even as the packaged app runs its own process or processes outside a web browser on the user's computing device.
- the process of the embedded user consent dialog which may be exclusively controlled by the identity API, may be fully isolated or sandboxed from the packaged app process or processes on the user's computing device.
- the embedded web-based user consent dialog process may not share session cookies or other user information with the packaged app process or processes.
- a method includes receiving an application's request for access to a user's network-based account.
- the application can be running as an application process or processes outside a web browser on a computing device. If there is an outstanding user consent to access by the application to the user's network-based account, the method includes returning an access token to the application, the access token enabling access to the user's network-based account. Conversely, if there is no outstanding user consent to access by the application to the user's network-based account, the method includes presenting a web-based user consent dialog embedded in a system-generated window on the computing device as a process that is independent of the application process or processes.
- a method involves getting user consent to provide access to an application to the user's network-based account.
- the application can be running outside a web browser on a computing device having a web OS and a computing device runtime that is a browser process.
- the method includes providing an identity application programming interface (API) on the computing device to the application to communicate with an identity provider, the identity API being configured to exchange a user login token with the identity provider in return for session cookies for a web-based user consent UI session.
- the method further includes providing an identity component application coupled to the identity provider through the identity API and configured to serve the user consent UI on the computing device.
- API identity application programming interface
- a non-transitory computer-readable storage medium has instructions stored thereon, which instructions when executed by one or more microprocessors cause a computer system to process an application's request for access to a user's network-based account, the application running as an application process or processes outside a web browser on a computing device. If there is an outstanding user consent to access by the application to the user's network-based account, the instructions cause the computer system to return an access token to the application, the access token enabling access to the user's network-based account.
- the instructions cause the computer system to present a web-based user consent dialog embedded in a system-generated window on the computing device as a process that is independent of the application process or processes.
- a non-transitory computer-readable storage medium has instructions stored thereon, which instructions when executed by one or more microprocessors cause a computer system to get a user consent to provide an application access to the user's network-based account.
- the application can be running outside a web browser on a computing device, the computing device having a web OS and a computing device runtime that is a browser process.
- the instructions cause the computer system to provide an identity application programming interface (API) in computing device runtime to the application for communication with an identity provider.
- the identity API is configured to exchange a user login token with the identity provider in return for session cookies for a web-based user consent user interface (UI) session.
- the instructions further cause the computer system to provide an identity component application coupled to the identity API and configured to serve the user-consent UI on the computing device.
- a computing device comprising includes at least one processor and at least one memory.
- the processor is to run an application installed in memory.
- the application can run an application process or processes in its own application container outside a web browser on the computing device.
- the computing device further includes an identity application program interface (API) configured to receive requests from the application in computing device runtime for access to the user's data or accounts and to forward such requests to an identity provider server configured to authenticate a user and authorize requests for access to the user's data or accounts based on user consent, and an identity component application coupled to the identity API.
- the identity component application is configured to present a web-based user consent dialog on the computing device as a process that is independent of the application process or processes.
- FIG. 1 is a schematic block diagram illustration of an example system, which is configured to obtain a user's approval or authorization for exposure of the user's data to a packaged application installed on a computing device, in accordance with the principles of the disclosure herein.
- FIG. 2 is a schematic block diagram illustration of an example computing device runtime, which includes an Identity API that is configured to display web-based user consent dialogs for granting a packaged app access to user data or service accounts on network servers, in accordance with the principles of the disclosure herein.
- an Identity API that is configured to display web-based user consent dialogs for granting a packaged app access to user data or service accounts on network servers, in accordance with the principles of the disclosure herein.
- FIG. 3 is an illustration of an example consent UI, which may be displayed inside a system-generated window (e.g., a webview container in an identity component application) on the computing device, for obtaining a user's consent to granting the packaged application access to protected user data, in accordance with the principles of the disclosure herein.
- a system-generated window e.g., a webview container in an identity component application
- FIG. 4 is a flow diagram illustrating an example process for obtaining a user's approval or authorization for exposure of the user's data to a packaged application installed on a computing device, in accordance with the principles of the disclosure herein.
- FIG. 5 is a flow chart illustrating an example method, which may be used to obtain user consent for exposing the user's data in the user's cloud- or network-based account to a packaged application, in accordance with the principles of the disclosure herein.
- FIG. 6 is a flow chart illustrating another example method for getting a user's consent to provide a packaged application access to the user's cloud- or network-based account, in accordance with the principles of the disclosure herein.
- FIG. 7 is a schematic illustration of a generic computer device and a generic mobile computer device, which may be used with the techniques described herein.
- packaged apps may be written in HTML5, JavaScript, and CSS.
- a packaged app like any native app or web app, may need access to user data, which is protected in a user's cloud- or network-based account (“user's web account”), for certain tasks or activities.
- Token-based authentication and authorization protocols e.g., OAuth 2.0
- OAuth 2.0 may govern the packaged app's access to user data in the user's web account.
- Implementation of the authentication and authorization protocols may involve an identity provider, which may be an authentication module on a server.
- a packaged app wanting to access the user's web account e.g., Google+ API or GitHub API, etc.
- the packaged app may request an access token (e.g., an OAuth access token) from the identity provider that it can use, in lieu of explicit user authentication, to make API calls to the user's web account.
- an access token e.g., an OAuth access token
- an Identity API supported by the identity provider may be configured to accept a logged-in-identity or log-in token of the user of the computing device as a security token for user authentication without requiring the user to enter a password or other credential.
- the Identity API may be configured to let the packaged app request an access token (e.g., OAuth access token), which may allow the packaged app to make web service calls on behalf of the user to the user's web account.
- an access token e.g., OAuth access token
- a range of resources made available and operations permitted in the user's web account by the access token may be controlled during the access token request process via a variable parameter called ‘scope’.
- scope may be included in the access token request made by the packaged app.
- a user consent dialog may be employed to receive or process user input for user authentication and for user approval or grant of access scopes requested by a packaged app.
- the identity API may be configured to serve the user consent dialog as URL content or a web page (“web page”) embedded in a system-generated window on the computing device even as the packaged app runs outside a web browser on the user's computing device.
- the embedded web page may be a process that is exclusively controlled by the identity provider/identity API.
- the embedded web page process may be fully isolated or sandboxed from the packaged app process or processes.
- the independence and isolation of the embedded web page process may preclude sharing of permissions, session cookies or other user information (which may be generated by the web-based user consent dialog) with the packaged app process or processes.
- HTTP cookies which may be used by the identity provider or identity API to save the user's login state or identity, may not be shared with or communicated to the packaged app process or processes.
- a packaged app/identity component application may be configured to receive and display URL content or web page (i.e. user consent dialog) served by the identity provider/identity API.
- the packaged app which is coded to operate outside of a web browser, may include a coding construct that allows display of web content (e.g. the URL content or web page served by the identity provider/identity API) in a container in the packaged application UI or window.
- a coding construct may be a “webview” tag.
- the webview tag may generate a “webview” container embedded in the packaged app UI for displaying the URL content or web page therein.
- the webview tag may include the src of the URL content or web page and css styles that control the appearance of the webview container itself. It will be noted that while the css styles in the webview tag may control a look and feel of the webview container (e.g., container size) they may not control the displayed URL content or web page itself.
- display of URL content or a web page as an independent or isolated process embedded in a packaged app UI or window may be referred to as a “webview,” irrespective of whether the packaged app runs in Chrome OS or an operating system other than Chrome OS.
- FIG. 1 is a schematic block diagram of an example system 100 that may be configured to provide authorization and authentication services to packaged applications for accessing protected user data in a user's cloud- or network-based accounts, in accordance with the principles of the disclosure herein.
- system 100 may include one or more computing devices 102 (such as desktop computers, notebook computers, netbook computers, tablet computers, smart-phones, etc.).
- a computing device 102 may include one or more processors (e.g., CPU 104 ), one or more memories 106 , an operating system (e.g., O/S 108 ), and a cache 118 .
- O/S 108 may, for example, be a Chrome operating system or other native operating system (e.g., Windows, Linux, Unix or Mac OS X, etc.).
- Computing device 102 or O/S 108 may include or support a software or user interface (e.g., a browser or a system-specific client) through which computing device 102 can access applications and resources residing on the web.
- a software or user interface e.g., a browser or a system-specific client
- Computing device 102 may execute a runtime 120 and various applications (e.g., a web application 110 , a packaged application 130 , a packaged application/identity component application 140 , etc.).
- Web application 110 may run in a tab of web browser 112 , which may be provided by O/S 108 .
- packaged applications 130 and 140 which may installed on a hard drive or memory of computing device 102 , may run outside of any web browser in their own application containers 132 and 134 , respectively.
- Computing device 102 may be linked via a network 190 to one or more servers hosting a user's cloud- or network-based accounts (e.g., User Accounts server 150 , and API/services provider server 160 ).
- Server 150 and server 160 may each include one or more CPUs and memories (e.g., CPU 152 /Memory 154 , and CPU 162 /Memory 164 , respectively).
- the one or more servers e.g., User Accounts server 150
- Server 150 may, for example, include an identity provider API 180 coupled to an Identity UI 182 .
- Identity provider API 180 may be configured to receive requests for authentication and authorization (e.g., from client devices such as computing device 102 ) to access protected user data on the servers.
- Identity provider API 180 may verify a security token as an alternative to explicitly authenticating a user (e.g., of computing device 102 ) and authorize requests to access protected user data or accounts on the servers (e.g., server 160 ).
- Identity provider UI 182 may be configured to act as an interface between identity provider API 180 and the client device (e.g., computing device 102 ).
- a packaged app (e.g., packaged app 130 ) installed on computing device 102 may need access tokens to access protected user data, for example, in User Accounts server 150 or API/services provider server 160 .
- User Accounts server 150 or API/services provider server 160 may provide access to the user data and accounts to packaged app 130 only if the user has authorized or consented to such access.
- a client-side Identity API (e.g., Identity API 170 ) may be configured to interact with Identity provider API 180 on server 150 and serve web-based user consent dialogs (e.g., web-based consent UI 300 , FIG. 3 ) on computing device 102 on which the packaged app (e.g., packaged application 130 ) operates outside of a web browser.
- Identity API 170 may be configured to interact with Identity provider API 180 on server 150 and serve web-based user consent dialogs (e.g., web-based consent UI 300 , FIG. 3 ) on computing device 102 on which the packaged app (e.g., packaged application 130 ) operates outside of a web browser.
- Identity API 170 which may be part of runtime 120 of computing device 120 , may be configured to display the web-based consent UI on computing device 120 .
- Identity API 170 may display the web-based consent UI in conjunction with an identity component application 140 , which is also installed on computing device 120 .
- the consent UI may be displayed in a webview container in identity component application 140 , which may itself be a packaged application.
- the consent UI may be visually attached to a display of packaged app 130 itself.
- FIG. 2 schematically shows a structure of an example runtime 120 , which includes Identity API 170 that is configured to display web-based user consent dialogs for granting a packaged app access to user data or service accounts on network servers, in accordance with the principles of the disclosure herein.
- Identity API 170 (which may comply with the OAuth 2.0 protocol or other token-based protocol) may be coupled in runtime 120 to a credentials handling system (e.g., credential component 212 ) that may generate, store, or retrieve the user's login credentials on computing device 102 .
- a credentials handling system e.g., credential component 212
- Generation of the web-based consent UI may be delegated by identity API 170 to an identity component application 140 (e.g., a JavaScript Chrome application) that is installed on computing device 102 .
- Component application 140 which itself may be a packaged application that operates outside a web browser, may be configured to serve a webview of the web-based consent UI (e.g., consent UI 300 ).
- Implementing the consent UI with a component application e.g., component application 140
- FIG. 3 shows an example consent UI 300 , which may be displayed in a system generated window (e.g., a webview container 310 in an identity component application) on the computing device to obtain a user's consent for granting access to protected user data to the packaged application, in accordance with the principles of the disclosure herein.
- a system generated window e.g., a webview container 310 in an identity component application
- Identity API 170 may be configured so that token requests by a packaged application (e.g., packaged application 130 ) for access to user data or service accounts may be satisfied in one of three ways:
- FIG. 4 is flow diagram which illustrates an example process 400 by which a Chrome packaged application 410 (e.g., Awesome Chrome App) can request an access token, in accordance with the principles of the disclosure herein.
- Process 400 may include displaying a web-consent UI (e.g., UI 300 ) to get the access token.
- UI e.g., UI 300
- some parts of process 400 e.g., involving communications between identity component application 140 and identity provided UI 182
- standard authentication and authorization protocols e.g., OAuth2.0 protocol
- other parts of process 400 may take place under a custom protocol other than the standard authentication and authorization protocols.
- process 400 may involve interactions between packaged application 410 (e.g., Awesome Chrome App), Chrome runtime 420 , which may be a browser process, an authorization provider server 430 (e.g., xyzapis.com which may include Identity provider API 180 ), an identity provider/user's service account server 440 (e.g., xyz.accounts.com, which may include Identity provider UI 182 ), and identity component application 140 .
- servers 430 and 440 which are shown in FIG. 4 , together may be logically equivalent to server 150 , which includes both Identity provider API 180 and Identity provider UI 182 as shown in FIG. 1 .
- packaged application 410 may be registered with OAuth authorization service provider 430 to get its own client ID (e.g., OAuth2 client ID).
- packaged application 410 may issue an access token request (e.g., identity.GetAuthToken) to Chrome runtime 420 to get an access token to access the user's service account (e.g., at accounts. xyz.com) ( 41 ).
- Packaged application 410 may pass in its OAuth client ID and an array of scopes with the access token request to Chrome runtime 420 .
- Chrome runtime 420 may then direct a call for the access token (e.g., oauth.v2.IssueToken) to Identity Provider API 180 at authorization provider server 430 (e.g., xyz.apis.com) using the user's credentials or token-based user credentials ( 42 ).
- OAuth authorization provider server 430 may return a response ( 43 ), which either includes the requested access token or an indication that user consent is required before the access token can be sent.
- the access token may be passed to packaged application 410 by Chrome runtime 420 (not shown). Packaged application 410 may then use the requested access token to accompany requests for account information (not shown) directed to, for example, user's service account server 440 .
- the next messages (e.g., 44 - 46 ) issued or received by runtime 420 may conform to an “exchange” protocol established with the Identity Provider to exchange token based-credentials for cookie-based credentials, which can be used in subsequent HTML- or web-based UI following, for example, the OAuth protocol.
- User's service account server 440 may respond by returning an uberauth token to Chrome runtime 420 ( 45 ).
- the uberauth token may allow Chrome runtime 420 to connect to any major cloud-service platforms using a simple interface while complying with, for example, either OAuth 1.0 or OAuth 2.0 standards.
- Chrome runtime 420 may send a MergeSession URL instruction ( 46 ) to identity component application 140 .
- Identity component application 140 may present a web-based scope approval UI (e.g., UI 300 ) in ⁇ webview> on computing device 102 .
- the presented web-based scope approval UI may have multiple approval steps.
- the user may then proceed through the web-based approval flow displayed in ⁇ webview> to grant or authorize access.
- Identity component application 140 may intercept the redirect to chromiumapp.org and parse the redirect URL ( 48 ) to extract an access token (if present), before a final result (i.e., an access token or error) is returned to packaged application 410 ( 49 ).
- FIG. 5 shows an example method 500 , which may be used to obtain user consent for exposing the user's data in the user's cloud- or network-based accounts to an application, in accordance with the principles of the disclosure herein.
- the application may be a packaged natively-operating application (e.g., packaged application 130 ) running outside a web browser on a computing device.
- the computing device may include a web OS (e.g., Chrome OS).
- Method 500 may include receiving an application's request for access to a user's cloud- or network-based account ( 510 ).
- the application may be a packaged natively-operating application installed on the user's computing device.
- Receiving the application's request may involve providing an identity application programming interface (API) to receive and process the application's request.
- API identity application programming interface
- method 500 may include returning an access token to the application, the access token enabling access to the user's cloud- or network-based account ( 520 ). Conversely, if there is no outstanding user consent to access by the application to the user's cloud- or network-based account, method 500 may include presenting a web-based user consent dialog in a webview container, for example, in an identity component application installed on the user's computing device ( 530 ).
- the web-based consent dialog may require that the user be logged in (e.g., in the computing device or the user's cloud- or network-based account) so that there is a valid login token, which the identity provider can use as a security token to authenticate the user.
- presenting a web-based user consent dialog in a webview container in the application 520 may include having a component application of the identity API serve the user consent dialog in the webview container in the application.
- the user consent dialog served in the web container may be multiple step user consent dialog covering, for example, a request for varying scopes of authorizations.
- Method 500 may also include, after obtaining user consent, parsing a URL received at the component application (e.g., from the identity provider) to extract an access token for the packaged application to access to the user's cloud- or network-based account ( 540 ).
- a URL received at the component application e.g., from the identity provider
- FIG. 6 shows another example method 600 for getting a user's consent to provide access to an application to the user's cloud- or network-based account, in accordance with the principles of the disclosure herein.
- the application may be a packaged application (e.g., packaged application 130 ) running outside a web browser on a computing device (e.g., computing device 120 ).
- the computing device may have a web OS and a computing device runtime that is a browser process.
- Method 600 may include providing an identity application programming interface (API) in the computing device runtime for communication with an identity provider ( 610 ).
- Method 600 may further include providing an identity component application configured to serve a user consent UI in a webview container on the computing device ( 620 ).
- the identity API may be coupled to the identity component application, which may be another packaged application installed on the computing device.
- the identity provider and identity API/computing device runtime may exchange messages with each other under a custom “exchange” protocol for translating token-based credentials into session cookie credentials.
- Method 600 may, for example, further include configuring the identity API/computing device runtime to issue an OAuthlogin call to the identity provider and receive an uberauth token in return from the identity provider ( 630 ), and send a MergeSession URL instruction to the identity component application ( 640 ).
- method 600 includes configuring the identity component application to create a window containing a webview control pointed at the MergeSession URL, with a continuation URL pointed to the OAuth authorization URL for the application, to present a web-based scope approval UI or consent UI in webview in the component application on the computing device, and to intercept and parse a redirect URL to extract an access token for the application ( 650 ).
- method 600 also assumes that the user is logged in and that there is valid login token associated with a user profile for the identity provider to authenticate the user when the application runs. If for any reason there is no valid login token (e.g., the user may have revoked their login refresh token), then a sign-in dialog may be invoked to give the user an opportunity to login before the web-based scope approval dialog is presented in webview on computing device.
- the sign-in dialog may, for example, be presented as a sign-in screen in the web browser. After the sign-in dialog closes, the consent UI from the identity component application may open (if required) in webview.
- a computer system may be deployed to practice process 400 , method 500 or method 600 in conjunction with a non-transitory computer-readable storage medium having instructions stored thereon.
- the instructions when executed by one or more microprocessors may cause the computer system to obtain access tokens for an application (e.g., a packaged application) as described with reference to FIGS. 4-6 .
- FIG. 7 shows an example of a generic computer device 700 and a generic mobile computer device 750 , which may be used with the techniques described here.
- Computing device 700 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
- Computing device 750 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices.
- the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
- Computing device 700 includes a processor 702 , memory 704 , a storage device 706 , a high-speed interface 708 connecting to memory 704 and high-speed expansion ports 710 , and a low speed interface 712 connecting to low speed bus 714 and storage device 706 .
- Each of the components 702 , 704 , 706 , 708 , 710 , and 712 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
- the processor 702 can process instructions for execution within the computing device 700 , including instructions stored in the memory 704 or on the storage device 706 to display graphical information for a GUI on an external input/output device, such as display 716 coupled to high speed interface 708 .
- multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 700 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
- the memory 704 stores information within the computing device 700 .
- the memory 704 is a volatile memory unit or units.
- the memory 704 is a non-volatile memory unit or units.
- the memory 704 may also be another form of computer-readable medium, such as a magnetic or optical disk.
- the storage device 706 is capable of providing mass storage for the computing device 700 .
- the storage device 706 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
- a computer program product can be tangibly embodied in an information carrier.
- the computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 704 , the storage device 706 , or memory on processor 702 .
- the high speed controller 708 manages bandwidth-intensive operations for the computing device 700 , while the low speed controller 712 manages lower bandwidth-intensive operations.
- the high-speed controller 708 is coupled to memory 704 , display 716 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 710 , which may accept various expansion cards (not shown).
- low-speed controller 712 is coupled to storage device 706 and low-speed expansion port 714 .
- the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- the computing device 700 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 720 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 724 . In addition, it may be implemented in a personal computer such as a laptop computer 722 . Alternatively, components from computing device 700 may be combined with other components in a mobile device (not shown), such as device 750 . Each of such devices may contain one or more of computing device 700 , 750 , and an entire system may be made up of multiple computing devices 700 , 750 communicating with each other.
- Computing device 750 includes a processor 752 , memory 764 , and an input/output device such as a display 754 , a communication interface 766 , and a transceiver 768 , among other components.
- the device 750 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage.
- a storage device such as a microdrive or other device, to provide additional storage.
- Each of the components 750 , 752 , 764 , 754 , 766 , and 768 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
- the processor 752 can execute instructions within the computing device 750 , including instructions stored in the memory 764 .
- the processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors.
- the processor may provide, for example, for coordination of the other components of the device 750 , such as control of user interfaces, applications run by device 750 , and wireless communication by device 750 .
- Processor 752 may communicate with a user through control interface 758 and display interface 756 coupled to a display 754 .
- the display 754 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology.
- the display interface 756 may comprise appropriate circuitry for driving the display 754 to present graphical and other information to a user.
- the control interface 758 may receive commands from a user and convert them for submission to the processor 752 .
- an external interface 762 may be provided in communication with processor 752 , so as to enable near area communication of device 750 with other devices. External interface 762 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.
- the memory 764 stores information within the computing device 750 .
- the memory 764 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.
- Expansion memory 774 may also be provided and connected to device 750 through expansion interface 772 , which may include, for example, a SIMM (Single In Line Memory Module) card interface.
- SIMM Single In Line Memory Module
- expansion memory 774 may provide extra storage space for device 750 , or may also store applications or other information for device 750 .
- expansion memory 774 may include instructions to carry out or supplement the processes described above, and may include secure information also.
- expansion memory 774 may be provided as a security module for device 750 , and may be programmed with instructions that permit secure use of device 750 .
- secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
- the memory may include, for example, flash memory and/or NVRAM memory, as discussed below.
- a computer program product is tangibly embodied in an information carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 764 , expansion memory 774 , or memory on processor 752 that may be received, for example, over transceiver 768 or external interface 762 .
- Device 750 may communicate wirelessly through communication interface 766 , which may include digital signal processing circuitry where necessary. Communication interface 766 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 768 . In addition, short-range communication may occur, such as using a Bluetooth, Wi-Fi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 770 may provide additional navigation- and location-related wireless data to device 750 , which may be used as appropriate by applications running on device 750 .
- GPS Global Positioning System
- Device 750 may also communicate audibly using audio codec 760 , which may receive spoken information from a user and convert it to usable digital information. Audio codec 760 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 750 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 750 .
- Audio codec 760 may receive spoken information from a user and convert it to usable digital information. Audio codec 760 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 750 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 750 .
- the computing device 750 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 780 . It may also be implemented as part of a smart phone 782 , personal digital assistant, or other similar mobile device.
- implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- a keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
- LAN local area network
- WAN wide area network
- the Internet the global information network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This disclosure generally relates to applications for cloud computing devices.
- Cloud or network-based computing is a type of computing that relies on sharing computing resources over the web rather than relying on local resources (e.g., local servers or personal devices) to handle applications. Different services or resources (e.g., servers, storage, data and applications) can be delivered over the web to a user via a web browser. A user may have one or more accounts with cloud- or network-based service providers to avail of the different services or resources.
- Generally, a web application (“web app”) is a program that is written in, for example, HTML5, JavaScript, and CSS, and is designed to be run entirely within a web browser on a user's computing device. Google Docs and Gmail are examples of cloud- or network-based web apps that are used or run entirely within a web browser tab.
- A web app that can run entirely within the web browser may be either a “hosted web application” or a “packaged web application.” A hosted web application may be, for example, hosted on the Internet or other network, available as an URL, and accessed by users using a web browser. The hosted web application's components on the Internet may include, for example, a portion of a web site that itself may include one or more web pages and possibly some metadata that may be pertinent to a functionality of the web application. In contrast to the hosted web application, a packaged web application may be thought of as a web application all of whose components are bundled in a package that can be downloaded (e.g., from a public or private app store) for local execution by the web browser on the user's computing device. A packaged web application may be executed even when the user's computing device is offline i.e. without access to a network or the Internet.
- Furthermore, “native” or “natively-operating” apps are apps that are developed to operate in their own application containers outside of a web browser on the user's computing device. A natively-operating app may interact with and take advantage of operating system features and other software that may be typically installed on user's computing device but are not available to web apps.
- Like a packaged web app, a natively-operating app may also be bundled in a package that can be downloaded (e.g., from a public or private app store) for local installation and execution on the user's computing device. The packaged natively-operating app, like a packaged web application, may also be written in HTML5, JavaScript, and CSS. Both kinds of packaged apps can load the same type of content: HTML documents with CSS and JavaScript. However, in contrast to the within-browser operation of a packaged web app (or a hosted web app), a packaged natively-operating app is designed to be installed on the user's computing device and run outside of a browser tab directly from the computing device's hard drive.
- Apps (either web apps or natively-operating apps) often require access to data or resources, which may be available in a user's cloud- or network-based account, for certain app functionalities. For example, a financial or accounting app may require access to user-owned financial data (e.g., bank balances, mortgage payments, etc.) stored in the user's cloud- or network-based account (“user account”).
- For security, user approval or authorization may be required before granting the app (e.g., a third party app) access to the user-owned data in the user's cloud- or network-based account. Common web authorization protocols (e.g., OAuth 1.0 and OAuth 2.0) allow a user to grant a third-party web app (or web site) access to the user's data in the user's cloud- or network-based account, without having to reveal or share the user's account login credentials (e.g., password) with the web app. Once a web app is granted access by the user, the web app may receive an access token that the web app may use (instead of the user's account login credentials) to repeatedly to access the user-owned data in the user account.
- Example implementations of web authorization protocols for granting web apps access to user data in the user's cloud- or network-based account may utilize web features such as HTTP elements, URL redirects and session cookies. While these web features may be suitable for or compatible with the operation of web apps, which run inside a web browser, they are not compatible with the operation of packaged natively-operating apps, which run outside a web browser; the packaged natively-operating apps do not load over HTTP and cannot perform redirects or set cookies.
- A need exists for user approval or authorization procedures for granting access to user data in the user's cloud- or network-based accounts to packaged natively-operating applications.
- For convenience in description and consistent with an evolving use of terms in the industry, the term “a packaged app” as used herein, in appropriate context, may be understood to refer to “a packaged natively-operating app” operating outside a web browser and not to “a packaged web app” operating inside a web browser.
- A packaged app running outside a web browser on a user's computing device may request access to protected user data in a web account of the user. The request may be subject to user authentication and approval or consent.
- In accordance with the principles of the disclosure herein, an identity application programming interface (API) may be configured to present a web-based user consent dialog embedded as an independent process in a user interface (UI) or window of the packaged app even as the packaged app runs its own process or processes outside a web browser on the user's computing device. The process of the embedded user consent dialog, which may be exclusively controlled by the identity API, may be fully isolated or sandboxed from the packaged app process or processes on the user's computing device. The embedded web-based user consent dialog process may not share session cookies or other user information with the packaged app process or processes.
- In a general aspect, a method includes receiving an application's request for access to a user's network-based account. The application can be running as an application process or processes outside a web browser on a computing device. If there is an outstanding user consent to access by the application to the user's network-based account, the method includes returning an access token to the application, the access token enabling access to the user's network-based account. Conversely, if there is no outstanding user consent to access by the application to the user's network-based account, the method includes presenting a web-based user consent dialog embedded in a system-generated window on the computing device as a process that is independent of the application process or processes.
- In a general aspect, a method involves getting user consent to provide access to an application to the user's network-based account. The application can be running outside a web browser on a computing device having a web OS and a computing device runtime that is a browser process. The method includes providing an identity application programming interface (API) on the computing device to the application to communicate with an identity provider, the identity API being configured to exchange a user login token with the identity provider in return for session cookies for a web-based user consent UI session. The method further includes providing an identity component application coupled to the identity provider through the identity API and configured to serve the user consent UI on the computing device.
- In a general aspect, a non-transitory computer-readable storage medium has instructions stored thereon, which instructions when executed by one or more microprocessors cause a computer system to process an application's request for access to a user's network-based account, the application running as an application process or processes outside a web browser on a computing device. If there is an outstanding user consent to access by the application to the user's network-based account, the instructions cause the computer system to return an access token to the application, the access token enabling access to the user's network-based account. Conversely, if there is no outstanding user consent to access by the application to the user's network-based account, the instructions cause the computer system to present a web-based user consent dialog embedded in a system-generated window on the computing device as a process that is independent of the application process or processes.
- In a general aspect, a non-transitory computer-readable storage medium has instructions stored thereon, which instructions when executed by one or more microprocessors cause a computer system to get a user consent to provide an application access to the user's network-based account. The application can be running outside a web browser on a computing device, the computing device having a web OS and a computing device runtime that is a browser process. The instructions cause the computer system to provide an identity application programming interface (API) in computing device runtime to the application for communication with an identity provider. The identity API is configured to exchange a user login token with the identity provider in return for session cookies for a web-based user consent user interface (UI) session. The instructions further cause the computer system to provide an identity component application coupled to the identity API and configured to serve the user-consent UI on the computing device.
- In a general aspect, a computing device comprising includes at least one processor and at least one memory. The processor is to run an application installed in memory. The application can run an application process or processes in its own application container outside a web browser on the computing device. The computing device further includes an identity application program interface (API) configured to receive requests from the application in computing device runtime for access to the user's data or accounts and to forward such requests to an identity provider server configured to authenticate a user and authorize requests for access to the user's data or accounts based on user consent, and an identity component application coupled to the identity API. The identity component application is configured to present a web-based user consent dialog on the computing device as a process that is independent of the application process or processes.
- The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
-
FIG. 1 is a schematic block diagram illustration of an example system, which is configured to obtain a user's approval or authorization for exposure of the user's data to a packaged application installed on a computing device, in accordance with the principles of the disclosure herein. -
FIG. 2 is a schematic block diagram illustration of an example computing device runtime, which includes an Identity API that is configured to display web-based user consent dialogs for granting a packaged app access to user data or service accounts on network servers, in accordance with the principles of the disclosure herein. -
FIG. 3 is an illustration of an example consent UI, which may be displayed inside a system-generated window (e.g., a webview container in an identity component application) on the computing device, for obtaining a user's consent to granting the packaged application access to protected user data, in accordance with the principles of the disclosure herein. -
FIG. 4 is a flow diagram illustrating an example process for obtaining a user's approval or authorization for exposure of the user's data to a packaged application installed on a computing device, in accordance with the principles of the disclosure herein. -
FIG. 5 is a flow chart illustrating an example method, which may be used to obtain user consent for exposing the user's data in the user's cloud- or network-based account to a packaged application, in accordance with the principles of the disclosure herein. -
FIG. 6 is a flow chart illustrating another example method for getting a user's consent to provide a packaged application access to the user's cloud- or network-based account, in accordance with the principles of the disclosure herein. -
FIG. 7 is a schematic illustration of a generic computer device and a generic mobile computer device, which may be used with the techniques described herein. - Like reference symbols in the various drawings indicate like elements.
- Just like web apps, packaged apps may be written in HTML5, JavaScript, and CSS. A packaged app, like any native app or web app, may need access to user data, which is protected in a user's cloud- or network-based account (“user's web account”), for certain tasks or activities. Token-based authentication and authorization protocols (e.g., OAuth 2.0) may govern the packaged app's access to user data in the user's web account. Implementation of the authentication and authorization protocols may involve an identity provider, which may be an authentication module on a server. A packaged app wanting to access the user's web account (e.g., Google+ API or GitHub API, etc.) may need the user to authenticate with the identity provider and to grant the packaged app access to the user's web account. Once the user has granted access, the packaged app may request an access token (e.g., an OAuth access token) from the identity provider that it can use, in lieu of explicit user authentication, to make API calls to the user's web account.
- For user authentication, an Identity API supported by the identity provider may be configured to accept a logged-in-identity or log-in token of the user of the computing device as a security token for user authentication without requiring the user to enter a password or other credential. Further, the Identity API may be configured to let the packaged app request an access token (e.g., OAuth access token), which may allow the packaged app to make web service calls on behalf of the user to the user's web account. A range of resources made available and operations permitted in the user's web account by the access token may be controlled during the access token request process via a variable parameter called ‘scope’. Several scopes may be included in the access token request made by the packaged app.
- A user consent dialog (or dialogs) may be employed to receive or process user input for user authentication and for user approval or grant of access scopes requested by a packaged app.
- In accordance with the principles of the present disclosure, the identity API may be configured to serve the user consent dialog as URL content or a web page (“web page”) embedded in a system-generated window on the computing device even as the packaged app runs outside a web browser on the user's computing device. The embedded web page may be a process that is exclusively controlled by the identity provider/identity API. The embedded web page process may be fully isolated or sandboxed from the packaged app process or processes. The independence and isolation of the embedded web page process may preclude sharing of permissions, session cookies or other user information (which may be generated by the web-based user consent dialog) with the packaged app process or processes. For example, HTTP cookies, which may be used by the identity provider or identity API to save the user's login state or identity, may not be shared with or communicated to the packaged app process or processes.
- Further, in accordance with the principles of the present disclosure, a packaged app/identity component application may be configured to receive and display URL content or web page (i.e. user consent dialog) served by the identity provider/identity API. The packaged app, which is coded to operate outside of a web browser, may include a coding construct that allows display of web content (e.g. the URL content or web page served by the identity provider/identity API) in a container in the packaged application UI or window. For an example chrome packaged app supported by the Chrome OS, such a coding construct may be a “webview” tag. The webview tag may generate a “webview” container embedded in the packaged app UI for displaying the URL content or web page therein. The webview tag may include the src of the URL content or web page and css styles that control the appearance of the webview container itself. It will be noted that while the css styles in the webview tag may control a look and feel of the webview container (e.g., container size) they may not control the displayed URL content or web page itself.
- For convenience in description herein, display of URL content or a web page as an independent or isolated process embedded in a packaged app UI or window may be referred to as a “webview,” irrespective of whether the packaged app runs in Chrome OS or an operating system other than Chrome OS.
-
FIG. 1 is a schematic block diagram of anexample system 100 that may be configured to provide authorization and authentication services to packaged applications for accessing protected user data in a user's cloud- or network-based accounts, in accordance with the principles of the disclosure herein. - In various implementations,
system 100 may include one or more computing devices 102 (such as desktop computers, notebook computers, netbook computers, tablet computers, smart-phones, etc.). Acomputing device 102 may include one or more processors (e.g., CPU 104), one ormore memories 106, an operating system (e.g., O/S 108), and acache 118. O/S 108 may, for example, be a Chrome operating system or other native operating system (e.g., Windows, Linux, Unix or Mac OS X, etc.).Computing device 102 or O/S 108 may include or support a software or user interface (e.g., a browser or a system-specific client) through whichcomputing device 102 can access applications and resources residing on the web.Computing device 102 may execute a runtime 120 and various applications (e.g., aweb application 110, a packagedapplication 130, a packaged application/identity component application 140, etc.).Web application 110 may run in a tab ofweb browser 112, which may be provided by O/S 108. In contrast, packaged 130 and 140, which may installed on a hard drive or memory ofapplications computing device 102, may run outside of any web browser in their 132 and 134, respectively.own application containers -
Computing device 102 may be linked via anetwork 190 to one or more servers hosting a user's cloud- or network-based accounts (e.g.,User Accounts server 150, and API/services provider server 160).Server 150 andserver 160 may each include one or more CPUs and memories (e.g.,CPU 152/Memory 154, andCPU 162/Memory 164, respectively). The one or more servers (e.g., User Accounts server 150) may be configured to function as identity providers, for example, under a standard authentication and authorization protocol (e.g. OAuth 2.0) or other custom protocols. -
Server 150 may, for example, include anidentity provider API 180 coupled to anIdentity UI 182.Identity provider API 180 may be configured to receive requests for authentication and authorization (e.g., from client devices such as computing device 102) to access protected user data on the servers.Identity provider API 180 may verify a security token as an alternative to explicitly authenticating a user (e.g., of computing device 102) and authorize requests to access protected user data or accounts on the servers (e.g., server 160).Identity provider UI 182 may be configured to act as an interface betweenidentity provider API 180 and the client device (e.g., computing device 102). - A packaged app (e.g., packaged app 130) installed on
computing device 102 may need access tokens to access protected user data, for example, inUser Accounts server 150 or API/services provider server 160. User Accountsserver 150 or API/services provider server 160 may provide access to the user data and accounts to packagedapp 130 only if the user has authorized or consented to such access. - In accordance with the principles of the present disclosure, a client-side Identity API (e.g., Identity API 170) may be configured to interact with
Identity provider API 180 onserver 150 and serve web-based user consent dialogs (e.g., web-basedconsent UI 300,FIG. 3 ) oncomputing device 102 on which the packaged app (e.g., packaged application 130) operates outside of a web browser. -
Identity API 170, which may be part ofruntime 120 ofcomputing device 120, may be configured to display the web-based consent UI oncomputing device 120.Identity API 170 may display the web-based consent UI in conjunction with anidentity component application 140, which is also installed oncomputing device 120. In an implementation, the consent UI may be displayed in a webview container inidentity component application 140, which may itself be a packaged application. In an alternate implementation, the consent UI may be visually attached to a display of packagedapp 130 itself. -
FIG. 2 schematically shows a structure of anexample runtime 120, which includesIdentity API 170 that is configured to display web-based user consent dialogs for granting a packaged app access to user data or service accounts on network servers, in accordance with the principles of the disclosure herein. Identity API 170 (which may comply with the OAuth 2.0 protocol or other token-based protocol) may be coupled inruntime 120 to a credentials handling system (e.g., credential component 212) that may generate, store, or retrieve the user's login credentials oncomputing device 102. - Generation of the web-based consent UI may be delegated by
identity API 170 to an identity component application 140 (e.g., a JavaScript Chrome application) that is installed oncomputing device 102.Component application 140, which itself may be a packaged application that operates outside a web browser, may be configured to serve a webview of the web-based consent UI (e.g., consent UI 300). Implementing the consent UI with a component application (e.g., component application 140) may allow use of cookie partitioning features that are built into webview Control. -
FIG. 3 , shows anexample consent UI 300, which may be displayed in a system generated window (e.g., awebview container 310 in an identity component application) on the computing device to obtain a user's consent for granting access to protected user data to the packaged application, in accordance with the principles of the disclosure herein. - In an example implementation,
Identity API 170 may be configured so that token requests by a packaged application (e.g., packaged application 130) for access to user data or service accounts may be satisfied in one of three ways: -
- (1) From an in-memory access token cache (e.g.,
cache 118,FIG. 1 ). - (2) By an IssueToken call to an identity provider (e.g., identity provider API 180). This call may either return an access token (e.g., an OAuth token or other token) to the packaged application if the user has previously given consent, or may request that the user be prompted for consent.
- (3) From a web-based UI flow (e.g., under an OAuth 2.0 protocol). The computing device runtime (e.g., runtime 120) may be configured to make a series of calls to exchange its user login access token or other token-based user credential (obtained from credential component 212) for session cookies, and to then invoke a web-based consent UI inside a webview container that is populated with the session cookies. It will be understood that exchange of user login access token for session cookies or credentials may take place under a protocol other than the OAuth 2.0 protocol
- (1) From an in-memory access token cache (e.g.,
-
FIG. 4 is flow diagram which illustrates an example process 400 by which a Chrome packaged application 410 (e.g., Awesome Chrome App) can request an access token, in accordance with the principles of the disclosure herein. Process 400 may include displaying a web-consent UI (e.g., UI 300) to get the access token. It will be noted that some parts of process 400 (e.g., involving communications betweenidentity component application 140 and identity provided UI 182) may comply with or involve standard authentication and authorization protocols (e.g., OAuth2.0 protocol) while other parts of process 400 may take place under a custom protocol other than the standard authentication and authorization protocols. - As shown in the figure, process 400 may involve interactions between packaged application 410 (e.g., Awesome Chrome App),
Chrome runtime 420, which may be a browser process, an authorization provider server 430 (e.g., xyzapis.com which may include Identity provider API 180), an identity provider/user's service account server 440 (e.g., xyz.accounts.com, which may include Identity provider UI 182), andidentity component application 140. It will be understood that 430 and 440, which are shown inservers FIG. 4 , together may be logically equivalent toserver 150, which includes bothIdentity provider API 180 andIdentity provider UI 182 as shown inFIG. 1 . Further, packagedapplication 410 may be registered with OAuthauthorization service provider 430 to get its own client ID (e.g., OAuth2 client ID). - In process 400, packaged
application 410 may issue an access token request (e.g., identity.GetAuthToken) toChrome runtime 420 to get an access token to access the user's service account (e.g., at accounts. xyz.com) (41). Packagedapplication 410 may pass in its OAuth client ID and an array of scopes with the access token request toChrome runtime 420.Chrome runtime 420 may then direct a call for the access token (e.g., oauth.v2.IssueToken) toIdentity Provider API 180 at authorization provider server 430 (e.g., xyz.apis.com) using the user's credentials or token-based user credentials (42). OAuthauthorization provider server 430 may return a response (43), which either includes the requested access token or an indication that user consent is required before the access token can be sent. - If the response includes the requested access token, the access token may be passed to packaged
application 410 by Chrome runtime 420 (not shown). Packagedapplication 410 may then use the requested access token to accompany requests for account information (not shown) directed to, for example, user'sservice account server 440. - If the response indicates that user consent is required, in process 400, the next messages (e.g., 44-46) issued or received by
runtime 420 may conform to an “exchange” protocol established with the Identity Provider to exchange token based-credentials for cookie-based credentials, which can be used in subsequent HTML- or web-based UI following, for example, the OAuth protocol. Under an example exchange protocol established with the Identity Provider, if the response indicates that user consent is required,Chrome runtime 420 may issue a call (44) (e.g., using an OAuthlogin string/OAuthLogin?issueuberauth=1) accompanied by the Chrome client ID and the user's login access token to identity provider/user'sservice account server 440. User'sservice account server 440 may respond by returning an uberauth token to Chrome runtime 420 (45). The uberauth token may allowChrome runtime 420 to connect to any major cloud-service platforms using a simple interface while complying with, for example, either OAuth 1.0 or OAuth 2.0 standards. - Next, to set up a user consent dialog in webview,
Chrome runtime 420 may send a MergeSession URL instruction (46) toidentity component application 140.Identity component application 140 may then create a window containing a <webview>control (47), pointed at the MergeSession URL, with a continuation URL pointed to the OAuth authorization URL for Awesome Chrome App (e.g., (request type=token;redirect url=https://<awesome-chrome-app-id>.chromiumapp.org/oauth callback)).Identity component application 140 may present a web-based scope approval UI (e.g., UI 300) in <webview> oncomputing device 102. The presented web-based scope approval UI, may have multiple approval steps. The user may then proceed through the web-based approval flow displayed in <webview> to grant or authorize access.Identity component application 140 may intercept the redirect to chromiumapp.org and parse the redirect URL (48) to extract an access token (if present), before a final result (i.e., an access token or error) is returned to packaged application 410 (49). -
FIG. 5 shows anexample method 500, which may be used to obtain user consent for exposing the user's data in the user's cloud- or network-based accounts to an application, in accordance with the principles of the disclosure herein. The application may be a packaged natively-operating application (e.g., packaged application 130) running outside a web browser on a computing device. The computing device may include a web OS (e.g., Chrome OS). -
Method 500 may include receiving an application's request for access to a user's cloud- or network-based account (510). The application may be a packaged natively-operating application installed on the user's computing device. Receiving the application's request may involve providing an identity application programming interface (API) to receive and process the application's request. - If there is an outstanding user consent to access by the application to the user's cloud- or network-based account,
method 500 may include returning an access token to the application, the access token enabling access to the user's cloud- or network-based account (520). Conversely, if there is no outstanding user consent to access by the application to the user's cloud- or network-based account,method 500 may include presenting a web-based user consent dialog in a webview container, for example, in an identity component application installed on the user's computing device (530). The web-based consent dialog may require that the user be logged in (e.g., in the computing device or the user's cloud- or network-based account) so that there is a valid login token, which the identity provider can use as a security token to authenticate the user. Further, presenting a web-based user consent dialog in a webview container in theapplication 520 may include having a component application of the identity API serve the user consent dialog in the webview container in the application. The user consent dialog served in the web container may be multiple step user consent dialog covering, for example, a request for varying scopes of authorizations. -
Method 500 may also include, after obtaining user consent, parsing a URL received at the component application (e.g., from the identity provider) to extract an access token for the packaged application to access to the user's cloud- or network-based account (540). -
FIG. 6 shows anotherexample method 600 for getting a user's consent to provide access to an application to the user's cloud- or network-based account, in accordance with the principles of the disclosure herein. The application may be a packaged application (e.g., packaged application 130) running outside a web browser on a computing device (e.g., computing device 120). The computing device may have a web OS and a computing device runtime that is a browser process. -
Method 600 may include providing an identity application programming interface (API) in the computing device runtime for communication with an identity provider (610).Method 600 may further include providing an identity component application configured to serve a user consent UI in a webview container on the computing device (620). The identity API may be coupled to the identity component application, which may be another packaged application installed on the computing device. - The identity provider and identity API/computing device runtime may exchange messages with each other under a custom “exchange” protocol for translating token-based credentials into session cookie credentials.
Method 600 may, for example, further include configuring the identity API/computing device runtime to issue an OAuthlogin call to the identity provider and receive an uberauth token in return from the identity provider (630), and send a MergeSession URL instruction to the identity component application (640). - With respect to the identity component application,
method 600 includes configuring the identity component application to create a window containing a webview control pointed at the MergeSession URL, with a continuation URL pointed to the OAuth authorization URL for the application, to present a web-based scope approval UI or consent UI in webview in the component application on the computing device, and to intercept and parse a redirect URL to extract an access token for the application (650). - As noted earlier for
method 500,method 600 also assumes that the user is logged in and that there is valid login token associated with a user profile for the identity provider to authenticate the user when the application runs. If for any reason there is no valid login token (e.g., the user may have revoked their login refresh token), then a sign-in dialog may be invoked to give the user an opportunity to login before the web-based scope approval dialog is presented in webview on computing device. The sign-in dialog may, for example, be presented as a sign-in screen in the web browser. After the sign-in dialog closes, the consent UI from the identity component application may open (if required) in webview. - A computer system may be deployed to practice process 400,
method 500 ormethod 600 in conjunction with a non-transitory computer-readable storage medium having instructions stored thereon. The instructions when executed by one or more microprocessors may cause the computer system to obtain access tokens for an application (e.g., a packaged application) as described with reference toFIGS. 4-6 . -
FIG. 7 shows an example of ageneric computer device 700 and a genericmobile computer device 750, which may be used with the techniques described here.Computing device 700 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.Computing device 750 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document. -
Computing device 700 includes aprocessor 702,memory 704, astorage device 706, a high-speed interface 708 connecting tomemory 704 and high-speed expansion ports 710, and alow speed interface 712 connecting tolow speed bus 714 andstorage device 706. Each of the 702, 704, 706, 708, 710, and 712, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate. Thecomponents processor 702 can process instructions for execution within thecomputing device 700, including instructions stored in thememory 704 or on thestorage device 706 to display graphical information for a GUI on an external input/output device, such asdisplay 716 coupled tohigh speed interface 708. In other implementations, multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 700 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system). - The
memory 704 stores information within thecomputing device 700. In one implementation, thememory 704 is a volatile memory unit or units. In another implementation, thememory 704 is a non-volatile memory unit or units. Thememory 704 may also be another form of computer-readable medium, such as a magnetic or optical disk. - The
storage device 706 is capable of providing mass storage for thecomputing device 700. In one implementation, thestorage device 706 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as thememory 704, thestorage device 706, or memory onprocessor 702. - The
high speed controller 708 manages bandwidth-intensive operations for thecomputing device 700, while thelow speed controller 712 manages lower bandwidth-intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 708 is coupled tomemory 704, display 716 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 710, which may accept various expansion cards (not shown). In the implementation, low-speed controller 712 is coupled tostorage device 706 and low-speed expansion port 714. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter. - The
computing device 700 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as astandard server 720, or multiple times in a group of such servers. It may also be implemented as part of arack server system 724. In addition, it may be implemented in a personal computer such as alaptop computer 722. Alternatively, components fromcomputing device 700 may be combined with other components in a mobile device (not shown), such asdevice 750. Each of such devices may contain one or more of 700, 750, and an entire system may be made up ofcomputing device 700, 750 communicating with each other.multiple computing devices -
Computing device 750 includes aprocessor 752,memory 764, and an input/output device such as adisplay 754, acommunication interface 766, and atransceiver 768, among other components. Thedevice 750 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the 750, 752, 764, 754, 766, and 768, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.components - The
processor 752 can execute instructions within thecomputing device 750, including instructions stored in thememory 764. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processors. The processor may provide, for example, for coordination of the other components of thedevice 750, such as control of user interfaces, applications run bydevice 750, and wireless communication bydevice 750. -
Processor 752 may communicate with a user throughcontrol interface 758 anddisplay interface 756 coupled to adisplay 754. Thedisplay 754 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. Thedisplay interface 756 may comprise appropriate circuitry for driving thedisplay 754 to present graphical and other information to a user. Thecontrol interface 758 may receive commands from a user and convert them for submission to theprocessor 752. In addition, anexternal interface 762 may be provided in communication withprocessor 752, so as to enable near area communication ofdevice 750 with other devices.External interface 762 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used. - The
memory 764 stores information within thecomputing device 750. Thememory 764 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units.Expansion memory 774 may also be provided and connected todevice 750 throughexpansion interface 772, which may include, for example, a SIMM (Single In Line Memory Module) card interface.Such expansion memory 774 may provide extra storage space fordevice 750, or may also store applications or other information fordevice 750. Specifically,expansion memory 774 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example,expansion memory 774 may be provided as a security module fordevice 750, and may be programmed with instructions that permit secure use ofdevice 750. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner. - The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the
memory 764,expansion memory 774, or memory onprocessor 752 that may be received, for example, overtransceiver 768 orexternal interface 762. -
Device 750 may communicate wirelessly throughcommunication interface 766, which may include digital signal processing circuitry where necessary.Communication interface 766 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 768. In addition, short-range communication may occur, such as using a Bluetooth, Wi-Fi, or other such transceiver (not shown). In addition, GPS (Global Positioning System)receiver module 770 may provide additional navigation- and location-related wireless data todevice 750, which may be used as appropriate by applications running ondevice 750. -
Device 750 may also communicate audibly usingaudio codec 760, which may receive spoken information from a user and convert it to usable digital information.Audio codec 760 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset ofdevice 750. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating ondevice 750. - The
computing device 750 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as acellular telephone 780. It may also be implemented as part of asmart phone 782, personal digital assistant, or other similar mobile device. - Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” “computer-readable medium” refers to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
- To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- The systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
- The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the disclosure herein.
- In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.
Claims (35)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/062,063 US20150121462A1 (en) | 2013-10-24 | 2013-10-24 | Identity application programming interface |
| PCT/US2014/061558 WO2015061307A1 (en) | 2013-10-24 | 2014-10-21 | Identity application programming interface |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/062,063 US20150121462A1 (en) | 2013-10-24 | 2013-10-24 | Identity application programming interface |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20150121462A1 true US20150121462A1 (en) | 2015-04-30 |
Family
ID=51842930
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/062,063 Abandoned US20150121462A1 (en) | 2013-10-24 | 2013-10-24 | Identity application programming interface |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20150121462A1 (en) |
| WO (1) | WO2015061307A1 (en) |
Cited By (160)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20160315930A1 (en) * | 2015-04-24 | 2016-10-27 | Somansa Co., Ltd. | Cloud data discovery method and system for private information protection and data loss prevention in enterprise cloud service environment |
| US20170141953A1 (en) * | 2015-11-17 | 2017-05-18 | Sap Portals Israel Ltd. | Error and special case handling using cloud account |
| US20170150917A1 (en) * | 2015-11-29 | 2017-06-01 | my.Flow, Inc. | Automatic detection of human physiological phenomena |
| US9716724B1 (en) * | 2014-02-24 | 2017-07-25 | Skyhigh Networks, Inc. | Cloud data loss prevention system |
| CN107092468A (en) * | 2016-02-17 | 2017-08-25 | 腾讯科技(深圳)有限公司 | A kind of message display method and device |
| CN107276991A (en) * | 2017-05-26 | 2017-10-20 | 努比亚技术有限公司 | Load method, equipment and the computer-readable recording medium of Web page |
| US9824351B2 (en) | 2015-05-27 | 2017-11-21 | Bank Of America Corporation | Providing access to account information using authentication tokens |
| US9830591B2 (en) | 2015-05-27 | 2017-11-28 | Bank Of America Corporation | Providing access to account information using authentication tokens |
| US9935934B1 (en) * | 2014-03-31 | 2018-04-03 | Microstrategy Incorporated | Token management |
| US20180152430A1 (en) * | 2016-11-29 | 2018-05-31 | Ricoh Company, Ltd. | Information processing system, information processing terminal, and information processing method |
| US20180183837A1 (en) * | 2013-12-04 | 2018-06-28 | Amazon Technologies, Inc. | Access control using impersonization |
| US10044701B2 (en) * | 2016-05-24 | 2018-08-07 | Vantiv, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US10084785B2 (en) | 2015-12-13 | 2018-09-25 | Microsoft Technology Licensing, Llc | Connecting and retrieving security tokens based on context |
| US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
| US20180295118A1 (en) * | 2017-04-07 | 2018-10-11 | Microsoft Technology Licensing, Llc | Credential-based proactive discovery of remote micro-services by spreadsheet applications |
| US20190058776A1 (en) * | 2017-08-21 | 2019-02-21 | Genband Us Llc | Web application configuration management |
| US20190068533A1 (en) * | 2017-08-28 | 2019-02-28 | Microsoft Technology Licensing, Llc | Acquiring attachments from data storage providers for use in electronic communications |
| CN109688156A (en) * | 2019-01-10 | 2019-04-26 | 浪潮软件股份有限公司 | It is a kind of for the HTTP Token authentication method of CMSP and connection method |
| US10397083B2 (en) * | 2015-03-20 | 2019-08-27 | Yahoo Japan Corporation | Terminal device identification systems, methods, and programs |
| US10397199B2 (en) * | 2016-12-09 | 2019-08-27 | Microsoft Technology Licensing, Llc | Integrated consent system |
| US10454915B2 (en) * | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
| US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
| US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
| US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
| US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
| US10616224B2 (en) | 2016-09-16 | 2020-04-07 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
| US20200211098A1 (en) * | 2018-12-26 | 2020-07-02 | Paypal, Inc. | Account access system |
| US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
| US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
| US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
| US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
| US10862979B2 (en) | 2017-04-07 | 2020-12-08 | Microsoft Technology Licensing, Llc | Techniques for supporting remote micro-services as native functions in spreadsheet applications |
| US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
| US10937025B1 (en) | 2015-01-15 | 2021-03-02 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US10990974B1 (en) | 2015-01-15 | 2021-04-27 | Wells Fargo Bank, N.A. | Identity verification services and user information provision via application programming interface |
| US10997654B1 (en) | 2015-01-15 | 2021-05-04 | Wells Fargo Bank, N.A. | Identity verification services through external entities via application programming interface |
| US11023555B2 (en) | 2016-09-16 | 2021-06-01 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
| CN112968903A (en) * | 2021-03-08 | 2021-06-15 | 浪潮云信息技术股份公司 | Integrated authentication integration method based on account binding |
| US11044092B1 (en) | 2019-06-21 | 2021-06-22 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11093912B1 (en) | 2018-12-10 | 2021-08-17 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US11106515B1 (en) | 2017-12-28 | 2021-08-31 | Wells Fargo Bank, N.A. | Systems and methods for multi-platform product integration |
| US11138299B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11144675B2 (en) | 2018-09-07 | 2021-10-12 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US11144670B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
| US11151233B2 (en) | 2016-06-10 | 2021-10-19 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11157654B2 (en) | 2018-09-07 | 2021-10-26 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
| US11157600B2 (en) | 2016-06-10 | 2021-10-26 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11182501B2 (en) | 2016-06-10 | 2021-11-23 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
| US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US20210377240A1 (en) * | 2020-06-02 | 2021-12-02 | FLEX Integration LLC | System and methods for tokenized hierarchical secured asset distribution |
| US11195134B2 (en) | 2016-06-10 | 2021-12-07 | OneTrust, LLC | Privacy management systems and methods |
| US11200341B2 (en) | 2016-06-10 | 2021-12-14 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11210420B2 (en) | 2016-06-10 | 2021-12-28 | OneTrust, LLC | Data subject access request processing systems and related methods |
| CN113868602A (en) * | 2021-09-06 | 2021-12-31 | 浙江大华技术股份有限公司 | Application authorization method, distributed cluster system, electronic device and storage medium |
| US11222139B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
| US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
| US11222309B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11228620B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
| US11238390B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Privacy management systems and methods |
| US11240273B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
| US20220038282A1 (en) * | 2020-07-28 | 2022-02-03 | Citrix Systems, Inc. | Secure Token Transfer between Untrusted Entities |
| US11244071B2 (en) | 2016-06-10 | 2022-02-08 | OneTrust, LLC | Data processing systems for use in automatically generating, populating, and submitting data subject access requests |
| US11244072B2 (en) | 2016-06-10 | 2022-02-08 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US11244367B2 (en) | 2016-04-01 | 2022-02-08 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
| US11252573B1 (en) | 2019-08-04 | 2022-02-15 | Acceptto Corporation | System and method for rapid check-in and inheriting trust using a mobile device |
| US11256777B2 (en) | 2016-06-10 | 2022-02-22 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
| US11277448B2 (en) | 2016-06-10 | 2022-03-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US20220103531A1 (en) * | 2019-11-27 | 2022-03-31 | Worldpay, Llc | Methods and systems for secure cross-platform token exchange |
| US11295316B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
| US11294939B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
| US11301796B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
| US11301589B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11308435B2 (en) | 2016-06-10 | 2022-04-19 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
| US11321712B1 (en) * | 2014-03-29 | 2022-05-03 | Acceptto Corporation | System and method for on-demand level of assurance depending on a predetermined authentication system |
| US11328240B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
| US11328092B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
| US11329998B1 (en) | 2020-08-31 | 2022-05-10 | Secureauth Corporation | Identification (ID) proofing and risk engine integration system and method |
| US11334681B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Application privacy scanning systems and related meihods |
| US11336697B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11334682B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US11341447B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Privacy management systems and methods |
| US11343284B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
| US11347889B2 (en) | 2016-06-10 | 2022-05-31 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
| US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US11361057B2 (en) | 2016-06-10 | 2022-06-14 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11366786B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing systems for processing data subject access requests |
| US11367323B1 (en) | 2018-01-16 | 2022-06-21 | Secureauth Corporation | System and method for secure pair and unpair processing using a dynamic level of assurance (LOA) score |
| US11366909B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11373007B2 (en) | 2017-06-16 | 2022-06-28 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
| US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US11397819B2 (en) | 2020-11-06 | 2022-07-26 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
| US11403377B2 (en) | 2016-06-10 | 2022-08-02 | OneTrust, LLC | Privacy management systems and methods |
| US11410228B1 (en) | 2015-01-15 | 2022-08-09 | Wells Fargo Bank, N.A. | Identity verification via application programming interface |
| US11409908B2 (en) | 2016-06-10 | 2022-08-09 | OneTrust, LLC | Data processing systems and methods for populating and maintaining a centralized database of personal data |
| US11416590B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11418516B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Consent conversion optimization systems and related methods |
| US11416636B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing consent management systems and related methods |
| US11416109B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
| US11416634B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11416589B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11418492B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
| US11416798B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
| US11423135B1 (en) * | 2019-07-31 | 2022-08-23 | Intuit Inc. | Offline processing using on-demand access tokens |
| US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
| US11429708B2 (en) * | 2014-03-04 | 2022-08-30 | Adobe Inc. | Authentication for online content using an access token |
| US11436373B2 (en) | 2020-09-15 | 2022-09-06 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
| US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11442906B2 (en) | 2021-02-04 | 2022-09-13 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
| US11444976B2 (en) | 2020-07-28 | 2022-09-13 | OneTrust, LLC | Systems and methods for automatically blocking the use of tracking tools |
| US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
| US11475165B2 (en) | 2020-08-06 | 2022-10-18 | OneTrust, LLC | Data processing systems and methods for automatically redacting unstructured data from a data subject access request |
| US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
| US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
| US11494515B2 (en) | 2021-02-08 | 2022-11-08 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
| US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
| US11526624B2 (en) | 2020-09-21 | 2022-12-13 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
| US11533315B2 (en) | 2021-03-08 | 2022-12-20 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
| US11546661B2 (en) | 2021-02-18 | 2023-01-03 | OneTrust, LLC | Selective redaction of media content |
| US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
| US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
| US11562455B1 (en) | 2015-06-05 | 2023-01-24 | Secureauth Corporation | Method and system for identity verification and authorization of request by checking against an active user directory of identity service entities selected by an identity information owner |
| US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
| US11586762B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
| US11601464B2 (en) | 2021-02-10 | 2023-03-07 | OneTrust, LLC | Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system |
| US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
| US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
| US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
| US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11651104B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11651402B2 (en) | 2016-04-01 | 2023-05-16 | OneTrust, LLC | Data processing systems and communication systems and methods for the efficient generation of risk assessments |
| US11675929B2 (en) * | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
| US11676126B1 (en) | 2017-12-28 | 2023-06-13 | Wells Fargo Bank, N.A. | Account open interfaces |
| US11687528B2 (en) | 2021-01-25 | 2023-06-27 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
| US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
| US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
| US11775348B2 (en) | 2021-02-17 | 2023-10-03 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
| US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
| US11797528B2 (en) | 2020-07-08 | 2023-10-24 | OneTrust, LLC | Systems and methods for targeted data discovery |
| US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
| US11921894B2 (en) | 2016-06-10 | 2024-03-05 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
| US11995619B1 (en) | 2017-12-28 | 2024-05-28 | Wells Fargo Bank, N.A. | Account open interfaces |
| US12035136B1 (en) | 2020-08-01 | 2024-07-09 | Secureauth Corporation | Bio-behavior system and method |
| US12045266B2 (en) | 2016-06-10 | 2024-07-23 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US12052289B2 (en) | 2016-06-10 | 2024-07-30 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US12086808B1 (en) | 2018-03-11 | 2024-09-10 | Secureauth Corporation | System and method for using user context and behavior for providing access to a secure computer network |
| US12118121B2 (en) | 2016-06-10 | 2024-10-15 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US12136055B2 (en) | 2016-06-10 | 2024-11-05 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US12153704B2 (en) | 2021-08-05 | 2024-11-26 | OneTrust, LLC | Computing platform for facilitating data exchange among computing environments |
| US12205082B2 (en) | 2020-10-01 | 2025-01-21 | Mastercard International Incorporated | Systems and methods for securely opening APIS with cardholder authentication and consent |
| US12265896B2 (en) | 2020-10-05 | 2025-04-01 | OneTrust, LLC | Systems and methods for detecting prejudice bias in machine-learning models |
| US12299065B2 (en) | 2016-06-10 | 2025-05-13 | OneTrust, LLC | Data processing systems and methods for dynamically determining data processing consent configurations |
| US12381915B2 (en) | 2016-06-10 | 2025-08-05 | OneTrust, LLC | Data processing systems and methods for performing assessments and monitoring of new versions of computer code for compliance |
| US20250330469A1 (en) * | 2024-04-17 | 2025-10-23 | Red Hat, Inc. | Remote login resource access control using a container |
| US12591828B2 (en) | 2016-06-10 | 2026-03-31 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114327389B (en) * | 2021-12-24 | 2023-03-24 | 商派软件有限公司 | Application management method, account management plug-in, and application management system |
| WO2025059588A1 (en) * | 2023-09-14 | 2025-03-20 | Pay-I Incorporated | Secure management of consumption of computing resources |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110213956A1 (en) * | 2010-02-27 | 2011-09-01 | Prakash Umasankar Mukkara | Techniques for managing a secure communication session |
| US20120144501A1 (en) * | 2010-12-03 | 2012-06-07 | Salesforce.Com, Inc. | Regulating access to protected data resources using upgraded access tokens |
| US8613055B1 (en) * | 2013-02-22 | 2013-12-17 | Ping Identity Corporation | Methods and apparatus for selecting an authentication mode at time of issuance of an access token |
| US20140315639A1 (en) * | 2011-12-16 | 2014-10-23 | Zynga Inc. | Providing social network content in games |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9043886B2 (en) * | 2011-09-29 | 2015-05-26 | Oracle International Corporation | Relying party platform/framework for access management infrastructures |
-
2013
- 2013-10-24 US US14/062,063 patent/US20150121462A1/en not_active Abandoned
-
2014
- 2014-10-21 WO PCT/US2014/061558 patent/WO2015061307A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110213956A1 (en) * | 2010-02-27 | 2011-09-01 | Prakash Umasankar Mukkara | Techniques for managing a secure communication session |
| US20120144501A1 (en) * | 2010-12-03 | 2012-06-07 | Salesforce.Com, Inc. | Regulating access to protected data resources using upgraded access tokens |
| US20140315639A1 (en) * | 2011-12-16 | 2014-10-23 | Zynga Inc. | Providing social network content in games |
| US8613055B1 (en) * | 2013-02-22 | 2013-12-17 | Ping Identity Corporation | Methods and apparatus for selecting an authentication mode at time of issuance of an access token |
Cited By (256)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11431757B2 (en) | 2013-12-04 | 2022-08-30 | Amazon Technologies, Inc. | Access control using impersonization |
| US20180183837A1 (en) * | 2013-12-04 | 2018-06-28 | Amazon Technologies, Inc. | Access control using impersonization |
| US10673906B2 (en) * | 2013-12-04 | 2020-06-02 | Amazon Technologies, Inc. | Access control using impersonization |
| US9716724B1 (en) * | 2014-02-24 | 2017-07-25 | Skyhigh Networks, Inc. | Cloud data loss prevention system |
| US11429708B2 (en) * | 2014-03-04 | 2022-08-30 | Adobe Inc. | Authentication for online content using an access token |
| US11321712B1 (en) * | 2014-03-29 | 2022-05-03 | Acceptto Corporation | System and method for on-demand level of assurance depending on a predetermined authentication system |
| US11657396B1 (en) * | 2014-03-29 | 2023-05-23 | Secureauth Corporation | System and method for bluetooth proximity enforced authentication |
| US9935934B1 (en) * | 2014-03-31 | 2018-04-03 | Microstrategy Incorporated | Token management |
| US10990974B1 (en) | 2015-01-15 | 2021-04-27 | Wells Fargo Bank, N.A. | Identity verification services and user information provision via application programming interface |
| US11238421B1 (en) * | 2015-01-15 | 2022-02-01 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US12572933B2 (en) | 2015-01-15 | 2026-03-10 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US11410228B1 (en) | 2015-01-15 | 2022-08-09 | Wells Fargo Bank, N.A. | Identity verification via application programming interface |
| US10997654B1 (en) | 2015-01-15 | 2021-05-04 | Wells Fargo Bank, N.A. | Identity verification services through external entities via application programming interface |
| US10937025B1 (en) | 2015-01-15 | 2021-03-02 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US12217305B1 (en) | 2015-01-15 | 2025-02-04 | Wells Fargo Bank, N.A. | Identity verification services through external entities via application programming interface |
| US12062025B1 (en) * | 2015-01-15 | 2024-08-13 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US11868977B1 (en) | 2015-01-15 | 2024-01-09 | Wells Fargo Bank, N.A. | Payment services via application programming interface |
| US11847690B1 (en) | 2015-01-15 | 2023-12-19 | Wells Fargo Bank, N.A. | Identity verification services with identity score through external entities via application programming interface |
| US11475514B1 (en) | 2015-01-15 | 2022-10-18 | Wells Fargo Bank, N.A. | Identity verification services through external entities via application programming interface |
| US10397083B2 (en) * | 2015-03-20 | 2019-08-27 | Yahoo Japan Corporation | Terminal device identification systems, methods, and programs |
| US20160315930A1 (en) * | 2015-04-24 | 2016-10-27 | Somansa Co., Ltd. | Cloud data discovery method and system for private information protection and data loss prevention in enterprise cloud service environment |
| US9824351B2 (en) | 2015-05-27 | 2017-11-21 | Bank Of America Corporation | Providing access to account information using authentication tokens |
| US9830591B2 (en) | 2015-05-27 | 2017-11-28 | Bank Of America Corporation | Providing access to account information using authentication tokens |
| US11562455B1 (en) | 2015-06-05 | 2023-01-24 | Secureauth Corporation | Method and system for identity verification and authorization of request by checking against an active user directory of identity service entities selected by an identity information owner |
| US10270670B2 (en) * | 2015-11-17 | 2019-04-23 | Sap Portals Israel Ltd. | Error and special case handling using cloud account |
| US20170141953A1 (en) * | 2015-11-17 | 2017-05-18 | Sap Portals Israel Ltd. | Error and special case handling using cloud account |
| US10905371B2 (en) * | 2015-11-29 | 2021-02-02 | my.Flow, Inc. | Automatic detection of human physiological phenomena |
| US20170150917A1 (en) * | 2015-11-29 | 2017-06-01 | my.Flow, Inc. | Automatic detection of human physiological phenomena |
| US10084785B2 (en) | 2015-12-13 | 2018-09-25 | Microsoft Technology Licensing, Llc | Connecting and retrieving security tokens based on context |
| CN107092468A (en) * | 2016-02-17 | 2017-08-25 | 腾讯科技(深圳)有限公司 | A kind of message display method and device |
| US11244367B2 (en) | 2016-04-01 | 2022-02-08 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
| US12288233B2 (en) | 2016-04-01 | 2025-04-29 | OneTrust, LLC | Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design |
| US11651402B2 (en) | 2016-04-01 | 2023-05-16 | OneTrust, LLC | Data processing systems and communication systems and methods for the efficient generation of risk assessments |
| US10044701B2 (en) * | 2016-05-24 | 2018-08-07 | Vantiv, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US12452228B2 (en) * | 2016-05-24 | 2025-10-21 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US20220407850A1 (en) * | 2016-05-24 | 2022-12-22 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US10382425B2 (en) * | 2016-05-24 | 2019-08-13 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US11736467B2 (en) * | 2016-05-24 | 2023-08-22 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US20230353552A1 (en) * | 2016-05-24 | 2023-11-02 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US11463427B2 (en) * | 2016-05-24 | 2022-10-04 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US10931657B2 (en) * | 2016-05-24 | 2021-02-23 | Worldpay, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
| US11416798B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
| US11347889B2 (en) | 2016-06-10 | 2022-05-31 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11636171B2 (en) | 2016-06-10 | 2023-04-25 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
| US11645418B2 (en) | 2016-06-10 | 2023-05-09 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
| US12609938B2 (en) | 2016-06-10 | 2026-04-21 | One Trust, LLC | Consent conversion optimization systems and related methods |
| US12591828B2 (en) | 2016-06-10 | 2026-03-31 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11609939B2 (en) | 2016-06-10 | 2023-03-21 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
| US11645353B2 (en) | 2016-06-10 | 2023-05-09 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US11651106B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11586762B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for auditing data request compliance |
| US11586700B2 (en) | 2016-06-10 | 2023-02-21 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
| US12412140B2 (en) | 2016-06-10 | 2025-09-09 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
| US12381915B2 (en) | 2016-06-10 | 2025-08-05 | OneTrust, LLC | Data processing systems and methods for performing assessments and monitoring of new versions of computer code for compliance |
| US12299065B2 (en) | 2016-06-10 | 2025-05-13 | OneTrust, LLC | Data processing systems and methods for dynamically determining data processing consent configurations |
| US11562097B2 (en) | 2016-06-10 | 2023-01-24 | OneTrust, LLC | Data processing systems for central consent repository and related methods |
| US11651104B2 (en) | 2016-06-10 | 2023-05-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11138299B2 (en) | 2016-06-10 | 2021-10-05 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US12216794B2 (en) | 2016-06-10 | 2025-02-04 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
| US11144670B2 (en) | 2016-06-10 | 2021-10-12 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
| US11151233B2 (en) | 2016-06-10 | 2021-10-19 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11558429B2 (en) | 2016-06-10 | 2023-01-17 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
| US11157600B2 (en) | 2016-06-10 | 2021-10-26 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11556672B2 (en) | 2016-06-10 | 2023-01-17 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US11182501B2 (en) | 2016-06-10 | 2021-11-23 | OneTrust, LLC | Data processing systems for fulfilling data subject access requests and related methods |
| US11188862B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Privacy management systems and methods |
| US11188615B2 (en) | 2016-06-10 | 2021-11-30 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US12204564B2 (en) | 2016-06-10 | 2025-01-21 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
| US11195134B2 (en) | 2016-06-10 | 2021-12-07 | OneTrust, LLC | Privacy management systems and methods |
| US11200341B2 (en) | 2016-06-10 | 2021-12-14 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11210420B2 (en) | 2016-06-10 | 2021-12-28 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US12190330B2 (en) | 2016-06-10 | 2025-01-07 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
| US11222139B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
| US11222142B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
| US11222309B2 (en) | 2016-06-10 | 2022-01-11 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11228620B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11227247B2 (en) | 2016-06-10 | 2022-01-18 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
| US11550897B2 (en) | 2016-06-10 | 2023-01-10 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11238390B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Privacy management systems and methods |
| US11240273B2 (en) | 2016-06-10 | 2022-02-01 | OneTrust, LLC | Data processing and scanning systems for generating and populating a data inventory |
| US12164667B2 (en) | 2016-06-10 | 2024-12-10 | OneTrust, LLC | Application privacy scanning systems and related methods |
| US11244071B2 (en) | 2016-06-10 | 2022-02-08 | OneTrust, LLC | Data processing systems for use in automatically generating, populating, and submitting data subject access requests |
| US11244072B2 (en) | 2016-06-10 | 2022-02-08 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US11551174B2 (en) | 2016-06-10 | 2023-01-10 | OneTrust, LLC | Privacy management systems and methods |
| US12158975B2 (en) * | 2016-06-10 | 2024-12-03 | OneTrust, LLC | Data processing consent sharing systems and related methods |
| US11544667B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11256777B2 (en) | 2016-06-10 | 2022-02-22 | OneTrust, LLC | Data processing user interface monitoring systems and related methods |
| US11544405B2 (en) | 2016-06-10 | 2023-01-03 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US11277448B2 (en) | 2016-06-10 | 2022-03-15 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US12147578B2 (en) | 2016-06-10 | 2024-11-19 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11295316B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems for identity validation for consumer rights requests and related methods |
| US11294939B2 (en) | 2016-06-10 | 2022-04-05 | OneTrust, LLC | Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software |
| US11301796B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Data processing systems and methods for customizing privacy training |
| US11301589B2 (en) | 2016-06-10 | 2022-04-12 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11675929B2 (en) * | 2016-06-10 | 2023-06-13 | OneTrust, LLC | Data processing consent sharing systems and related methods |
| US11308435B2 (en) | 2016-06-10 | 2022-04-19 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US12136055B2 (en) | 2016-06-10 | 2024-11-05 | OneTrust, LLC | Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques |
| US12118121B2 (en) | 2016-06-10 | 2024-10-15 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US11328240B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
| US11328092B2 (en) | 2016-06-10 | 2022-05-10 | OneTrust, LLC | Data processing systems for processing and managing data subject access in a distributed environment |
| US12086748B2 (en) | 2016-06-10 | 2024-09-10 | OneTrust, LLC | Data processing systems for assessing readiness for responding to privacy-related incidents |
| US11334681B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Application privacy scanning systems and related meihods |
| US11336697B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11334682B2 (en) | 2016-06-10 | 2022-05-17 | OneTrust, LLC | Data subject access request processing systems and related methods |
| US11341447B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Privacy management systems and methods |
| US11343284B2 (en) | 2016-06-10 | 2022-05-24 | OneTrust, LLC | Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance |
| US11625502B2 (en) | 2016-06-10 | 2023-04-11 | OneTrust, LLC | Data processing systems for identifying and modifying processes that are subject to data subject access requests |
| US11354435B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for data testing to confirm data deletion and related methods |
| US11354434B2 (en) | 2016-06-10 | 2022-06-07 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US11361057B2 (en) | 2016-06-10 | 2022-06-14 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11366786B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing systems for processing data subject access requests |
| US11520928B2 (en) | 2016-06-10 | 2022-12-06 | OneTrust, LLC | Data processing systems for generating personal data receipts and related methods |
| US11366909B2 (en) | 2016-06-10 | 2022-06-21 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US20230195939A1 (en) * | 2016-06-10 | 2023-06-22 | OneTrust, LLC | Data processing consent sharing systems and related methods |
| US12052289B2 (en) | 2016-06-10 | 2024-07-30 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11392720B2 (en) | 2016-06-10 | 2022-07-19 | OneTrust, LLC | Data processing systems for verification of consent and notice processing and related methods |
| US12045266B2 (en) | 2016-06-10 | 2024-07-23 | OneTrust, LLC | Data processing systems for generating and populating a data inventory |
| US11403377B2 (en) | 2016-06-10 | 2022-08-02 | OneTrust, LLC | Privacy management systems and methods |
| US12026651B2 (en) | 2016-06-10 | 2024-07-02 | OneTrust, LLC | Data processing systems and methods for providing training in a vendor procurement process |
| US11409908B2 (en) | 2016-06-10 | 2022-08-09 | OneTrust, LLC | Data processing systems and methods for populating and maintaining a centralized database of personal data |
| US11416590B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11416576B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US11418516B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Consent conversion optimization systems and related methods |
| US11416636B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing consent management systems and related methods |
| US11416109B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Automated data processing systems and methods for automatically processing data subject access requests using a chatbot |
| US11416634B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Consent receipt management systems and related methods |
| US11416589B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing and scanning systems for assessing vendor risk |
| US11418492B2 (en) | 2016-06-10 | 2022-08-16 | OneTrust, LLC | Data processing systems and methods for using a data model to select a target data asset in a data migration |
| US11960564B2 (en) | 2016-06-10 | 2024-04-16 | OneTrust, LLC | Data processing systems and methods for automatically blocking the use of tracking tools |
| US11921894B2 (en) | 2016-06-10 | 2024-03-05 | OneTrust, LLC | Data processing systems for generating and populating a data inventory for processing data access requests |
| US11488085B2 (en) | 2016-06-10 | 2022-11-01 | OneTrust, LLC | Questionnaire response automation for compliance management |
| US11481710B2 (en) | 2016-06-10 | 2022-10-25 | OneTrust, LLC | Privacy management systems and methods |
| US11475136B2 (en) | 2016-06-10 | 2022-10-18 | OneTrust, LLC | Data processing systems for data transfer risk identification and related methods |
| US11868507B2 (en) | 2016-06-10 | 2024-01-09 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
| US11438386B2 (en) | 2016-06-10 | 2022-09-06 | OneTrust, LLC | Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods |
| US11847182B2 (en) | 2016-06-10 | 2023-12-19 | OneTrust, LLC | Data processing consent capture systems and related methods |
| US11727141B2 (en) | 2016-06-10 | 2023-08-15 | OneTrust, LLC | Data processing systems and methods for synching privacy-related user consent across multiple computing devices |
| US11449633B2 (en) | 2016-06-10 | 2022-09-20 | OneTrust, LLC | Data processing systems and methods for automatic discovery and assessment of mobile software development kits |
| US11461722B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Questionnaire response automation for compliance management |
| US11461500B2 (en) | 2016-06-10 | 2022-10-04 | OneTrust, LLC | Data processing systems for cookie compliance testing with website scanning and related methods |
| US11468386B2 (en) | 2016-06-10 | 2022-10-11 | OneTrust, LLC | Data processing systems and methods for bundled privacy policies |
| US11468196B2 (en) | 2016-06-10 | 2022-10-11 | OneTrust, LLC | Data processing systems for validating authorization for personal data collection, storage, and processing |
| US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
| US11258797B2 (en) | 2016-08-31 | 2022-02-22 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
| US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
| US10846390B2 (en) | 2016-09-14 | 2020-11-24 | Oracle International Corporation | Single sign-on functionality for a multi-tenant identity and data security management cloud service |
| US10511589B2 (en) | 2016-09-14 | 2019-12-17 | Oracle International Corporation | Single logout functionality for a multi-tenant identity and data security management cloud service |
| US11258786B2 (en) | 2016-09-14 | 2022-02-22 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
| US10484243B2 (en) | 2016-09-16 | 2019-11-19 | Oracle International Corporation | Application management for a multi-tenant identity cloud service |
| US10616224B2 (en) | 2016-09-16 | 2020-04-07 | Oracle International Corporation | Tenant and service management for a multi-tenant identity and data security management cloud service |
| US11023555B2 (en) | 2016-09-16 | 2021-06-01 | Oracle International Corporation | Cookie based state propagation for a multi-tenant identity cloud service |
| US10904074B2 (en) | 2016-09-17 | 2021-01-26 | Oracle International Corporation | Composite event handler for a multi-tenant identity cloud service |
| US10785200B2 (en) * | 2016-11-29 | 2020-09-22 | Ricoh Company, Ltd. | Information processing system, information processing terminal, and information processing method for reducing burden of entering a passcode upon signing in to a service |
| US20180152430A1 (en) * | 2016-11-29 | 2018-05-31 | Ricoh Company, Ltd. | Information processing system, information processing terminal, and information processing method |
| US10397199B2 (en) * | 2016-12-09 | 2019-08-27 | Microsoft Technology Licensing, Llc | Integrated consent system |
| US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
| US11169913B2 (en) | 2017-01-20 | 2021-11-09 | Intuit, Inc. | Mock server for testing |
| US11113187B2 (en) | 2017-01-20 | 2021-09-07 | Intuit, Inc. | Mock server for testing |
| US10565098B2 (en) * | 2017-01-20 | 2020-02-18 | Intuit Inc. | Mock server for testing |
| US10657038B1 (en) * | 2017-01-20 | 2020-05-19 | Intuit, Inc. | Mock server for testing |
| US10862979B2 (en) | 2017-04-07 | 2020-12-08 | Microsoft Technology Licensing, Llc | Techniques for supporting remote micro-services as native functions in spreadsheet applications |
| US10791105B2 (en) * | 2017-04-07 | 2020-09-29 | Microsoft Technology Licensing, Llc | Credential-based proactive discovery of remote micro-services by spreadsheet applications |
| US20180295118A1 (en) * | 2017-04-07 | 2018-10-11 | Microsoft Technology Licensing, Llc | Credential-based proactive discovery of remote micro-services by spreadsheet applications |
| US10454915B2 (en) * | 2017-05-18 | 2019-10-22 | Oracle International Corporation | User authentication using kerberos with identity cloud service |
| CN107276991A (en) * | 2017-05-26 | 2017-10-20 | 努比亚技术有限公司 | Load method, equipment and the computer-readable recording medium of Web page |
| US11663359B2 (en) | 2017-06-16 | 2023-05-30 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
| US11373007B2 (en) | 2017-06-16 | 2022-06-28 | OneTrust, LLC | Data processing systems for identifying whether cookies contain personally identifying information |
| EP3673364A4 (en) * | 2017-08-21 | 2021-05-12 | Genband US LLC | WEB APPLICATION CONFIGURATION MANAGEMENT |
| WO2019040096A1 (en) * | 2017-08-21 | 2019-02-28 | Genband Us Llc | Web application configuration management |
| US10805419B2 (en) * | 2017-08-21 | 2020-10-13 | Ribbon Communications Operating Company, Inc. | Web application configuration management |
| US20190058776A1 (en) * | 2017-08-21 | 2019-02-21 | Genband Us Llc | Web application configuration management |
| US20190068533A1 (en) * | 2017-08-28 | 2019-02-28 | Microsoft Technology Licensing, Llc | Acquiring attachments from data storage providers for use in electronic communications |
| US11308132B2 (en) | 2017-09-27 | 2022-04-19 | Oracle International Corporation | Reference attributes for related stored objects in a multi-tenant cloud service |
| US10831789B2 (en) | 2017-09-27 | 2020-11-10 | Oracle International Corporation | Reference attribute query processing for a multi-tenant cloud service |
| US10705823B2 (en) | 2017-09-29 | 2020-07-07 | Oracle International Corporation | Application templates and upgrade framework for a multi-tenant identity cloud service |
| US12159175B1 (en) | 2017-12-28 | 2024-12-03 | Wells Fargo Bank, N.A. | Systems and methods for multi-platform product integration |
| US11106515B1 (en) | 2017-12-28 | 2021-08-31 | Wells Fargo Bank, N.A. | Systems and methods for multi-platform product integration |
| US11995619B1 (en) | 2017-12-28 | 2024-05-28 | Wells Fargo Bank, N.A. | Account open interfaces |
| US12518260B2 (en) | 2017-12-28 | 2026-01-06 | Wells Fargo Bank, N.A. | Account open interfaces |
| US11676126B1 (en) | 2017-12-28 | 2023-06-13 | Wells Fargo Bank, N.A. | Account open interfaces |
| US12056975B1 (en) | 2018-01-16 | 2024-08-06 | Secureauth Corporation | System and method for secure pair and unpair processing using a dynamic level of assurance (LOA) score |
| US11367323B1 (en) | 2018-01-16 | 2022-06-21 | Secureauth Corporation | System and method for secure pair and unpair processing using a dynamic level of assurance (LOA) score |
| US11463488B2 (en) | 2018-01-29 | 2022-10-04 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
| US10715564B2 (en) | 2018-01-29 | 2020-07-14 | Oracle International Corporation | Dynamic client registration for an identity cloud service |
| US12086808B1 (en) | 2018-03-11 | 2024-09-10 | Secureauth Corporation | System and method for using user context and behavior for providing access to a secure computer network |
| US11144675B2 (en) | 2018-09-07 | 2021-10-12 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US11157654B2 (en) | 2018-09-07 | 2021-10-26 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
| US11593523B2 (en) | 2018-09-07 | 2023-02-28 | OneTrust, LLC | Data processing systems for orphaned data identification and deletion and related methods |
| US11544409B2 (en) | 2018-09-07 | 2023-01-03 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US11947708B2 (en) | 2018-09-07 | 2024-04-02 | OneTrust, LLC | Data processing systems and methods for automatically protecting sensitive data within privacy management systems |
| US11321187B2 (en) | 2018-10-19 | 2022-05-03 | Oracle International Corporation | Assured lazy rollback for a multi-tenant identity cloud service |
| US11756011B1 (en) | 2018-12-10 | 2023-09-12 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US11797956B1 (en) | 2018-12-10 | 2023-10-24 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US11379850B1 (en) | 2018-12-10 | 2022-07-05 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US12147953B2 (en) | 2018-12-10 | 2024-11-19 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US11093912B1 (en) | 2018-12-10 | 2021-08-17 | Wells Fargo Bank, N.A. | Third-party payment interfaces |
| US20200211098A1 (en) * | 2018-12-26 | 2020-07-02 | Paypal, Inc. | Account access system |
| US10956972B2 (en) * | 2018-12-26 | 2021-03-23 | Paypal, Inc. | Account access system |
| CN109688156A (en) * | 2019-01-10 | 2019-04-26 | 浪潮软件股份有限公司 | It is a kind of for the HTTP Token authentication method of CMSP and connection method |
| US11423111B2 (en) | 2019-02-25 | 2022-08-23 | Oracle International Corporation | Client API for rest based endpoints for a multi-tenant identify cloud service |
| US11792226B2 (en) | 2019-02-25 | 2023-10-17 | Oracle International Corporation | Automatic api document generation from scim metadata |
| US11700122B1 (en) | 2019-06-21 | 2023-07-11 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11044246B1 (en) | 2019-06-21 | 2021-06-22 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US12244586B2 (en) | 2019-06-21 | 2025-03-04 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11695560B1 (en) | 2019-06-21 | 2023-07-04 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US12244587B2 (en) | 2019-06-21 | 2025-03-04 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11044092B1 (en) | 2019-06-21 | 2021-06-22 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US12244588B2 (en) | 2019-06-21 | 2025-03-04 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11050565B1 (en) | 2019-06-21 | 2021-06-29 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11700248B1 (en) | 2019-06-21 | 2023-07-11 | Wells Fargo Bank, N.A. | Secure communications via third-party systems through frames |
| US11893103B2 (en) | 2019-07-31 | 2024-02-06 | Intuit Inc. | Offline processing using on-demand access tokens |
| US11423135B1 (en) * | 2019-07-31 | 2022-08-23 | Intuit Inc. | Offline processing using on-demand access tokens |
| US11838762B1 (en) | 2019-08-04 | 2023-12-05 | Secureauth Corporation | Method and system for identity verification and authorization of request by checking against an active user directory of identity service entities selected by an identity information owner |
| US11252573B1 (en) | 2019-08-04 | 2022-02-15 | Acceptto Corporation | System and method for rapid check-in and inheriting trust using a mobile device |
| US11687378B2 (en) | 2019-09-13 | 2023-06-27 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability |
| US11870770B2 (en) | 2019-09-13 | 2024-01-09 | Oracle International Corporation | Multi-tenant identity cloud service with on-premise authentication integration |
| US20220103531A1 (en) * | 2019-11-27 | 2022-03-31 | Worldpay, Llc | Methods and systems for secure cross-platform token exchange |
| US11711349B2 (en) * | 2019-11-27 | 2023-07-25 | Worldpay, Llc | Methods and systems for secure cross-platform token exchange |
| US12149516B2 (en) * | 2020-06-02 | 2024-11-19 | Flex Integration, LLC | System and methods for tokenized hierarchical secured asset distribution |
| US20210377240A1 (en) * | 2020-06-02 | 2021-12-02 | FLEX Integration LLC | System and methods for tokenized hierarchical secured asset distribution |
| US11797528B2 (en) | 2020-07-08 | 2023-10-24 | OneTrust, LLC | Systems and methods for targeted data discovery |
| US12353405B2 (en) | 2020-07-08 | 2025-07-08 | OneTrust, LLC | Systems and methods for targeted data discovery |
| US20220038282A1 (en) * | 2020-07-28 | 2022-02-03 | Citrix Systems, Inc. | Secure Token Transfer between Untrusted Entities |
| US11444976B2 (en) | 2020-07-28 | 2022-09-13 | OneTrust, LLC | Systems and methods for automatically blocking the use of tracking tools |
| US11968229B2 (en) | 2020-07-28 | 2024-04-23 | OneTrust, LLC | Systems and methods for automatically blocking the use of tracking tools |
| US12035136B1 (en) | 2020-08-01 | 2024-07-09 | Secureauth Corporation | Bio-behavior system and method |
| US11475165B2 (en) | 2020-08-06 | 2022-10-18 | OneTrust, LLC | Data processing systems and methods for automatically redacting unstructured data from a data subject access request |
| US11329998B1 (en) | 2020-08-31 | 2022-05-10 | Secureauth Corporation | Identification (ID) proofing and risk engine integration system and method |
| US11677755B1 (en) | 2020-08-31 | 2023-06-13 | Secureauth Corporation | System and method for using a plurality of egocentric and allocentric factors to identify a threat actor |
| US12074886B1 (en) | 2020-08-31 | 2024-08-27 | Secureauth Corporation | Identification (ID) proofing to deter threat actors |
| US11436373B2 (en) | 2020-09-15 | 2022-09-06 | OneTrust, LLC | Data processing systems and methods for detecting tools for the automatic blocking of consent requests |
| US11704440B2 (en) | 2020-09-15 | 2023-07-18 | OneTrust, LLC | Data processing systems and methods for preventing execution of an action documenting a consent rejection |
| US11526624B2 (en) | 2020-09-21 | 2022-12-13 | OneTrust, LLC | Data processing systems and methods for automatically detecting target data transfers and target data processing |
| US20250104023A1 (en) * | 2020-10-01 | 2025-03-27 | Mastercard International Incorporated | Systems and methods for securely opening apis with cardholder authentication and consent |
| US12205082B2 (en) | 2020-10-01 | 2025-01-21 | Mastercard International Incorporated | Systems and methods for securely opening APIS with cardholder authentication and consent |
| US12307424B2 (en) | 2020-10-01 | 2025-05-20 | Mastercard International Incorporated | Systems and methods for multi access channels for authentication and consents |
| US12265896B2 (en) | 2020-10-05 | 2025-04-01 | OneTrust, LLC | Systems and methods for detecting prejudice bias in machine-learning models |
| US11397819B2 (en) | 2020-11-06 | 2022-07-26 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
| US11615192B2 (en) | 2020-11-06 | 2023-03-28 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
| US12277232B2 (en) | 2020-11-06 | 2025-04-15 | OneTrust, LLC | Systems and methods for identifying data processing activities based on data discovery results |
| US11687528B2 (en) | 2021-01-25 | 2023-06-27 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
| US12259882B2 (en) | 2021-01-25 | 2025-03-25 | OneTrust, LLC | Systems and methods for discovery, classification, and indexing of data in a native computing system |
| US11442906B2 (en) | 2021-02-04 | 2022-09-13 | OneTrust, LLC | Managing custom attributes for domain objects defined within microservices |
| US12536329B2 (en) | 2021-02-08 | 2026-01-27 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
| US11494515B2 (en) | 2021-02-08 | 2022-11-08 | OneTrust, LLC | Data processing systems and methods for anonymizing data samples in classification analysis |
| US11601464B2 (en) | 2021-02-10 | 2023-03-07 | OneTrust, LLC | Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system |
| US11775348B2 (en) | 2021-02-17 | 2023-10-03 | OneTrust, LLC | Managing custom workflows for domain objects defined within microservices |
| US11546661B2 (en) | 2021-02-18 | 2023-01-03 | OneTrust, LLC | Selective redaction of media content |
| CN112968903A (en) * | 2021-03-08 | 2021-06-15 | 浪潮云信息技术股份公司 | Integrated authentication integration method based on account binding |
| US11533315B2 (en) | 2021-03-08 | 2022-12-20 | OneTrust, LLC | Data transfer discovery and analysis systems and related methods |
| US11562078B2 (en) | 2021-04-16 | 2023-01-24 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
| US11816224B2 (en) | 2021-04-16 | 2023-11-14 | OneTrust, LLC | Assessing and managing computational risk involved with integrating third party computing functionality within a computing system |
| US12153704B2 (en) | 2021-08-05 | 2024-11-26 | OneTrust, LLC | Computing platform for facilitating data exchange among computing environments |
| CN113868602A (en) * | 2021-09-06 | 2021-12-31 | 浙江大华技术股份有限公司 | Application authorization method, distributed cluster system, electronic device and storage medium |
| US11620142B1 (en) | 2022-06-03 | 2023-04-04 | OneTrust, LLC | Generating and customizing user interfaces for demonstrating functions of interactive user environments |
| US20250330469A1 (en) * | 2024-04-17 | 2025-10-23 | Red Hat, Inc. | Remote login resource access control using a container |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2015061307A1 (en) | 2015-04-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20150121462A1 (en) | Identity application programming interface | |
| US10880292B2 (en) | Seamless transition between WEB and API resource access | |
| US10122698B2 (en) | Passporting credentials between a mobile app and a web browser | |
| JP6553083B2 (en) | Browser-based identity information with multiple logins | |
| US9015824B1 (en) | Allowing a client computing device to securely interact with a private network | |
| US9191382B1 (en) | User authentication using swappable user authentication services | |
| US12316762B2 (en) | Applications as resource principals or service principals | |
| US10257182B2 (en) | Login proxy for third-party applications | |
| US9560122B1 (en) | Secure native application messaging with a browser application | |
| CN112491778A (en) | Authentication method, device, system and medium | |
| US9667631B2 (en) | Venue-specific wi-fi connectivity notifications | |
| US20230132934A1 (en) | Techniques for dynamically assigning client credentials to an application | |
| US11943216B2 (en) | Computer security system with remote browser isolation using forward proxying | |
| EP4409841A1 (en) | Applications as resource principals or service principals | |
| US12284185B2 (en) | Systems and methods for WebAuthn transport via a WebAuthn proxy | |
| US11831788B2 (en) | Systems and methods for secure access with heartbeat monitoring to native cloud services to computers outside the cloud | |
| US20220141326A1 (en) | System for authenticating a phone number using a phone number certificate |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COURAGE, MICHAEL ROBERTS;SAROOP, SRIRAM;REEL/FRAME:035455/0118 Effective date: 20131023 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
| AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044144/0001 Effective date: 20170929 |
|
| AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:068092/0502 Effective date: 20170929 |