US20230359750A1 - Asynchronous authorization of application access to resources - Google Patents
Asynchronous authorization of application access to resources Download PDFInfo
- Publication number
- US20230359750A1 US20230359750A1 US18/355,290 US202318355290A US2023359750A1 US 20230359750 A1 US20230359750 A1 US 20230359750A1 US 202318355290 A US202318355290 A US 202318355290A US 2023359750 A1 US2023359750 A1 US 2023359750A1
- Authority
- US
- United States
- Prior art keywords
- request
- application
- access
- resource
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Definitions
- Various types of applications may request access to protected resources such as private data, confidential data, user-owned data, and/or the like.
- the applications may request access to such protected resources to, for instance, provide integrated experiences to users.
- the applications Prior to accessing the protected resources, the applications may send the owner of the protected resources requests for access grants to the protected resources.
- the applications may be prevented from accessing the protected resources unless the owner grants the applications access to the protected resources. Once granted, authorization processes may be implemented for the applications to access the protected resources.
- FIG. 1 shows a block diagram of a network environment, in which an apparatus may manage approval and rejection by an authorized entity of an access request by an application, in which approval or rejection by the authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure
- FIG. 2 depicts a block diagram of the apparatus depicted in FIG. 1 , in accordance with an embodiment of the present disclosure
- FIGS. 3 and 4 respectively, depict flow diagrams of methods for managing a request by an application for access to a resource, in which management of the request by an authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure
- FIG. 5 depicts a block diagram of a computer-readable medium that may have stored thereon computer-readable instructions for managing a request by an application for access to a resource, in which an authorized entity is to manage the request asynchronously with the submission of the request by the application, in accordance with an embodiment of the present disclosure.
- the terms “a” and “an” are intended to denote at least one of a particular element.
- the term “includes” means includes but not limited to, the term “including” means including but not limited to.
- the term “based on” means based at least in part on.
- a processor may manage the granting of access by an application to a resource by an authorized entity, in which the authorized entity may manage the granting of the access asynchronously with submission of a request by the application for the access to the resource.
- the authorized entity may manage the granting of the access asynchronously with the request submitted by the application in that the authorized entity may grant or deny the request at a time that differs from when the access by the application to the resource is sought.
- a user may be interacting with the application at the time that the application sends the request for access to the resource.
- the decision as to whether to grant the access may be synchronous with the request in instances in which the user is authorized to make that decision or if another entity is able to make that decision when the application submitted the request.
- the application may not be interacting with any users and may instead, for instance, execute as a background application.
- the decision to grant access to the resource may normally be asynchronous with the submission of the request for the access.
- an organization may have in place a policy, such as a certain business logic, that may require a multi-step approval process in which the user who is interacting with the application may not be authorized to grant the access to the resource.
- a policy such as a certain business logic
- the user who is interacting with the application may not be the owner of the resource, but instead, the organization, a group of users, or another user may own the resource.
- the user may not be authorized to grant access to the resource, for instance, for security purposes, for access restriction purposes, or the like.
- an entity may be designated as being authorized to approve or reject the request for access to the resource.
- an application may be granted access to a resource without requiring that a user be present or authorized to respond to an access request interactively. Instead, the application may be granted access to a resource at some time following the submission of the request.
- an authorized entity such as an administrator, a director, or the like of an organization may grant or reject the application.
- the authorized entity may be better suited than a user that interacts with the application to determine whether the application is to be granted access to the resource in that, for instance, the authorized entity may have better and/or increased training to identify applications that may pose threats to the user's computing device as well as threats to the organization.
- an organizational policy may require that only authorized entities may respond to requests for access to the resource.
- conventional techniques of granting access to applications to resources may be limiting in that the access may be granted synchronously.
- a user may be required to grant or deny the access during an interaction with the application and/or an authorized entity may be required to grant or deny the access during the user's interaction or at another time at which the application requested the access.
- users may unknowingly or knowingly grant applications that may pose threats such as through submission of malicious code, denial of service attacks, and/or the like, access to the resources.
- a technical issue with conventional management of application access to resources may be that users may grant malicious actors access to protected resources.
- a technical solution afforded through the present disclosure may be that a network and the devices on the network may be better protected from malicious actors by preventing access to resources accessible through the network and/or devices on the network unless an authorized entity, who may be different from the user who may be performing a task that may result in the application requesting access to resources, may asynchronously, with respect to the submission of the request by the application, grant the access. Accordingly, the present disclosure may improve security on the resources as well as the network and devices on the network and may also prevent users of certain types, e.g., minors, from providing access to the applications.
- FIG. 1 shows a block diagram of a network environment 100 , in which an apparatus 102 may manage approval and rejection by an authorized entity of an access request by an application, in which approval or rejection by the authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure.
- FIG. 2 depicts a block diagram of the apparatus 102 depicted in FIG. 1 , in accordance with an embodiment of the present disclosure.
- the network environment 100 and the apparatus 102 of the network environment 100 may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of the network environment 100 and/or the apparatus 102 .
- the apparatus 102 may be a server or other type of computing device, e.g., a network gateway, an access point, a network switch, and/or the like, to or through which an application 120 may submit a request 110 for access to a resource 122 .
- the apparatus 102 may also manage the request, along with other requests in some examples, such that the request(s) 110 may be approved or rejected asynchronously with the submission of the request(s) 110 by the application 120 . That is, for instance, the authorized entity 124 may determine whether to approve or reject the request 110 asynchronously with the submission by the application 120 to access the resource 122 .
- a user 125 may, in some instances, synchronously approve or reject the request 110 with the submission of the request 110 by the application 120 . That is, for instance, the user 125 may be interacting with the application 120 when the application 120 submits the request 110 to access the resource 122 and the user 125 may approve/reject the request 110 . However, as discussed herein, the user 125 may not be authorized to grant the request 110 .
- the user 125 may not own the resource 122 , but instead, the resource owner 126 may be an entity, such as an individual, an organization, a group of individuals, and/or the like.
- an organization may have in place a policy, such as a certain business logic, that may require a multi-step approval process in which the user 125 who is interacting with the application 120 may not be authorized to grant the access to the resource 122 .
- an authorized entity 124 may be tasked with making request 110 approval decisions for users in the organization, in which the authorized entity 124 may be an administrator, a director, or the like of the organization.
- the organization which may be a business, an educational institution, or the like, may institute such a policy to centralize reviews and decision making on access requests to, for instance, enhance security on the resource 122 , network, servers, and/or the like.
- the organization may also or additionally institute such a policy to prevent or limit approval by certain types of users, such as minors.
- the apparatus 102 may store a pending request 110 for access to the resource 122 in a data store 108 such that the apparatus 102 may track whether the pending request 110 is approved or rejected over a duration of time.
- the authorized entity 124 may thus be given a certain length of time to approve or reject the request 110 such that the authorized entity 124 may make this determination at some time after the application 120 submitted the request 110 to access the resource 122 . In this regard, the authorized entity 124 may make the determination asynchronously with the submission of the request 110 .
- the apparatus 102 may include a processor 104 that may control operations of the apparatus 102 and a memory 106 on which data that the processor 104 may access and/or may execute may be stored.
- the processor 104 may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device.
- the memory 106 which may also be termed a computer readable medium, may be, for example, a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like.
- the memory 106 may be a non-transitory computer readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. In any regard, the memory 106 may have stored thereon machine-readable instructions that the processor 104 may execute.
- references to a single processor 104 as well as to a single memory 106 may be understood to additionally or alternatively pertain to multiple processors 104 and multiple memories 106 .
- the processor 104 and the memory 106 may be integrated into a single component, e.g., an integrated circuit on which both the processor 104 and the memory 106 may be provided.
- the operations described herein as being performed by the processor 104 may be distributed across multiple apparatuses 102 and/or multiple processors 104 .
- the memory 106 may have stored thereon machine-readable instructions 200 - 210 that the processor 104 may execute.
- the instructions 200 - 210 are described herein as being stored on the memory 106 and may thus include a set of machine-readable instructions
- the apparatus 102 may include hardware logic blocks that may perform functions similar to the instructions 200 - 210 .
- the processor 104 may include hardware components that may execute the instructions 200 - 210 .
- the apparatus 102 may include a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions 200 - 210 .
- the processor 104 may implement the hardware logic blocks and/or execute the instructions 200 - 210 .
- the apparatus 102 may also include additional instructions and/or hardware logic blocks such that the processor 104 may execute operations in addition to or in place of those discussed above with respect to FIG. 2 .
- the processor 104 may execute the instructions 200 to access a request 110 for access by an application 120 to a resource 122 .
- the resource 122 may be, for instance, a protected resource such as user-owned data, private data, confidential data, company data, and/or the like.
- the resource 122 may include a user's work files, emails, calendar entries, personal files, personal information, confidential work-related information, confidential organization information, and/or the like.
- the application 120 may seek access to the resource 122 for any of a variety of reasons, such as, for instance, to provide users with an integrated experience with other applications that may have access to the resource 122 , to make access to the resource 122 readily available through the application 120 , to execute as a background application that may move files from one location to another, and/or the like.
- the application 120 may use a static set of base permissions to perform basic functions, in which other permissions may be required at a later time.
- a user 125 may begin using an optional feature that may leverage a different resource, such as importing files into an application that was previously consuming calendar data.
- the application may request its base permission set upfront using a consent grant flow, and may later use “incremental consent” to request additional permissions.
- this may only be acceptable if the application continues to be used in an interactive manner after the initial signup/acquisition/deployment process is complete because a user may be required to be present to respond to the access request interactively.
- this model may fail may be a case where the application is granted a base set of permissions during the initial setup after which the application begins running in the background, and later, some event causes the application to require access to additional permissions.
- an application 120 may request and may be granted the additional permissions without a user (e.g., an authorized user) being present to interactively grant the additional permissions. Instead, an authorized entity 124 may grant the permissions asynchronously with the request 110 for the permissions from the application 120 .
- the application 120 may submit the request 110 directly to the apparatus 102 and/or to a service provided by the apparatus 102 .
- the application 120 may submit the request 110 to a user 125 of the application 120 and/or an owner 126 of the resource 122 and the processor 104 may intercept the request 110 or the user 125 or the resource owner 126 may forward the request 110 to the apparatus 102 .
- an attempted access to the resource 122 by the application 120 may trigger the submission of the request 110 to the apparatus 102 by, for instance, a resource server 128 that may provide and/or store the resource 122 .
- the apparatus 102 may access the request 110 through a network 130 .
- the network 130 may be any suitable type of network through which the apparatus 102 may communicate with an authorized entity 124 as well as other entities in the network environment 100 .
- the other entities may include an authentication server 132 and an authorization server 134 .
- the authentication server 132 may authenticate the application 120 , the request 110 , and/or the like, and the authorization server 134 may generate an authentication token that may enable the application 120 to access the resource 122 .
- the network 130 may be the Internet, a wide area network, a local area network, and/or the like.
- the application 120 may access the resource 122 from the resource server 128 via the network 130 should the apparatus 102 approve the request 110 for access to the resource 122 .
- the processor 104 may execute the instructions 202 to record the request 110 in a data store 108 .
- the processor 104 may record the request 110 with other pending requests, e.g., requests for which instructions as to whether the requests have been approved or rejected have not been received.
- the processor 104 may also track the durations at which the pending requests have been recorded in the data store 108 .
- the data store 108 may be a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like.
- the processor 104 may execute the instructions 204 to identify an authorized entity 124 to evaluate the received request 110 .
- the processor 104 may identify the authorized entity 124 in instances in which the user 125 that is interacting with the application 120 may not have sufficient authorization to approve/deny the access request 110 .
- a determination as to whether the user 125 is authorized may be based on a set of business logic defined by an organization to which the user 125 may be a member.
- the user 125 may synchronously approve/deny the request 110 . That is, the user 125 may approve/deny the request 110 when the request 110 is received from the application 120 .
- the processor 104 may identify an entity, such as an administrator of an organization, an executive of an organization, an administrator of an institution, or other type of entity, that is authorized to evaluate the request 110 .
- the authorized entity 124 may be authorized to evaluate the request 110 on behalf of (or in place of) the user 125 and/or the resource owner 126 as well as other members of the organization, institution, and/or the like.
- an identifier of the authorized entity 124 may be stored in the data store 108 and the processor 104 may identify the authorized entity 124 by accessing the identifier of the authorized entity 124 from the data store 108 .
- the organization or institution may have in place business logic that may dictate that a multi-step approval process that may involve more than one person is to be implemented in evaluating whether a request 110 for access to a resource 122 by an application is to be approved or denied.
- a number of entities may be defined as authorized entities 124 and a listing of the authorized entities 124 may be stored, for instance, in the data store 108 .
- An administrator or other entity within an organization, institution, and/or the like, may define the authorized entities 124 .
- Certain ones of the authorized entities 124 may also be defined to evaluate requests corresponding to certain types of applications 120 , requests corresponding to certain types of resource owners 126 , requests corresponding to certain types of resources 122 , and/or the like.
- the processor 104 may identify the authorized entity 124 that is to evaluate the request 110 through selection of the authorized entity 124 from the listing of the authorized entities 124 .
- the processor 104 may identify the authorized entity 124 that is defined to evaluate the request 110 based on, for instance, the type of application 120 that is requesting the access, the type of the owner 126 that owns the resource 122 , the type of the resource 122 , the type of the user 125 , and/or the like.
- the processor 104 may execute the instructions 206 to output a notification to the authorized entity 124 to evaluate the request 110 , in which the authorized entity 124 is to evaluate the request 110 asynchronously with submission of the request 110 by the application 120 .
- the notification may be a push notification to a device of the authorized entity 124 , an email message to the authorized entity 124 , an entry in a queue of pending requests 110 displayed in a dedicated web portal or a mobile application that the authorized entity 124 may access, and/or the like.
- the processor 104 may access an identifier of the authorized entity 124 such as an email address, a name, an IP address, and/or the like stored on the data store 108 and may output the notification to the accessed identifier.
- the processor 104 may determine whether the user 125 has approved the seeking of approval from the authorized entity 124 . In these examples, the processor 104 may send a message to the user 125 regarding whether the user 125 would like to seek approval for the request 110 .
- the message may be a push notification to a device of the user 125 , an email message to the user 125 , and/or the like.
- the user 125 may respond via the push notification, an email message, and/or the like, with an indication that the user 125 approves or rejects the seeking of approval from the authorized entity 124 .
- the processor 104 may output the notification to the authorized entity 124 .
- the user 125 may include an indication as to why the user 125 would like to seek approval for the request 110 from the authorized entity 124 .
- the processor 104 may not output a notification to the authorized entity 124 .
- the processor 104 may reject the request 110 such that the application 120 may not be authorized to access the resource 122 .
- the processor 104 may clear the record of the request 110 from the data store 108 . The clearing of the record may include deletion of the record, a modification to the record to indicate that the request 110 has been rejected, and/or the like.
- the processor 104 may execute the instructions 208 to determine whether a response is received from the authorized entity 124 .
- the authorized entity 124 may determine whether to approve or reject the request asynchronously with the submission of the request by the application 120 .
- the processor 104 may track whether the request 110 , a record of which may be stored in the data store 108 , is approved or rejected over a duration of time. The processor 104 may thus provide the authorized entity 124 with a certain length of time to approve or reject the request 110 such that the authorized entity 124 may make this determination at some time after the processor 104 received or otherwise accessed the request 110 to access the resource 122 .
- the processor 104 may initiate a timer set to a predefined duration responsive to the output of the notification.
- a user, an administrator, and/or the like may define the predefined duration.
- the processor 104 may determine whether the response is received from the authorized entity 124 prior to expiration of the predefined duration. Based on a determination that the response is not received from the authorized entity 124 prior to expiration of the predefined duration, the processor 104 may output a reminder notification to the authorized entity 124 .
- the processor 104 may initiate a second timer set to a second predefined duration responsive to the output of the reminder notification.
- the second predefined duration may be the same as or may differ from the predefined duration and may be user-defined.
- the processor 104 may also determine whether the response is received from the authorized entity 124 prior to expiration of the second predefined duration. In addition, based on a determination that the response is not received prior to expiration of the second predefined duration, the processor 104 may reject the request 110 for access by the application 120 to the resource 122 and may clear the record of the request 110 from the data store 108 . In other examples, the processor 104 may send a further notification or further notifications to the authorized entity 124 prior to rejecting the request 110 .
- the processor 104 may execute the instructions 210 to, based on a determination that the response is received, reject or grant the request 110 based on the response.
- the response from the authorized entity 124 may include an instruction to reject the request 110 or an instruction to grant the request 110 .
- the processor 104 may send a notification to the application 120 and/or the resource server 128 that the request 110 to access the resource 122 has been rejected.
- the processor 104 may also send a notification to the user 125 that the request 110 to access the resource 122 has been rejected.
- the processor 104 may clear the record of the request 110 from the data store 108 . For instance, the processor 104 may delete the record of the request 110 from the data store 108 , may modify the record to indicate that the request 110 has been rejected, and/or the like.
- the processor 104 may send a notification to the application 120 and/or the resource server 128 that the request 110 to access the resource 122 has been granted.
- the processor 104 may initiate a grant of access by the application 120 to the resource 122 .
- the processor 104 may submit an authorization grant for the application 120 to access the resource 122 to the authorization server 134 , which may respond with an access token.
- the processor 104 may forward the access token to the application 120 and the application 120 may submit the access token to the resource server 128 .
- the resource server 128 may respond to the application 120 with the resource 122 .
- the processor 104 may also clear the record of the request 110 from the data store 108 .
- the processor 104 may delete the record of the request 110 from the data store 108 , may modify the record to indicate that the request 110 has been granted, and/or the like.
- the processor 104 may alternatively initiate the grant of access in other suitable manners.
- FIGS. 3 and 4 depict flow diagrams of methods 300 and 400 for managing a request by an application 120 for access to a resource 122 , in which management of the request by an authorized entity 124 is asynchronous with submission of the request by the application 120 , in accordance with an embodiment of the present disclosure.
- the methods 300 and 400 may include additional operations and that some of the operations described therein may be removed and/or modified without departing from the scope of the methods 300 and 400 .
- the descriptions of the methods 300 and 400 are made with reference to the features depicted in FIGS. 1 and 2 for purposes of illustration.
- the processor 104 may access a request 110 by an application 120 to access a resource 122 .
- the processor 104 may access the request 110 in any of a variety of manners.
- the resource 122 may be a protected resource.
- the processor 104 may record the request 110 in a data store 108 .
- the processor 104 may record the request 122 as an entry among a plurality of pending requests.
- the processor 104 may output a notification to an authorized entity 124 , in which the authorized entity 124 is to evaluate the request 110 . That is, the notification may be outputted to the authorized entity 124 to notify the authorized entity 124 of the pending request 110 such that the authorized entity 124 may decide whether to approve or reject the request 110 .
- the decision by the authorized entity 124 to approve or reject the request 110 may be asynchronous with the submission by the application 120 of the request 110 . That is, for instance, when the processor 104 accessed the request 110 to access the resource 122 by the application 120 , the authorized entity 124 may not currently be interacting with the application 120 and thus, the authorized entity 124 may be operating asynchronously with the application 120 . Instead, for instance, the submission of the request 110 by the application 120 may be synchronous with interactions by the user 125 with the application 120 when the processor 104 accessed the request 110 to access the resource 122 .
- the processor 104 may determine whether a response is received from the authorized entity 124 .
- the processor 104 may, based on a determination that the response from the authorized entity 124 is received, manage the request 110 based on the response. That is, the processor 104 may reject the request 110 based on the response from the authorized entity 124 including an instruction to reject the request 110 .
- the processor 104 may initiate a grant of access by the application 120 to the resource 122 based on the response from the authorized entity 124 including an instruction to approve the request 110 as discussed herein.
- the processor 104 may also clear the record of the request 110 from the data store 108 as also discussed herein following either the rejection or approval of the request 110 .
- the processor 104 may record, in a data store 108 , a request 110 by an application 120 to access a resource 122 , such as a protected resource. For instance, the processor 104 may record the request 122 as an entry among a plurality of pending requests in the data store 108 .
- the processor 104 may send a message to the user 125 regarding whether the user 125 would like to seek approval by an authorized entity 124 for the request 110 .
- the message may be a push notification to a device of the user 125 , an email message to the user 125 , and/or the like.
- the user 125 may respond via the push notification, an email message, and/or the like, with an indication that the user 125 approves or rejects the seeking of approval from the authorized entity 124 .
- the processor 104 may reject the request 110 . That is, the processor 104 may not output a notification to the authorized entity 124 .
- the processor 104 may clear the record of the request 110 from the data store 108 .
- the clearing of the record may include deletion of the record, a modification to the record to indicate that the request 110 has been rejected, and/or the like.
- the method 400 may also end following block 410 .
- the processor 104 may output the notification to the authorized entity 124 .
- the user 125 may include an indication as to why the user 125 would like to seek approval for the request 110 from the authorized entity 124 .
- the processor 104 may initiate a timer set to a predefined duration responsive to the output of the notification.
- the predefined duration may be defined by a user, an administrator, and/or the like.
- the processor 104 may determine whether the response. Based on a determination that the response is received, the processor 104 may manage the request 110 as indicated at block 422 . In addition, the processor 104 may clear the record of the request 110 at block 410 and the method 400 may end.
- the processor 104 may determine at block 418 whether the timer has expired. Based on a determination that the timer has not expired, the processor 104 may continue to track whether the response is received until the response is received or the timer has expired. Based on a determination that the timer has expired at block 418 , the processor 104 may output a reminder notification to the authorized entity 124 . In addition, the processor 104 may determine whether a response has been received at block 416 . The processor 104 may also repeat blocks 416 - 420 until the response is received.
- the processor 104 may reject the request 110 and may clear the record.
- the predefined number of iterations may be user-defined. Additionally, instead of a predefined number of iterations, the processor 104 may reject the request 110 and may clear the record following a preset duration of time.
- each of the methods 300 and 400 may be included as utilities, programs, or subprograms, in any desired computer accessible medium.
- each of the methods 300 and 400 may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as machine-readable instructions, including source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium.
- non-transitory computer readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- FIG. 5 there is shown a block diagram of a computer-readable medium 500 that may have stored thereon computer-readable instructions for managing a request 110 by an application 120 for access to a resource 122 , in which an authorized entity 124 is to approve or reject the request 110 asynchronously with submission of the request by the application 120 , in accordance with an embodiment of the present disclosure.
- the computer-readable medium 500 depicted in FIG. 5 may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium 500 disclosed herein.
- the computer-readable medium 500 may be a non-transitory computer-readable medium, in which the term “non-transitory” does not encompass transitory propagating signals.
- the computer-readable medium 500 may have stored thereon computer-readable instructions 502 - 508 that a processor, such as the processor 104 depicted in FIGS. 1 and 2 , may execute.
- the computer-readable medium 500 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions.
- the computer-readable medium 500 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like.
- the processor may fetch, decode, and execute the instructions 502 to record, in a data store 108 , a request 110 for access by an application 120 to a resource 122 owned by a resource owner 126 .
- a user 125 of the application 120 may be interacting with the application 120 when the processor received the request 110 .
- the processor may fetch, decode, and execute the instructions 504 to output a notification to an authorized entity 124 , in which the authorized entity 124 is to determine whether the request 110 is approved or rejected asynchronously with submission of the request 110 by the application 120 and the authorized entity 124 is to return a response as to whether the request 110 is rejected or granted.
- the processor may initiate a timer that may be set to a predefined duration responsive, e.g., after, the output of the notification.
- the processor may determine whether the response is received prior to expiration of the predefined duration and may, based on a determination that the response is not received prior to expiration of the predefined duration, output a reminder notification to the authorized entity or reject the request.
- the processor may, based on a determination that the response is not received prior to expiration of the predefined duration, output a reminder notification to the authorized entity 124 and may initiate another timer.
- the processor may send a message to the resource owner 126 regarding whether the resource owner 126 would like to seek approval for the request.
- the processor may output the notification to the authorized entity 124 .
- the processor may reject the request 110 for access by the application 120 to the resource 120 and may clear the record of the request 110 from the data store 108 .
- the processor may fetch, decode, and execute the instructions 506 to determine whether the response is received from the authorized entity 124 .
- the processor may fetch, decode, and execute the instructions 508 to, based on a determination that the response is received, manage the request 110 based on the response and clear the record of the request 110 from the data store 108 . That is, based on the response including an instruction that the request 110 is approved, the processor may initiate a grant of access by the application 120 to the resource 122 . However, based on the response including an instruction that the request 110 is rejected, the processor may output an indication that the request 122 has been rejected.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
Description
- Various types of applications may request access to protected resources such as private data, confidential data, user-owned data, and/or the like. The applications may request access to such protected resources to, for instance, provide integrated experiences to users. Prior to accessing the protected resources, the applications may send the owner of the protected resources requests for access grants to the protected resources. In addition, the applications may be prevented from accessing the protected resources unless the owner grants the applications access to the protected resources. Once granted, authorization processes may be implemented for the applications to access the protected resources.
- Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
-
FIG. 1 shows a block diagram of a network environment, in which an apparatus may manage approval and rejection by an authorized entity of an access request by an application, in which approval or rejection by the authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure; -
FIG. 2 depicts a block diagram of the apparatus depicted inFIG. 1 , in accordance with an embodiment of the present disclosure; -
FIGS. 3 and 4 , respectively, depict flow diagrams of methods for managing a request by an application for access to a resource, in which management of the request by an authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure; and -
FIG. 5 depicts a block diagram of a computer-readable medium that may have stored thereon computer-readable instructions for managing a request by an application for access to a resource, in which an authorized entity is to manage the request asynchronously with the submission of the request by the application, in accordance with an embodiment of the present disclosure. - For simplicity and illustrative purposes, the principles of the present disclosure are described by referring mainly to embodiments and examples thereof. In the following description, numerous specific details are set forth in order to provide an understanding of the embodiments and examples. It will be apparent, however, to one of ordinary skill in the art, that the embodiments and examples may be practiced without limitation to these specific details. In some instances, well known methods and/or structures have not been described in detail so as not to unnecessarily obscure the description of the embodiments and examples. Furthermore, the embodiments and examples may be used together in various combinations.
- Throughout the present disclosure, the terms “a” and “an” are intended to denote at least one of a particular element. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on.
- Disclosed herein are systems, apparatuses, methods, and computer-readable media in which a processor may manage the granting of access by an application to a resource by an authorized entity, in which the authorized entity may manage the granting of the access asynchronously with submission of a request by the application for the access to the resource. The authorized entity may manage the granting of the access asynchronously with the request submitted by the application in that the authorized entity may grant or deny the request at a time that differs from when the access by the application to the resource is sought. Instead, in some examples, a user may be interacting with the application at the time that the application sends the request for access to the resource. The decision as to whether to grant the access may be synchronous with the request in instances in which the user is authorized to make that decision or if another entity is able to make that decision when the application submitted the request. In other examples, the application may not be interacting with any users and may instead, for instance, execute as a background application. In these examples, the decision to grant access to the resource may normally be asynchronous with the submission of the request for the access.
- In some instances, an organization may have in place a policy, such as a certain business logic, that may require a multi-step approval process in which the user who is interacting with the application may not be authorized to grant the access to the resource. For instance, the user who is interacting with the application may not be the owner of the resource, but instead, the organization, a group of users, or another user may own the resource. As a result, the user may not be authorized to grant access to the resource, for instance, for security purposes, for access restriction purposes, or the like. Instead, according to examples of the present disclosure, an entity may be designated as being authorized to approve or reject the request for access to the resource.
- Through implementation of the features of the present disclosure, an application may be granted access to a resource without requiring that a user be present or authorized to respond to an access request interactively. Instead, the application may be granted access to a resource at some time following the submission of the request. In addition, an authorized entity, such as an administrator, a director, or the like of an organization may grant or reject the application. In many instances, the authorized entity may be better suited than a user that interacts with the application to determine whether the application is to be granted access to the resource in that, for instance, the authorized entity may have better and/or increased training to identify applications that may pose threats to the user's computing device as well as threats to the organization. As a result, an organizational policy may require that only authorized entities may respond to requests for access to the resource.
- In one regard, conventional techniques of granting access to applications to resources may be limiting in that the access may be granted synchronously. As a result, a user may be required to grant or deny the access during an interaction with the application and/or an authorized entity may be required to grant or deny the access during the user's interaction or at another time at which the application requested the access. In addition, by enabling the user to grant the access, users may unknowingly or knowingly grant applications that may pose threats such as through submission of malicious code, denial of service attacks, and/or the like, access to the resources. A technical issue with conventional management of application access to resources may be that users may grant malicious actors access to protected resources. A technical solution afforded through the present disclosure may be that a network and the devices on the network may be better protected from malicious actors by preventing access to resources accessible through the network and/or devices on the network unless an authorized entity, who may be different from the user who may be performing a task that may result in the application requesting access to resources, may asynchronously, with respect to the submission of the request by the application, grant the access. Accordingly, the present disclosure may improve security on the resources as well as the network and devices on the network and may also prevent users of certain types, e.g., minors, from providing access to the applications.
- Reference is first made to
FIGS. 1 and 2 .FIG. 1 shows a block diagram of anetwork environment 100, in which an apparatus 102 may manage approval and rejection by an authorized entity of an access request by an application, in which approval or rejection by the authorized entity is asynchronous with submission of the request by the application, in accordance with an embodiment of the present disclosure.FIG. 2 depicts a block diagram of the apparatus 102 depicted inFIG. 1 , in accordance with an embodiment of the present disclosure. It should be understood that thenetwork environment 100 and the apparatus 102 of thenetwork environment 100 may include additional features and that some of the features described herein may be removed and/or modified without departing from the scopes of thenetwork environment 100 and/or the apparatus 102. - According to examples, the apparatus 102 may be a server or other type of computing device, e.g., a network gateway, an access point, a network switch, and/or the like, to or through which an
application 120 may submit arequest 110 for access to aresource 122. The apparatus 102 may also manage the request, along with other requests in some examples, such that the request(s) 110 may be approved or rejected asynchronously with the submission of the request(s) 110 by theapplication 120. That is, for instance, the authorizedentity 124 may determine whether to approve or reject therequest 110 asynchronously with the submission by theapplication 120 to access theresource 122. Instead, for instance, a user 125 may, in some instances, synchronously approve or reject therequest 110 with the submission of therequest 110 by theapplication 120. That is, for instance, the user 125 may be interacting with theapplication 120 when theapplication 120 submits therequest 110 to access theresource 122 and the user 125 may approve/reject therequest 110. However, as discussed herein, the user 125 may not be authorized to grant therequest 110. - In some examples, the user 125 may not own the
resource 122, but instead, theresource owner 126 may be an entity, such as an individual, an organization, a group of individuals, and/or the like. In these examples, an organization may have in place a policy, such as a certain business logic, that may require a multi-step approval process in which the user 125 who is interacting with theapplication 120 may not be authorized to grant the access to theresource 122. Instead, an authorizedentity 124 may be tasked with makingrequest 110 approval decisions for users in the organization, in which the authorizedentity 124 may be an administrator, a director, or the like of the organization. The organization, which may be a business, an educational institution, or the like, may institute such a policy to centralize reviews and decision making on access requests to, for instance, enhance security on theresource 122, network, servers, and/or the like. The organization may also or additionally institute such a policy to prevent or limit approval by certain types of users, such as minors. - In some examples, the apparatus 102 may store a
pending request 110 for access to theresource 122 in adata store 108 such that the apparatus 102 may track whether thepending request 110 is approved or rejected over a duration of time. The authorizedentity 124 may thus be given a certain length of time to approve or reject therequest 110 such that the authorizedentity 124 may make this determination at some time after theapplication 120 submitted therequest 110 to access theresource 122. In this regard, the authorizedentity 124 may make the determination asynchronously with the submission of therequest 110. - The apparatus 102 may include a
processor 104 that may control operations of the apparatus 102 and amemory 106 on which data that theprocessor 104 may access and/or may execute may be stored. Theprocessor 104 may be a semiconductor-based microprocessor, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or other hardware device. Thememory 106, which may also be termed a computer readable medium, may be, for example, a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like. Thememory 106 may be a non-transitory computer readable storage medium, where the term “non-transitory” does not encompass transitory propagating signals. In any regard, thememory 106 may have stored thereon machine-readable instructions that theprocessor 104 may execute. - Although the apparatus 102 is depicted as having a
single processor 104, it should be understood that the apparatus 102 may include additional processors and/or cores without departing from a scope of the apparatus 102. In this regard, references to asingle processor 104 as well as to asingle memory 106 may be understood to additionally or alternatively pertain tomultiple processors 104 andmultiple memories 106. In addition, or alternatively, theprocessor 104 and thememory 106 may be integrated into a single component, e.g., an integrated circuit on which both theprocessor 104 and thememory 106 may be provided. In addition, or alternatively, the operations described herein as being performed by theprocessor 104 may be distributed across multiple apparatuses 102 and/ormultiple processors 104. - As shown in
FIG. 2 , thememory 106 may have stored thereon machine-readable instructions 200-210 that theprocessor 104 may execute. Although the instructions 200-210 are described herein as being stored on thememory 106 and may thus include a set of machine-readable instructions, the apparatus 102 may include hardware logic blocks that may perform functions similar to the instructions 200-210. For instance, theprocessor 104 may include hardware components that may execute the instructions 200-210. In other examples, the apparatus 102 may include a combination of instructions and hardware logic blocks to implement or execute functions corresponding to the instructions 200-210. In any of these examples, theprocessor 104 may implement the hardware logic blocks and/or execute the instructions 200-210. As discussed herein, the apparatus 102 may also include additional instructions and/or hardware logic blocks such that theprocessor 104 may execute operations in addition to or in place of those discussed above with respect toFIG. 2 . - The
processor 104 may execute theinstructions 200 to access arequest 110 for access by anapplication 120 to aresource 122. Theresource 122 may be, for instance, a protected resource such as user-owned data, private data, confidential data, company data, and/or the like. By way of particular examples, theresource 122 may include a user's work files, emails, calendar entries, personal files, personal information, confidential work-related information, confidential organization information, and/or the like. In addition, theapplication 120 may seek access to theresource 122 for any of a variety of reasons, such as, for instance, to provide users with an integrated experience with other applications that may have access to theresource 122, to make access to theresource 122 readily available through theapplication 120, to execute as a background application that may move files from one location to another, and/or the like. - In some instances, the
application 120 may use a static set of base permissions to perform basic functions, in which other permissions may be required at a later time. For example, a user 125 may begin using an optional feature that may leverage a different resource, such as importing files into an application that was previously consuming calendar data. In this example, the application may request its base permission set upfront using a consent grant flow, and may later use “incremental consent” to request additional permissions. However, this may only be acceptable if the application continues to be used in an interactive manner after the initial signup/acquisition/deployment process is complete because a user may be required to be present to respond to the access request interactively. Where this model may fail may be a case where the application is granted a base set of permissions during the initial setup after which the application begins running in the background, and later, some event causes the application to require access to additional permissions. As discussed herein, anapplication 120 may request and may be granted the additional permissions without a user (e.g., an authorized user) being present to interactively grant the additional permissions. Instead, an authorizedentity 124 may grant the permissions asynchronously with therequest 110 for the permissions from theapplication 120. - In some examples, the
application 120 may submit therequest 110 directly to the apparatus 102 and/or to a service provided by the apparatus 102. In other examples, theapplication 120 may submit therequest 110 to a user 125 of theapplication 120 and/or anowner 126 of theresource 122 and theprocessor 104 may intercept therequest 110 or the user 125 or theresource owner 126 may forward therequest 110 to the apparatus 102. In yet other examples, an attempted access to theresource 122 by theapplication 120 may trigger the submission of therequest 110 to the apparatus 102 by, for instance, aresource server 128 that may provide and/or store theresource 122. - In any of the examples discussed herein, the apparatus 102 may access the
request 110 through anetwork 130. Thenetwork 130 may be any suitable type of network through which the apparatus 102 may communicate with an authorizedentity 124 as well as other entities in thenetwork environment 100. As shown inFIG. 1 , the other entities may include anauthentication server 132 and anauthorization server 134. Theauthentication server 132 may authenticate theapplication 120, therequest 110, and/or the like, and theauthorization server 134 may generate an authentication token that may enable theapplication 120 to access theresource 122. Thenetwork 130 may be the Internet, a wide area network, a local area network, and/or the like. In addition, for instance, theapplication 120 may access theresource 122 from theresource server 128 via thenetwork 130 should the apparatus 102 approve therequest 110 for access to theresource 122. - The
processor 104 may execute theinstructions 202 to record therequest 110 in adata store 108. In some examples, theprocessor 104 may record therequest 110 with other pending requests, e.g., requests for which instructions as to whether the requests have been approved or rejected have not been received. Theprocessor 104 may also track the durations at which the pending requests have been recorded in thedata store 108. In any regard, thedata store 108 may be a Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, or the like. - The
processor 104 may execute theinstructions 204 to identify an authorizedentity 124 to evaluate the receivedrequest 110. In some examples, theprocessor 104 may identify the authorizedentity 124 in instances in which the user 125 that is interacting with theapplication 120 may not have sufficient authorization to approve/deny theaccess request 110. As discussed herein, a determination as to whether the user 125 is authorized may be based on a set of business logic defined by an organization to which the user 125 may be a member. In instances in which the user 125 is authorized to approve/deny therequest 110, the user 125 may synchronously approve/deny therequest 110. That is, the user 125 may approve/deny therequest 110 when therequest 110 is received from theapplication 120. - In instances in which the user 125 is not authorized to approve/deny the
request 110, theprocessor 104 may identify an entity, such as an administrator of an organization, an executive of an organization, an administrator of an institution, or other type of entity, that is authorized to evaluate therequest 110. The authorizedentity 124 may be authorized to evaluate therequest 110 on behalf of (or in place of) the user 125 and/or theresource owner 126 as well as other members of the organization, institution, and/or the like. In some examples, an identifier of the authorizedentity 124 may be stored in thedata store 108 and theprocessor 104 may identify the authorizedentity 124 by accessing the identifier of the authorizedentity 124 from thedata store 108. In any regard, the organization or institution may have in place business logic that may dictate that a multi-step approval process that may involve more than one person is to be implemented in evaluating whether arequest 110 for access to aresource 122 by an application is to be approved or denied. - In some examples, a number of entities may be defined as authorized
entities 124 and a listing of the authorizedentities 124 may be stored, for instance, in thedata store 108. An administrator or other entity within an organization, institution, and/or the like, may define the authorizedentities 124. Certain ones of the authorizedentities 124 may also be defined to evaluate requests corresponding to certain types ofapplications 120, requests corresponding to certain types ofresource owners 126, requests corresponding to certain types ofresources 122, and/or the like. In addition, theprocessor 104 may identify the authorizedentity 124 that is to evaluate therequest 110 through selection of the authorizedentity 124 from the listing of the authorizedentities 124. For instance, theprocessor 104 may identify the authorizedentity 124 that is defined to evaluate therequest 110 based on, for instance, the type ofapplication 120 that is requesting the access, the type of theowner 126 that owns theresource 122, the type of theresource 122, the type of the user 125, and/or the like. - The
processor 104 may execute theinstructions 206 to output a notification to the authorizedentity 124 to evaluate therequest 110, in which the authorizedentity 124 is to evaluate therequest 110 asynchronously with submission of therequest 110 by theapplication 120. The notification may be a push notification to a device of the authorizedentity 124, an email message to the authorizedentity 124, an entry in a queue of pendingrequests 110 displayed in a dedicated web portal or a mobile application that the authorizedentity 124 may access, and/or the like. Theprocessor 104 may access an identifier of the authorizedentity 124 such as an email address, a name, an IP address, and/or the like stored on thedata store 108 and may output the notification to the accessed identifier. - In some examples, the
processor 104 may determine whether the user 125 has approved the seeking of approval from the authorizedentity 124. In these examples, theprocessor 104 may send a message to the user 125 regarding whether the user 125 would like to seek approval for therequest 110. The message may be a push notification to a device of the user 125, an email message to the user 125, and/or the like. In addition, the user 125 may respond via the push notification, an email message, and/or the like, with an indication that the user 125 approves or rejects the seeking of approval from the authorizedentity 124. Based on receipt of an instruction from the user 125 to seek approval for therequest 110, theprocessor 104 may output the notification to the authorizedentity 124. In some examples, the user 125 may include an indication as to why the user 125 would like to seek approval for therequest 110 from the authorizedentity 124. - However, based on receipt of an instruction from the user 125 to not seek approval for the
request 110, theprocessor 104 may not output a notification to the authorizedentity 124. In addition, theprocessor 104 may reject therequest 110 such that theapplication 120 may not be authorized to access theresource 122. Moreover, theprocessor 104 may clear the record of therequest 110 from thedata store 108. The clearing of the record may include deletion of the record, a modification to the record to indicate that therequest 110 has been rejected, and/or the like. - The
processor 104 may execute theinstructions 208 to determine whether a response is received from the authorizedentity 124. As discussed herein, the authorizedentity 124 may determine whether to approve or reject the request asynchronously with the submission of the request by theapplication 120. To enable the authorizedentity 124 to approve or reject therequest 110 asynchronously with the submission of the request by theapplication 120, theprocessor 104 may track whether therequest 110, a record of which may be stored in thedata store 108, is approved or rejected over a duration of time. Theprocessor 104 may thus provide the authorizedentity 124 with a certain length of time to approve or reject therequest 110 such that the authorizedentity 124 may make this determination at some time after theprocessor 104 received or otherwise accessed therequest 110 to access theresource 122. - In some examples, the
processor 104 may initiate a timer set to a predefined duration responsive to the output of the notification. A user, an administrator, and/or the like, may define the predefined duration. In addition, theprocessor 104 may determine whether the response is received from the authorizedentity 124 prior to expiration of the predefined duration. Based on a determination that the response is not received from the authorizedentity 124 prior to expiration of the predefined duration, theprocessor 104 may output a reminder notification to the authorizedentity 124. In addition, theprocessor 104 may initiate a second timer set to a second predefined duration responsive to the output of the reminder notification. The second predefined duration may be the same as or may differ from the predefined duration and may be user-defined. - The
processor 104 may also determine whether the response is received from the authorizedentity 124 prior to expiration of the second predefined duration. In addition, based on a determination that the response is not received prior to expiration of the second predefined duration, theprocessor 104 may reject therequest 110 for access by theapplication 120 to theresource 122 and may clear the record of therequest 110 from thedata store 108. In other examples, theprocessor 104 may send a further notification or further notifications to the authorizedentity 124 prior to rejecting therequest 110. - The
processor 104 may execute theinstructions 210 to, based on a determination that the response is received, reject or grant therequest 110 based on the response. The response from the authorizedentity 124 may include an instruction to reject therequest 110 or an instruction to grant therequest 110. Based on a determination that the response includes an instruction to reject therequest 110, theprocessor 104 may send a notification to theapplication 120 and/or theresource server 128 that therequest 110 to access theresource 122 has been rejected. Theprocessor 104 may also send a notification to the user 125 that therequest 110 to access theresource 122 has been rejected. In any regard, theprocessor 104 may clear the record of therequest 110 from thedata store 108. For instance, theprocessor 104 may delete the record of therequest 110 from thedata store 108, may modify the record to indicate that therequest 110 has been rejected, and/or the like. - However, based on a determination that the response includes an instruction to grant the
request 110, theprocessor 104 may send a notification to theapplication 120 and/or theresource server 128 that therequest 110 to access theresource 122 has been granted. In addition or alternatively, theprocessor 104 may initiate a grant of access by theapplication 120 to theresource 122. For instance, theprocessor 104 may submit an authorization grant for theapplication 120 to access theresource 122 to theauthorization server 134, which may respond with an access token. Theprocessor 104 may forward the access token to theapplication 120 and theapplication 120 may submit the access token to theresource server 128. Theresource server 128 may respond to theapplication 120 with theresource 122. Theprocessor 104 may also clear the record of therequest 110 from thedata store 108. For instance, theprocessor 104 may delete the record of therequest 110 from thedata store 108, may modify the record to indicate that therequest 110 has been granted, and/or the like. Theprocessor 104 may alternatively initiate the grant of access in other suitable manners. - Various manners in which the
processor 104 of the apparatus 102 may operate are discussed in greater detail with respect to themethods FIGS. 3 and 4 . Particularly,FIGS. 3 and 4 , respectively, depict flow diagrams ofmethods application 120 for access to aresource 122, in which management of the request by an authorizedentity 124 is asynchronous with submission of the request by theapplication 120, in accordance with an embodiment of the present disclosure. It should be understood that themethods methods methods FIGS. 1 and 2 for purposes of illustration. - With reference first to
FIG. 3 , atblock 302, theprocessor 104 may access arequest 110 by anapplication 120 to access aresource 122. As discussed herein, theprocessor 104 may access therequest 110 in any of a variety of manners. In addition, theresource 122 may be a protected resource. - At
block 304, theprocessor 104 may record therequest 110 in adata store 108. For instance, theprocessor 104 may record therequest 122 as an entry among a plurality of pending requests. - At block 306, the
processor 104 may output a notification to an authorizedentity 124, in which the authorizedentity 124 is to evaluate therequest 110. That is, the notification may be outputted to the authorizedentity 124 to notify the authorizedentity 124 of the pendingrequest 110 such that the authorizedentity 124 may decide whether to approve or reject therequest 110. In addition, the decision by the authorizedentity 124 to approve or reject therequest 110 may be asynchronous with the submission by theapplication 120 of therequest 110. That is, for instance, when theprocessor 104 accessed therequest 110 to access theresource 122 by theapplication 120, the authorizedentity 124 may not currently be interacting with theapplication 120 and thus, the authorizedentity 124 may be operating asynchronously with theapplication 120. Instead, for instance, the submission of therequest 110 by theapplication 120 may be synchronous with interactions by the user 125 with theapplication 120 when theprocessor 104 accessed therequest 110 to access theresource 122. - At
block 308, theprocessor 104 may determine whether a response is received from the authorizedentity 124. In addition, at block 310, theprocessor 104 may, based on a determination that the response from the authorizedentity 124 is received, manage therequest 110 based on the response. That is, theprocessor 104 may reject therequest 110 based on the response from the authorizedentity 124 including an instruction to reject therequest 110. Alternatively, theprocessor 104 may initiate a grant of access by theapplication 120 to theresource 122 based on the response from the authorizedentity 124 including an instruction to approve therequest 110 as discussed herein. Theprocessor 104 may also clear the record of therequest 110 from thedata store 108 as also discussed herein following either the rejection or approval of therequest 110. - Turning now to
FIG. 4 , atblock 402, theprocessor 104 may record, in adata store 108, arequest 110 by anapplication 120 to access aresource 122, such as a protected resource. For instance, theprocessor 104 may record therequest 122 as an entry among a plurality of pending requests in thedata store 108. - At
block 404, theprocessor 104 may send a message to the user 125 regarding whether the user 125 would like to seek approval by an authorizedentity 124 for therequest 110. The message may be a push notification to a device of the user 125, an email message to the user 125, and/or the like. In addition, the user 125 may respond via the push notification, an email message, and/or the like, with an indication that the user 125 approves or rejects the seeking of approval from the authorizedentity 124. Based on receipt of an instruction from the user 125 to not seek approval for therequest 110, atblock 408, theprocessor 104 may reject therequest 110. That is, theprocessor 104 may not output a notification to the authorizedentity 124. In addition, atblock 410, theprocessor 104 may clear the record of therequest 110 from thedata store 108. The clearing of the record may include deletion of the record, a modification to the record to indicate that therequest 110 has been rejected, and/or the like. Themethod 400 may also end followingblock 410. - However, at
block 406, based on receipt of an instruction from the user 125 to seek approval for therequest 110, atblock 412, theprocessor 104 may output the notification to the authorizedentity 124. In some examples, the user 125 may include an indication as to why the user 125 would like to seek approval for therequest 110 from the authorizedentity 124. - At
block 414, theprocessor 104 may initiate a timer set to a predefined duration responsive to the output of the notification. The predefined duration may be defined by a user, an administrator, and/or the like. In addition, atblock 416, theprocessor 104 may determine whether the response. Based on a determination that the response is received, theprocessor 104 may manage therequest 110 as indicated atblock 422. In addition, theprocessor 104 may clear the record of therequest 110 atblock 410 and themethod 400 may end. - However, based on a determination that the response is not received at
block 416, theprocessor 104 may determine atblock 418 whether the timer has expired. Based on a determination that the timer has not expired, theprocessor 104 may continue to track whether the response is received until the response is received or the timer has expired. Based on a determination that the timer has expired atblock 418, theprocessor 104 may output a reminder notification to the authorizedentity 124. In addition, theprocessor 104 may determine whether a response has been received atblock 416. Theprocessor 104 may also repeat blocks 416-420 until the response is received. In other examples, based on a failure to receive the response following a predefined number of iterations of blocks 416-420, theprocessor 104 may reject therequest 110 and may clear the record. The predefined number of iterations may be user-defined. Additionally, instead of a predefined number of iterations, theprocessor 104 may reject therequest 110 and may clear the record following a preset duration of time. - Some or all of the operations set forth in each of the
methods methods - Examples of non-transitory computer readable storage media include computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
- Turning now to
FIG. 5 , there is shown a block diagram of a computer-readable medium 500 that may have stored thereon computer-readable instructions for managing arequest 110 by anapplication 120 for access to aresource 122, in which an authorizedentity 124 is to approve or reject therequest 110 asynchronously with submission of the request by theapplication 120, in accordance with an embodiment of the present disclosure. It should be understood that the computer-readable medium 500 depicted inFIG. 5 may include additional instructions and that some of the instructions described herein may be removed and/or modified without departing from the scope of the computer-readable medium 500 disclosed herein. The computer-readable medium 500 may be a non-transitory computer-readable medium, in which the term “non-transitory” does not encompass transitory propagating signals. - The computer-
readable medium 500 may have stored thereon computer-readable instructions 502-508 that a processor, such as theprocessor 104 depicted inFIGS. 1 and 2 , may execute. The computer-readable medium 500 may be an electronic, magnetic, optical, or other physical storage device that contains or stores executable instructions. The computer-readable medium 500 may be, for example, Random Access memory (RAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), a storage device, an optical disc, and the like. - The processor may fetch, decode, and execute the
instructions 502 to record, in adata store 108, arequest 110 for access by anapplication 120 to aresource 122 owned by aresource owner 126. A user 125 of theapplication 120 may be interacting with theapplication 120 when the processor received therequest 110. - The processor may fetch, decode, and execute the instructions 504 to output a notification to an authorized
entity 124, in which the authorizedentity 124 is to determine whether therequest 110 is approved or rejected asynchronously with submission of therequest 110 by theapplication 120 and the authorizedentity 124 is to return a response as to whether therequest 110 is rejected or granted. In some examples, the processor may initiate a timer that may be set to a predefined duration responsive, e.g., after, the output of the notification. In these examples, the processor may determine whether the response is received prior to expiration of the predefined duration and may, based on a determination that the response is not received prior to expiration of the predefined duration, output a reminder notification to the authorized entity or reject the request. In other examples, the processor may, based on a determination that the response is not received prior to expiration of the predefined duration, output a reminder notification to the authorizedentity 124 and may initiate another timer. - In some examples, prior to outputting the notification, the processor may send a message to the
resource owner 126 regarding whether theresource owner 126 would like to seek approval for the request. In these examples, based on receipt of an instruction from theresource owner 126 to seek approval for therequest 110, the processor may output the notification to the authorizedentity 124. However, based on receipt of an instruction from theresource owner 126 to not seek approval for therequest 110, the processor may reject therequest 110 for access by theapplication 120 to theresource 120 and may clear the record of therequest 110 from thedata store 108. - The processor may fetch, decode, and execute the
instructions 506 to determine whether the response is received from the authorizedentity 124. In addition, the processor may fetch, decode, and execute theinstructions 508 to, based on a determination that the response is received, manage therequest 110 based on the response and clear the record of therequest 110 from thedata store 108. That is, based on the response including an instruction that therequest 110 is approved, the processor may initiate a grant of access by theapplication 120 to theresource 122. However, based on the response including an instruction that therequest 110 is rejected, the processor may output an indication that therequest 122 has been rejected. - Although described specifically throughout the entirety of the instant disclosure, representative examples of the present disclosure have utility over a \wide range of applications, and the above discussion is not intended and should not be construed to be limiting, but is offered as an illustrative discussion of aspects of the disclosure.
- What has been described and illustrated herein is an example of the disclosure along with some of its variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all terms are meant in their broadest reasonable sense unless otherwise indicated.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/355,290 US20230359750A1 (en) | 2020-09-23 | 2023-07-19 | Asynchronous authorization of application access to resources |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/030,025 US11748499B2 (en) | 2020-09-23 | 2020-09-23 | Asynchronous authorization of application access to resources |
US18/355,290 US20230359750A1 (en) | 2020-09-23 | 2023-07-19 | Asynchronous authorization of application access to resources |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/030,025 Continuation US11748499B2 (en) | 2020-09-23 | 2020-09-23 | Asynchronous authorization of application access to resources |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230359750A1 true US20230359750A1 (en) | 2023-11-09 |
Family
ID=80740443
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/030,025 Active 2041-10-22 US11748499B2 (en) | 2020-09-23 | 2020-09-23 | Asynchronous authorization of application access to resources |
US18/355,290 Pending US20230359750A1 (en) | 2020-09-23 | 2023-07-19 | Asynchronous authorization of application access to resources |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/030,025 Active 2041-10-22 US11748499B2 (en) | 2020-09-23 | 2020-09-23 | Asynchronous authorization of application access to resources |
Country Status (1)
Country | Link |
---|---|
US (2) | US11748499B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
LU102215B1 (en) * | 2020-11-24 | 2022-05-25 | Microsoft Technology Licensing Llc | Scenario-based access control |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1134644A2 (en) * | 2000-03-14 | 2001-09-19 | International Business Machines Corporation | Method and system for verifying access to a network environment |
JP2009118174A (en) * | 2007-11-06 | 2009-05-28 | Hitachi Ltd | Information processing apparatus, approval method, and program |
US20150039700A1 (en) * | 2013-08-05 | 2015-02-05 | Aol Inc. | Systems and methods for managing electronic communications |
US20180375791A1 (en) * | 2017-06-23 | 2018-12-27 | Ca, Inc. | Authorization of varying levels of access to a resource server |
US10867291B1 (en) * | 2018-11-28 | 2020-12-15 | Square, Inc. | Remote association of permissions for performing an action |
US20210352069A1 (en) * | 2020-05-11 | 2021-11-11 | Citrix Systems, Inc. | Local authentication virtual authorization |
US11341504B1 (en) * | 2019-03-28 | 2022-05-24 | NortonLifeLock Inc. | Realtime financial transaction approval |
US20230130093A1 (en) * | 2016-02-09 | 2023-04-27 | Rovi Guides, Inc. | Systems and methods for allowing a user to download a blocked media asset |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6567108B1 (en) * | 1999-11-11 | 2003-05-20 | Syndi Beth Master | Computer implemented method of implementing, maintaining, and updating a brand architecture system |
JP5022141B2 (en) * | 2007-08-22 | 2012-09-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Relay device, relay method and relay program for relaying data communication |
WO2015006307A1 (en) * | 2013-07-09 | 2015-01-15 | Contentraven, Inc. | Systems and methods for trusted sharing |
US9825944B2 (en) * | 2014-01-24 | 2017-11-21 | Microsoft Technology Licensing, Llc | Secure cryptoprocessor for authorizing connected device requests |
US20180115551A1 (en) * | 2016-10-20 | 2018-04-26 | Brian Cole | Proxy system for securely provisioning computing resources in cloud computing environment |
US11025635B2 (en) * | 2017-01-30 | 2021-06-01 | Ncr Corporation | Secure remote support authorization |
US10560349B2 (en) * | 2018-01-31 | 2020-02-11 | Salesforce.Com, Inc. | Data consistency of policy enforcement for distributed applications |
-
2020
- 2020-09-23 US US17/030,025 patent/US11748499B2/en active Active
-
2023
- 2023-07-19 US US18/355,290 patent/US20230359750A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1134644A2 (en) * | 2000-03-14 | 2001-09-19 | International Business Machines Corporation | Method and system for verifying access to a network environment |
JP2009118174A (en) * | 2007-11-06 | 2009-05-28 | Hitachi Ltd | Information processing apparatus, approval method, and program |
US20150039700A1 (en) * | 2013-08-05 | 2015-02-05 | Aol Inc. | Systems and methods for managing electronic communications |
US20230130093A1 (en) * | 2016-02-09 | 2023-04-27 | Rovi Guides, Inc. | Systems and methods for allowing a user to download a blocked media asset |
US20180375791A1 (en) * | 2017-06-23 | 2018-12-27 | Ca, Inc. | Authorization of varying levels of access to a resource server |
US10867291B1 (en) * | 2018-11-28 | 2020-12-15 | Square, Inc. | Remote association of permissions for performing an action |
US11341504B1 (en) * | 2019-03-28 | 2022-05-24 | NortonLifeLock Inc. | Realtime financial transaction approval |
US20210352069A1 (en) * | 2020-05-11 | 2021-11-11 | Citrix Systems, Inc. | Local authentication virtual authorization |
Also Published As
Publication number | Publication date |
---|---|
US20220092197A1 (en) | 2022-03-24 |
US11748499B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12314360B2 (en) | Supervised learning system for identity compromise risk computation | |
US10452866B2 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US10289870B2 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
KR102595830B1 (en) | Location-based access to controlled access resources | |
US9311679B2 (en) | Enterprise social media management platform with single sign-on | |
US10250612B1 (en) | Cross-account role management | |
US20200210500A1 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US20190266350A1 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US20190268344A1 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US8763078B1 (en) | System and method for monitoring authentication attempts | |
JP6785808B2 (en) | Policy forced delay | |
US20130036455A1 (en) | Method for controlling acess to resources | |
JP5789390B2 (en) | Business information protection device, business information protection method, and program | |
US20210250360A1 (en) | Secure remote support authorization | |
US10560435B2 (en) | Enforcing restrictions on third-party accounts | |
US10445514B1 (en) | Request processing in a compromised account | |
US10565397B1 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US11741245B2 (en) | Self-management of devices using personal mobile device management | |
WO2019028447A1 (en) | Data processing systems for fulfilling data subject access requests and related methods | |
US20230359750A1 (en) | Asynchronous authorization of application access to resources | |
JP2008117317A (en) | Business information protection device | |
US20230135054A1 (en) | System and Methods for Agentless Managed Device Identification as Part of Setting a Security Policy for a Device | |
JP5952466B2 (en) | Business information protection device, business information protection method, and program | |
US20210141931A1 (en) | Data processing systems for identity validation for consumer rights requests and related methods | |
KR102202109B1 (en) | Questionnaire security system and method by multi-authorization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAKOWICZ, JEFFREY THOMAS;STEENWYK, ADAM JAMES;CHOWDHURY, ZAWAD;AND OTHERS;SIGNING DATES FROM 20200922 TO 20200930;REEL/FRAME:064318/0957 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION COUNTED, NOT YET MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |