Method for controlling enforcement policies across policy enforcement points of distributed access control system and method for constraining policies of access control system governing authorization access to digital data resources
Patent Information
- Application Number
- PCT/CN2025/078380
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-21
- Publication Date
- 2026-08-27
Smart Images

Figure CN2025078380_27082026_PF_FP_ABST
Abstract
Description
METHOD FOR CONTROLLING ENFORCEMENT POLICIES ACROSS POLICY ENFORCEMENT POINTS OF DISTRIBUTED ACCESS CONTROL SYSTEM AND METHOD FOR CONSTRAINING POLICIES OF ACCESS CONTROL SYSTEM GOVERNING AUTHORIZATION ACCESS TO DIGITAL DATA RESOURCESTECHNICAL FIELD
[0001] The disclosure relates generally to an access and usage control framework, specifically focusing on policy enforcement, and more particularly, the disclosure relates to a method of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource. Moreover, the disclosure relates to a system of controlling enforcement policies for one or more policy enforcement points, PEPs, of the distributed access control system for governing access to the digital data resource. The disclosure also relates generally to an access and usage control framework, specifically focusing on authorization management, and more particularly, the disclosure relates to a method of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource. Moreover, the disclosure relates to a system of constraining the use of policies of the access control system which governs the authorization related to the subject’s access to the digital data resource.BACKGROUND
[0002] An access / usage control system is a security mechanism to safeguard digital data resources by managing the rights of subjects to access them. The access / usage control system operates based on policies that define the conditions and requirements for granting access to a digital data resource. Usage control adds a temporal dimension to authorizations. It continuously monitors the usage of the resource and if a policy is violated due to changes in the condition, it revokes authorization.
[0003] FIG. 1A illustrates a typical access / usage control system 102 according to a prior art implementation. A subject 104 refers to an entity such as an organization, human user, or software program that requests access to a digital data resource 106. The access / usage control system 102 acts as an intermediary. It intercepts the access requests from the subject 104 and either authorizes or denies these requests based on authorization policies 108. The digital data resource 106 represents a digital asset requiring protection, which may include data, files, software, hardware, etc. The authorization policies 108 specify the conditions for governing access authorizations. These conditions may consider various factors, such as time constraints, organizational roles, or other contextual requirements. The authorization policies 108 may also include mandatory actions that need to be enforced either before or after granting authorization.
[0004] FIG. 1B illustrates components of the access / usage control system 102 of FIG. 1A according to a prior art implementation. This prior art implementation uses an eXtensible Access Control Markup Language, XACML, architecture. Other implementations may use different components that achieve similar functionality. The XACML architecture is a data-flow architecture that is standardized by Organization for the Advancement of Structured Information Standards, OASIS, Open. In the XACML implementation, the access / usage control system 102 typically comprises six key components that manage access rights. The components include a Policy Decision Point, PDP, 110, a Policy Administration Point, PAP, 112, a context handler 114, a Policy Enforcement Point, PEP, 116, an obligation service 118, and a Policy Information Point, PIP, 120. The PDP 110 evaluates security policies against an access response and its associated context. The PDP 110 provides the authorization decision and identifies any obligations that need to be enforced. The PAP 112 stores and manages the authorization policies 108. The PAP 112 provides an administrative interface that allows authors of the authorization policies 108 to create, modify, or delete authorization policies 108 within the access / usage control system 102.
[0005] The context handler 114 manages authorizations from beginning to end. As the central component, the context handler 114 coordinates interactions among all other components, processes access requests, and tracks their status. The PEP 116 protects the digital data resource 106 by intercepting access to the digital data resource 106 and sending authorization requests to the context handler 114. The PEP 116 enforces the authorization decisions from the PDP 110 and grants or denies access to the digital data resource 106 accordingly.
[0006] The obligation service 118 executes mandatory actions specified by the authorization policies 108, either before or after granting authorization. The obligation service 118 acts as an auxiliary system for PEPs 116, and ensures these mandatory actions are enforced with authorization decisions. The PIP 120 provides the contextual information required for decision-making, such as user roles, time, file types, and other attributes referenced in the authorization policies 108.
[0007] FIG. 1C illustrates interactions between the components of the access / usage control system 102 of FIG. 1A according to a prior art implementation. The components of the access / usage control system 102 include the Policy Decision Point, PDP, 110, the Policy Administration Point, PAP, 112, the context handler 114, the Policy Enforcement Point, PEP, 116, the obligation service 118, and the Policy Information Point, PIP, 120. At a step 121, the subject 104 initiates an attempt to access a digital data resource 106 through the PEP 116. At a step 122, the PEP 116 intercepts the access request and makes an evaluation request to the context handler 114 for evaluation. At a step 123, the context handler 114 queries the PIP 120 to gather all the relevant attribute information required for the evaluation. At a step 124, the PIP 120 responds by providing the required attribute values to the context handler 114. At a step 125, the context handler 114 then sends an authorization decision request to the PDP 110. At a step 126, the PDP 110 queries the PAP 112 to retrieve all relevant policies for the request. At a step 127, the PAP 112 provides the relevant policies to the PDP 110. At a step 128, the PDP 110 evaluates the policies against the provided attributes and access request, and then sends the authorization decision back to the context handler 114. At a step 129, the context handler 114 forwards the authorization decision to the PEP 116. At a step 130, based on the decision, the PEP 116 enforces the decision and invokes the obligation service 118 to execute the corresponding obligations specified in the policy. At a step 131, the PEP 116 either grants or denies the subject 104 access to the digital data resource 106 based on the decision.
[0008] An existing system introduces a usage control system that is designed as Usage Control Plus, UCON+, based on the XACML implementation. This existing system, UCON+, uses the XACML framework to enable continuous usage control with authorization revocation. It classifies policies into three temporal phases such as before access, during access, and after access. The XACML framework executes policies based on the relevant phase. For example, if access is in progress, only the policies associated with the during access phase are executed. While this classification influences policy selection based on temporal aspects, UCON+ has limitations as follows. First, it does not support distributed enforcement across multiple enforcers in different locations, and fails to address dependencies between actions that need enforcement. Further, this existing system also fails to resolve the challenge of applying constraints on policy selection and execution.
[0009] Another existing system improves the UCON+ framework by adding finer temporal phases. This allows policies to be classified with greater granularity than the original three-phase model. However, it does not define general constraints beyond classification to govern policy selection and execution. Further, the existing system does not address two challenges such as distributed enforcement of policies across multiple enforcers in different locations and dependencies between actions that need to be enforced. This existing system does not solve the problem of applying constraints on policy selection and execution.
[0010] Yet another existing system addresses the issue of non-determinism in obligations within the XACML framework. It analyses the standard and explains how combining algorithms affect the selection of obligations / mandatory actions and their dependencies. However, this existing system has significant limitations as it does not address the challenge of distributed policy enforcement across multiple enforcers in different locations. Further, it lacks a mechanism to define and enforce general dependencies between actions that need to be executed. It also fails to address the problem of applying constraints on policy selection and execution.
[0011] Access / usage control systems require Policy Enforcement Points (PEPs) to enforce policy decisions and obligations. However, they do not define specific enforcement methods. For example, some applications need actions to follow a specific order, while others require policies to be enforced by the PEPs in different locations. In such cases, synchronization between PEPs is necessary for consistent and coordinated enforcement. Further, the lack of standardized enforcement methods creates major challenges in different application contexts.
[0012] Therefore, there arises a need to address the aforementioned technical problems / drawbacks in the existing enforcement methodologies.
[0013] An access / usage control system typically selects and enforces policies that match the specific access requests. For example, if an access request seeks read access to a particular file, the access / usage control system may evaluate and apply all relevant policies governing read access to that file. However, many applications require restricting the policies that are enforced and influencing the policy selection process itself.
[0014] For instance, an access request may be part of a broader business process, which requires the enforcement of only those policies relevant to the specific stage of that process. Similarly, the policies should be enforced with the relevant phase of the data lifecycle (e.g., collection, retention, or transfer) . Furthermore, the selection and enforcement of policies must adhere to compliance requirements, including regulatory obligations and the geographic locality of the application.
[0015] Therefore, there arises a need to address the aforementioned technical problems / drawbacks in constraining the policies within access control systems.SUMMARY
[0016] It is an object of the disclosure to provide a method of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource. Moreover, the disclosure relates to a system of controlling enforcement policies for one or more policy enforcement points, PEPs, of the distributed access control system for governing access to the digital data resource. Further, the disclosure relates to a computer program that includes instructions for carrying out the method, when the computer program is executed on a computer system.
[0017] This object is achieved by the features of the independent claims. Further, implementation forms are apparent from the dependent claims, the description, and the figures.
[0018] According to a first aspect, there is provided a method of controlling enforcement policies for a plurality of policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource. The distributed access control system is distributed across a plurality of geographical locations, and a PEP is located at each geographical location. The method includes receiving a declaration record message from each of the plurality of PEPs. The declaration record message indicates an identifier to identify the PEP, the geographic location of the PEP, the digital data resources protected by the PEP and actions that the PEP can enforce. The method includes receiving an execution record message from each of the plurality of PEPs. The execution record message indicates actions that must be enforced, dependencies between actions that must be respected during execution, and a report that indicates a status of actions to the system and to the other PEPs, and a plurality of conditions that specify which of the plurality of PEPs is to enforce the actions. Each PEP uses the received declaration record messages and execution record messages from the other PEPs to control enforcement policies in the distributed access control system to control access to the digital data resource by a subject requesting such access.
[0019] Optionally, the distributed access control system implements the eXtensible Access Control Markup Language, XACML, standard. The XACML standard is an open standard defined by Organization for the Advancement of Structured Information Standards, OASIS, for specifying access control policies in XML format. It explains how to enforce, evaluate, and manage access decisions consistently.
[0020] Preferably, a PEP enforces a decision received from a context handler, which may be a component of the system that determines access rights based on predefined policies or rules. Here, the PEP acts as the enforcer of the context handler's decision to ensure that the specified access permissions are adhered to. Optionally, a PEP receives an access request from the subject for access to the digital data resource. The PEP evaluates this access request using the enforcement policies derived from the declaration and execution record messages received from other PEPs in the distributed access control system before providing access to the digital data resource.
[0021] Preferably, the PEP sends the decision received from the context handler to the subject requesting access to the digital data resource. By communicating the decision to the subject, the PEP ensures that the subject is immediately informed about whether the access has been granted or denied, along with any conditions or restrictions associated with the decision. This approach minimizes delays in the enforcement process.
[0022] Preferably, each PEP uses the received declaration record messages and execution record messages to carry out an execution record handling logic to decide whether the PEP should enforce an action and how to enforce an action if the PEP is to enforce the action. This minimizes errors by ensuring that only the appropriate PEP enforces actions and improves coordination across the distributed access control system.
[0023] Preferably, an enforcement policy may specify how to enforce the actions indicated in the execution record messages to specify how policy decisions must be enforced across the plurality of PEPs. Optionally, the enforcement policy specifies dependencies between actions, which PEP must enforce which specific action, or a next step to be taken when the enforcement of a specific action fails. Preferably, the execution record handling logic checks whether the received messages indicate that a specific PEP is assigned to handle a received execution record. By checking this, the method avoids conflicting enforcement actions across the plurality of PEPs. Further, this enhances the system efficiency by reducing incorrect enforcement to ensure that each PEP enforces actions only within its scope.
[0024] Optionally, the execution record handling logic checks whether the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages. Optionally, when the execution record handling logic determines that the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages, the logic checks whether the actions depend on other actions. The method ensures accurate enforcement by verifying that a specific PEP has the necessary capabilities to handle the actions as described in the received messages. This prevents inappropriate or ineffective enforcement by PEPs. Further, by checking for dependencies between actions, the logic ensures that actions are executed in the correct sequence. Optionally, the distributed access control system may implement the ALFA, Cedar, OPA, IDQL, or Graph-based architectures.
[0025] According to a second aspect, there is provided a system comprising means adapted for carrying out all the steps of the above described method.
[0026] According to a third aspect, there is provided a computer program including instructions for carrying out all the steps of the above described method, when the computer program is executed on a computer system.
[0027] The method, system and computer program enable synchronized policy enforcement in the distributed access control system. The method specifies dependencies between actions for logical execution. The method dynamically guides the PEPs through execution record messages to determine whether and how to enforce actions. By defining conditions, dependencies, and failure-handling strategies, the method enables control of enforcement policies and coordinated execution of actions across multiple PEPs. This synchronization minimizes inconsistencies and conflicts during policy enforcement in the distributed access control systems.
[0028] The method supports an architecture that can manage PEPs in a distributed access control system. It also supports extensions, such as Abbreviated Language for Authorization, ALFA, Cedar, Open Policy Agent, OPA. The method is compatible with various access control frameworks, including XACML, ALFA, Cedar, OPA, and Identity Query Language, IDQL. This compatibility broadens its applicability across different industries and systems. The method provides real-time feedback to the distributed access control system and other PEPs through execution record messages and status updates. The method customizes action selection and execution based on PEP capabilities and metadata for optimizing resource use. Unlike existing systems, it addresses problem in applying constraints to policy selection and ensures only relevant policies are executed under appropriate conditions.
[0029] Therefore, in contradistinction to the existing solutions, the system enables synchronized policy enforcement in distributed access control. It specifies action dependencies for logical execution and guides PEPs through execution record messages to determine enforcement. By defining conditions, dependencies, and failure-handling strategies, the system ensures coordinated action execution across multiple PEPs, minimizing inconsistencies and conflicts.
[0030] These and other aspects of the disclosure will be apparent from the implementation (s) described below.
[0031] It is an object of the disclosure to a method of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource. Moreover, the disclosure relates to a system of constraining the use of policies of the access control system which governs the authorization related to the subject’s access to the digital data resource. Further, the disclosure relates to a computer program that includes instructions for carrying out the method, when the computer program is executed on a computer system.
[0032] This object is achieved by the features of the independent claims. Further, implementation forms are apparent from the dependent claims, the description, and the figures.
[0033] According to a further aspect, there is provided a method of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource. The method includes establishing a hierarchy of policies including: (i) a first set of policies defined as governance policies, which are used to govern an authorization during the lifecycle of the authorization; (ii) a second set of policies defined as authorization policies, which manage access rights to the digital data resource by the subject in the access control system; and (iii) a third set of policies defined as enforcement policies, which specify how decisions and actions related to the access rights are to be enforced by the access control system. The method includes using the governance policies in the first set of policies in the hierarchy to set constraints on the authorization policies in the second set of policies and on the enforcement policies in the third set of policies, to orchestrate the authorization throughout the lifecycle of the authorization.
[0034] Preferably, the governance policies set constraints by setting or modifying a plurality of attribute values to influence the applicability and selection of policies in at least one of the second or third set of policies.
[0035] Preferably, the governance policies orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies. Optionally, the governance policies orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies by specifying how the policies react to violations.
[0036] Preferably, the authorization policies in the second set of policies are extended to enable them to set constraints on the enforcement policies in the third set of policies. Optionally, the authorization policies set constraints by setting or modifying a plurality of attribute values to influence the applicability and selection of the enforcement policies in the third set of policies. The method provides an advanced authorization enforcement and policy management technology that integrates with various enterprise solutions such as applications, networks, private cloud computing, and data spaces. Additionally, the method supports standardization efforts such as Abbreviated Language for Authorization, ALFA, 2.0 (i.e. within organizations such as Internet Engineering Task Force, IETF, or OpenID) and AuthZen Working Group, WG, of OpenID. The ALFA 2.0 builds upon the original ALFA by implementing a constrained policy language to address the challenges in authorization. The AuthZen WG provides standards for communicating access policies to policy decision points and identifying common usage patterns to improve interoperability.
[0037] Optionally, the governance policies specify a plurality of stages of a lifecycle of the authorization. Optionally, the enforcement policies specify an order in which actions must be enforced. Optionally, the enforcement policies specify a manner of reaction of the access control system when enforcement of a policy fails or is violated.
[0038] Optionally, the access control system implements the eXtensible Access Control Markup Language, XACML, standard. The XACML standard is an open standard defined by Organization for the Advancement of Structured Information Standards, OASIS, for specifying access control policies in XML format. It explains how to enforce, evaluate, and manage access decisions consistently.
[0039] Preferably, the access control system implementing the XACML standard includes a governance layer having a Governance Policy Administration Point (GPAP) which provides an administrative interface to add, delete or modify governance policies. Optionally, the access control system implementing the XACML standard includes a governance layer having a Governance Policy Decision Point (GPDP) which evaluates and executes governance policies. Optionally, the access control system implementing the XACML standard includes an authorization manager which manages authorizations. Optionally, the governance policies in the first set of policies set constraints on the authorization policies in the second set of policies and on the enforcement policies in the third set of policies by setting or modifying an attribute value.
[0040] The method improves access and usage control technologies in standards such as the XACML and other frameworks such as Open Policy Agent OPA / Rego in a Cloud Native Framework, CNF, Google Zanzibar, and Relationship-Based Access Control, RelBAC, which are adopted across ICT applications, networks, and data protection systems. The method improves the ability of these technologies by enforcing authorization and policy requirements effectively. The method also improves the enforcement of Data Usage Control, as specified by the International Data Spaces Association (IDSA) through Open Source Software, OSS, and the specifications developed by the Eclipse Data Space Working Group (WG) . Further, the method improves the enforcement standardization defined by organizations such as ISO and European Committee for Standardization, CEN / European Committee for Electrotechnical Standardization, CENELEC, which depend on enforcing obligation statements at multiple stages of data transactions. By improving these capabilities, the method enhances the state of the art in enforcing data policies and enables stronger protection and compliance across complex digital ecosystems.
[0041] According to a still further aspect, there is provided a system comprising means adapted for carrying out all the steps of the above described method.
[0042] According to a still further aspect, there is provided a computer program including instructions for carrying out all the steps of the above described method, when the computer program is executed on a computer system.
[0043] The method, system and computer program improve access and usage control technologies that address critical requirements for authorization and policy enforcement across various domains such as data spaces, enforcement of data privacy policies, Identity and Access Management (IAM) , ICT cloud environments, device cloud infrastructures, system access control, application security, network access control, ICT resource usage control and digital rights management.
[0044] The method improves the contextualization of policy selection and evaluation, and ensures compliance with regulations specific to policy enforcement location. The method also supports authorization revision and revocation in response to environmental changes or evolving authorization management requirements such as controlled privilege restriction or escalation, modifications to resource access during processing, resource lifecycle updates, or shifts in computational state.
[0045] Therefore, in contradistinction to the existing solutions, the system addresses the drawbacks in applying constraints to policy selection and ensures that only the relevant policies are executed under appropriate conditions. The system improves access and usage control technologies that address critical requirements for authorization and policy enforcement across various domains such as data spaces, enforcement of data privacy policies. The system provides an advanced authorization enforcement and policy management technology that integrates with various enterprise solutions such as applications, networks, private cloud computing, and data spaces.
[0046] These and other aspects of the disclosure will be apparent from the implementation (s) described below.BRIEF DESCRIPTION OF DRAWINGS
[0047] Implementations of the disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0048] FIG. 1A (PRIOR ART) illustrates a typical access / usage control system according to a prior art implementation;
[0049] FIG. 1B (PRIOR ART) illustrates components of the access / usage control system of FIG. 1A according to a prior art implementation;
[0050] FIG. 1C (PRIOR ART) illustrates interactions between the components of the access / usage control system of FIG. 1A according to a prior art implementation;
[0051] FIG. 2 is a block diagram that illustrates a system of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource in accordance with an implementation of the disclosure;
[0052] FIG. 3 illustrates a structure of a declaration record message from one or more policy enforcement points, PEPs, of a distributed access control system in accordance with an implementation of the disclosure;
[0053] FIG. 4 illustrates a structure of an execution record message from one or more policy enforcement points, PEPs, of a distributed access control system in accordance with an implementation of the disclosure;
[0054] FIG. 5 illustrates an input and an output of enforcement policies for one or more policy enforcement points, PEPs, in a distributed access control system to control access to a digital data resource in accordance with an implementation of the disclosure;
[0055] FIG. 6 is a flowchart that illustrates an execution record handling logic followed by each policy enforcement point, PEP, in a distributed access control system to enforce / execute actions (i.e., decisions and obligations) in accordance with an implementation of the disclosure;
[0056] FIG. 7 is a flow diagram that illustrates a method of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource in accordance with an implementation of the disclosure;
[0057] FIG. 8 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations may be implemented;
[0058] FIG. 9 is a block diagram that illustrates a system of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource in accordance with an implementation of the disclosure;
[0059] FIG. 10 illustrates an exemplary view of a hierarchy of policies of established by a system in accordance with an implementation of the disclosure;
[0060] FIG. 11 illustrates a high-level architecture of a system in accordance with an implementation of the disclosure;
[0061] FIG. 12 illustrates a high-level architecture of a system for constraining the use of policies of an access control system implementing the XACML standard in accordance with an implementation of the disclosure;
[0062] FIG. 13 is a flowchart of a governance-first flow that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure;
[0063] FIGS. 14A-14B are interaction diagrams that illustrate the interactions between components in an XACML standard during a governance-first flow in accordance with an implementation of the disclosure;
[0064] FIG. 15 is a flowchart of an enforcement-first flow that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure;
[0065] FIGS. 16A-16B are interaction diagrams that illustrate the interactions between components in an XACML standard during an enforcement-first flow in accordance with an implementation of the disclosure;
[0066] FIG. 17 is a flowchart of an authorization-first flow that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure;
[0067] FIGS. 18A-18B are interaction diagrams that illustrate the interactions between components in an XACML standard during an authorization-first flow in accordance with an implementation of the disclosure; and
[0068] FIG. 19 is a flow diagram that illustrates a method of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource in accordance with an implementation of the disclosure.DETAILED DESCRIPTION OF THE DRAWINGS
[0069] Implementations of the disclosure provide a method of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource. Moreover, the disclosure relates to a system of controlling enforcement policies for one or more policy enforcement points, PEPs, of the distributed access control system for governing access to the digital data resource. Further, the disclosure relates to a computer program that includes instructions for carrying out the method, when the computer program is executed on a computer system.
[0070] To make solutions of the disclosure more comprehensible for a person skilled in the art, the following implementations of the disclosure are described with reference to the accompanying drawings.
[0071] Terms such as "a first" , "a second" , "a third" , and "a fourth" (if any) in the summary, claims, and foregoing accompanying drawings of the disclosure are used to distinguish between similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that the terms so used are interchangeable under appropriate circumstances, so that the implementations of the disclosure described herein are, for example, capable of being implemented in sequences other than the sequences illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, a method, a system, a product, or a device that includes a series of steps or units, is not necessarily limited to expressly listed steps or units but may include other steps or units that are not expressly listed or that are inherent to such process, method, product, or device.
[0072] FIG. 2 is a block diagram that illustrates a system 200 of controlling enforcement policies 220 for one or more policy enforcement points, PEPs, 208A-N of a distributed access control system 202 for governing access to a digital data resource 206 in accordance with an implementation of the disclosure. The system 200 includes a declaration record message receiving module 214, an execution record message receiving module 218 and an enforcement policy controlling module 216. The distributed access control system 202 is distributed across one or more geographical locations. The one or more PEPs 208A-N are located at each geographical location. Preferably, the distributed access control system 202 implements the eXtensible Access Control Markup Language, XACML, standard. Optionally, the distributed access control system may implement the Abbreviated Language for Authorization, ALFA, Cedar, Open Policy Agent, OPA, Identity Query Language, IDQL, or Graph-based architectures. The declaration record message receiving module 214 receives a declaration record message 210 from each of the one or more PEPs 208A-N to provide information about themselves and their capabilities / functionalities. The declaration record message 210 includes PEP metadata, resource metadata, and capabilities. The PEP metadata includes information related to the PEP (e.g., 208A) that sends the declaration record message 210, such as an identifier, ID, to identify the PEP, the geographic location of the PEP, and other identifying details. The resource metadata includes information about the digital data resources that the PEP is responsible for protecting. The capabilities include one or more actions that the PEP can enforce, such as decisions, obligations, or other operations.
[0073] The system enables synchronized policy enforcement in distributed access control. It specifies action dependencies for logical execution and guides PEPs through execution record messages to determine enforcement. By defining conditions, dependencies, and failure-handling strategies, the system ensures coordinated action execution across multiple PEPs, minimizing inconsistencies and conflicts.
[0074] Optionally, a PEP enforces a decision received from a context handler of the distributed access control system 202. Preferably, a PEP receives an access request from a subject 204 for access to a digital data resource 206. The PEP may send the decision received from the context handler to the subject 204 requesting access to the digital data resource 206.
[0075] The execution record message receiving module 218 receives an execution record message 212 from each of the one or more PEPs 208A-N. The execution record message 212 is used by the PEPs 208A-N to determine what actions to enforce. The PEPs 208A-N report the status of enforcement back to the distributed access control system 202 and to other PEPs. The execution record message 212 may be sent either by the distributed access control system 202 or by other PEPs. The execution record message 212 indicates one or more actions (i.e., decisions, obligations) that must be enforced, dependencies between actions that must be respected during execution, and a report that indicates a status of actions to the distributed access control system 202 and to the other PEPs, and one or more conditions (i.e., a PEP selector) that specify which of the one or more PEPs 208A-N is to enforce the actions.
[0076] The enforcement policy controlling module 216 controls the enforcement policies 220 in the distributed access control system 202. The enforcement policies 220 define how to enforce one or more actions in the declaration record message 210. The evaluation of authorization policies of the distributed access control system 202 generates the one or more actions that specify the decisions and obligations to be enforced. The one or more actions serve as the input for the evaluation of enforcement policies 220. The evaluation process then generates an execution record message 212, which is sent to the PEPs 208A-N and the PEPs 208A-N uses the execution record message 212 to determine how to enforce the actions.
[0077] Each PEP (e.g., 208A-N) uses the received declaration record messages 210 and the execution record messages 212 from the other PEPs to control the enforcement policies 220 in the distributed access control system 202 to control access to the digital data resource 206 by the subject 204 requesting an access of the digital data resource 206.
[0078] Each PEP may use the received declaration record messages 210 and execution record messages 212 to carry out an execution record handling logic to decide whether the PEP should enforce an action and how to enforce an action if the PEP is to enforce the action. This minimizes errors by ensuring that only the appropriate PEP enforces actions and improves coordination across the distributed access control system
[0079] An enforcement policy 220 may specify how to enforce the actions indicated in the execution record messages 212 to specify how policy decisions must be enforced across the one or more PEPs 208A-N. The enforcement policy 220 may specify dependencies between actions, which PEP must enforce which specific action, or a next step to be taken when the enforcement of a specific action fails.
[0080] The execution record handling logic may check whether the received messages indicate that a specific PEP is assigned to handle a received execution record. By checking this, the system avoids conflicting enforcement actions across the plurality of PEPs. Further, this enhances the system efficiency by reducing incorrect enforcement to ensure that each PEP enforces actions only within its scope. The execution record handling logic may check whether the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages. When the execution record handling logic determines that the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages, the logic checks whether the actions depend on other actions.
[0081] FIG. 3 illustrates a structure of a declaration record message 302 from one or more policy enforcement points, PEPs, of a distributed access control system in accordance with an implementation of the disclosure. The declaration record message 302 is sent by the PEPs to provide information about the PEPs and their capabilities / functionalities. The declaration record message 302 includes PEP metadata 304 (in FIG. 3, ‘n’ represents one or more) , resource metadata 306, and capabilities 308. The PEP metadata 304 includes information related to a PEP 310 that sends the declaration record message 302, such as an identifier, ID, to identify the PEP 310, a geographic location of the PEP 310, and other identifying details. The resource metadata 306 includes information about a digital data resource 312 that the PEP 310 is responsible for protecting. The capabilities 308 include one or more actions 314 that the PEP 310 can enforce, such as decisions, obligations, or other operations.
[0082] FIG. 4 illustrates a structure of an execution record message 402 from one or more policy enforcement points, PEPs, of a distributed access control system in accordance with an implementation of the disclosure. The execution record message 402 is used by the PEPs to determine what actions to enforce and to report the status of enforcement back to the distributed access control system and other PEPs. The execution record message 402 may be sent either by the distributed access control system or by other PEPs. The execution record message 402 includes one or more actions 404 (in FIG. 4, ‘n’ represents one or more) , one or more action dependencies 406, a report 408, and a PEP selector 412. The set of actions 404 is a list of actions that must be enforced, such as decisions, obligations, or other operations. The one or more action dependencies 406 are specifications of dependencies between the actions 404 that must be respected during execution. The one or more action dependencies 406 may include a partial order of actions 404. Each action dependency 406 corresponds to one or more actions 404, as illustrated in FIG. 4. The report 408 communicates the status 410 of one or more actions 404 (e.g., failed, in progress, or completed) to the distributed access control system and to the other PEPs. The report 408 includes one or more statuses 410, each associated with a specific action 404. The PEP selector 412 includes one or more conditions 414 that define which PEPs are responsible for enforcing the one or more actions 404 in the execution record message 402, based on the PEP metadata 416.
[0083] FIG. 5 illustrates an input and an output of enforcement policies 506 for one or more policy enforcement points, PEPs, in a distributed access control system to control access to a digital data resource in accordance with an implementation of the disclosure. The enforcement policies 506 define how to enforce one or more actions 504, including decisions and obligations. The evaluation of authorization policies 502 of the distributed access control system generates the one or more actions 504 that specify the decisions and obligations to be enforced. The one or more actions 504 serve as the input for the evaluation of enforcement policies 506. The evaluation process then generates one or more execution record messages 508, which are sent to the PEPs and the PEPs uses the execution record messages 508 to determine how to enforce the actions 504.
[0084] The enforcement policies 506 may add dependencies between actions 504, such as specifying a partial order for their execution. These dependencies are sent to the PEPs in the action dependencies of the execution record message 508. Optionally, the enforcement policies 506 specify which PEPs are responsible for enforcing the actions 504. This information is included in the PEP selector of the execution record message 508. Optionally, the enforcement policies 506 specify strategies for handling failures in enforcing actions. For example, the enforcement policy 506 might require the deletion of a data object if an anonymization obligation fails or is violated.
[0085] FIG. 6 is a flowchart that illustrates an execution record handling logic 600 followed by each policy enforcement point, PEP, in a distributed access control system to enforce / execute actions (i.e., decisions and obligations) in accordance with an implementation of the disclosure. Each action is considered an atomic operation. At a step 601, a PEP receives an execution record message either from the distributed access control system or from other PEPs. At a step 602, the PEP verifies whether a PEP selector of the execution record message matches the PEP metadata. At a step 603, if the PEP selector does not match the PEP metadata, the PEP ignores the execution record message, as it is intended for other PEPs. At a step 604, if the PEP selector matches the PEP metadata, the PEP checks whether it has the capability to execute any of the actions listed in the execution record message. At a step 605, if the PEP does not have the capability to execute any actions, it ignores the execution record message. At a step 606, if the PEP can execute an action, the PEP checks whether this action depends on any other actions. At a step 607, if the action dependencies exist, the PEP ensures that a previous action in the sequence is completed. At a step 608, if the previous action is incomplete, the PEP ignores the execution record message. At a step 609, if there are no action dependencies, or if the previous action is completed, the PEP sends a new execution record message with an updated report to indicate that the action is now active and begins executing the action. At a step 610, the PEP proceeds to execute the action. At a step 611, the PEP checks whether the execution of the action is successful. If the execution of the action fails, the PEP updates the report in the new execution record message to indicate the failure of the action at a step 614. At a step 612, if the execution of the action is successful, the PEP checks whether the action is completed. If the action is not completed, the PEP continues to execute the action at the step 610 until the completion of the action. If the action is completed, then the PEP sends the new execution record message with a report to the distributed access control system and the other PEPs to reflect the completion of the action at a step 613.
[0086] FIG. 7 is a flow diagram that illustrates a method of controlling enforcement policies for one or more policy enforcement points, PEPs, of a distributed access control system for governing access to a digital data resource in accordance with an implementation of the disclosure. At a step 702, a declaration record message is received from each of the plurality of PEPs. The declaration record message indicates an identifier to identify the PEP, the geographic location of the PEP, the digital data resources protected by the PEP and actions that the PEP can enforce. At a step 704, an execution record message is received from each of the plurality of PEPs. The execution record message indicates actions that must be enforced, dependencies between actions that must be respected during execution, and a report that indicates a status of actions to the system and to the other PEPs, and one or more conditions that specify which of the one or more PEPs is to enforce the actions. At a step 706, each PEP uses the received declaration record messages and execution record messages from the other PEPs to control enforcement policies in the distributed access control system to control access to the digital data resource by a subject requesting such access.
[0087] The distributed access control system may implement the XACML standard. The XACML standard is an open standard defined by OASIS to specify access control policies in XML format. It explains how to enforce, evaluate, and manage access decisions. A PEP usually enforces a decision from a context handler. The context handler determines access rights based on rules. The PEP ensures the access permissions from the context handler are followed. The PEP may receive an access request from a subject wanting access to the digital data resource. The PEP then evaluates the request using enforcement policies from the declaration and execution record messages received from other PEPs in the system. The PEP sends the decision from the context handler to the subject. This informs the subject whether access is granted or denied, with conditions if any. Each PEP uses received messages to decide whether and how to enforce actions to minimize errors and improve coordination.
[0088] An enforcement policy can specify how to enforce actions and may include action dependencies, which PEP enforces which actions, and what to do if enforcement fails. The execution record handling logic checks if a PEP is assigned to handle a specific execution record to avoid conflicting actions across PEPs. This reduces incorrect enforcement and ensures each PEP enforces actions within its scope. The logic checks if a PEP has the capability to handle actions and whether the actions depend on others. This ensures accurate enforcement and the correct sequence of actions. Optionally, the distributed access control system may implement ALFA, Cedar, OPA, IDQL, or Graph-based architectures.
[0089] FIG. 8 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations and the implementations to follow below, may be implemented. As shown, the computer system 800 includes at least one processor 804 that is connected to a bus 802, wherein the computer system 800 may be implemented using any suitable protocol, such as PCI (Peripheral Component Interconnect) , PCI-Express, AGP (Accelerated Graphics Port) , Hyper Transport, or any other bus or point-to-point communication protocol (s) . The computer system 800 also includes a memory 806.
[0090] Control logic (software) and data are stored in the memory 806 which may take a form of random-access memory (RAM) . In the disclosure, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus implementation. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms per the desires of the user.
[0091] The computer system 800 may also include a secondary storage 810. The secondary storage 810 includes, for example, a hard disk drive and a removable storage drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, digital versatile disk (DVD) drive, recording device, universal serial bus (USB) flash memory. The removable storage drive at least one of reads from and writes to a removable storage unit in a well-known manner.
[0092] Computer programs, or computer control logic algorithms, may be stored in at least one of the memory 806 and the secondary storage 810. Such computer programs, when executed, enable the computer system 800 to perform various functions as described in the foregoing. The memory 806, the secondary storage 810, and any other storage are possible examples of computer-readable media.
[0093] In an implementation, the architectures and functionalities depicted in the various previous figures may be implemented in the context of the processor 804, a graphics processor coupled to a communication interface 812, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the processor 804 and a graphics processor, a chipset (namely, a group of integrated circuits designed to work and sold as a unit for performing related functions, and so forth) .
[0094] Furthermore, the architectures and functionalities depicted in the various previous-described figures may be implemented in a context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system. For example, the computer system 800 may take the form of a desktop computer, a laptop computer, a server, a workstation, a game console, an embedded system.
[0095] Furthermore, the computer system 800 may take the form of various other devices including, but not limited to a personal digital assistant (PDA) device, a mobile phone device, a smart phone, a television, and so forth. Additionally, although not shown, the computer system 800 may be coupled to a network (for example, a telecommunications network, a local area network (LAN) , a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a cable network, or the like) for communication purposes through an I / O interface 808.
[0096] FIG. 9 is a block diagram that illustrates a system 900 for constraining the use of policies of an access control system 902 which governs an authorization related to a subject’s 904 access to a digital data resource 906 in accordance with an implementation of the disclosure. The system 900 includes a governance policy enabling module 914, an authorization policy enabling module 916 and an enforcement policy enabling module 918. The system 900 establishes a hierarchy of policies that includes a first set of policies, a second set of policies and a third set of policies. The first set of policies is defined as governance policies 908, which are used to govern an authorization during the lifecycle of the authorization. The second set of policies is defined as authorization policies 910, which manage access rights to the digital data resource 906 by the subject 904 in the access control system 102. The third set of policies is defined as enforcement policies 912, which specify how decisions and actions related to the access rights are to be enforced by the access control system 902.
[0097] The governance policy enabling module 914 enables the governance policies 908 to set constraints on the authorization policies 910 in the second set of policies and on the enforcement policies 912 in the third set of policies, to orchestrate the authorization throughout the lifecycle of the authorization. Preferably, the governance policies 908 set constraints by setting or modifying one or more attribute values to influence the applicability and selection of policies in at least one of the second or third set of policies.
[0098] Preferably, the governance policies 908 orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies. Preferably, the governance policies 908 orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies by specifying how the policies react to violations. Optionally, the governance policies 908 specify one or more stages of a lifecycle of the authorization.
[0099] The authorization policy enabling module 916 enables the authorization policies 910 in the second set of policies to set constraints on the enforcement policies 912 in the third set of policies. Optionally, the authorization policies 910 set constraints by setting or modifying one or more attribute values to influence the applicability and selection of the enforcement policies 912 in the third set of policies. For example, the subject's 104 authorization to perform a specific operation is determined by evaluating various attribute values. These attribute values may be associated with the subject, an object, a requested operation, and, in some cases, the surrounding environment.
[0100] The enforcement policy enabling module 918 enables the enforcement policies 912 to specify an order in which actions must be enforced. Optionally, the enforcement policies 912 specify a manner of reaction of the access control system 902 when enforcement of a policy fails or is violated.
[0101] Optionally, the access control system 902 implements an eXtensible Access Control Markup Language, XACML, standard. Preferably, the access control system 902 implementing the XACML standard includes a governance layer having a Governance Policy Administration Point, GPAP, which provides an administrative interface to add, delete or modify the governance policies 908. Preferably, the access control system 902 implementing the XACML standard includes a governance layer having a Governance Policy Decision Point, GPDP, which evaluates and executes the governance policies 908. Preferably, the access control system 902 implementing the XACML standard includes an authorization manager which manages authorizations.
[0102] The authorization manager is the central component of the access control system 902 that manages authorizations and orchestrates the system 900. The GPAP functions as a Policy Administration Point, PAP, of the governance policies 908, and provides an administrative interface to add, edit or delete the policies. The GPDP functions as a Policy Decision Point, PDP, that evaluates and executes the governance policies 908. The GPAP and GPDP do not necessarily need to be physically different components from the PAP and PDP as they provide identical functionalities for different types of policies. They are distinguished at a logical level due to the different types of the policies that they manage and enforce.
[0103] FIG. 10 illustrates an exemplary view of a hierarchy of policies established by a system in accordance with an implementation of the disclosure. The hierarchy of policies influences and constrains one another, as depicted in FIG. 10. The hierarchy of policies includes a first set of policies, a second set of policies and a third set of policies. The first set of policies is defined as governance policies 1002, which are used to govern an authorization during the entire lifecycle (i.e., from the initial request to either revocation or the end of usage) of the authorization. The governance policies 1002 specify one or more stages of the lifecycle of the authorization and specify the conditions required for transitioning between the stages. For instance, in a data usage scenario, the governance policies 1002 may specify the different stages of the data lifecycle.
[0104] The second set of policies is defined as authorization policies 1004 that manage access rights to the digital data resource by the subject in the access control system. The authorization policies 1004 set constraints on the selection and execution of the third set of policies. While the authorization policies 1004 define how decisions and actions should be enforced, the third set of policies further refines and extends these specifications.
[0105] The third set of policies is defined as enforcement policies 1006, which specify how decisions and actions related to the access rights are to be enforced by the access control system. The enforcement policies 1006 may specify an order in which actions must be enforced. The enforcement policies 1006 may specify a manner of reaction of the access control system when enforcement of a policy fails or is violated. For example, the enforcement policies 1006 may dictate a sequence of actions, designate the appropriate Policy Enforcement Points, PEPs, for execution, and specify responses to enforcement failures or violations.
[0106] The constraints between the policies may take various forms to enable one type of policy to influence the selection and execution of another type of policy. The governance policies 1002 may set constraints by setting or modifying one or more attribute values to influence the applicability and selection of policies in at least one of the second or third set of policies within the system. Optionally, the authorization policies 1004 set constraints by setting or modifying one or more attribute values to influence the applicability and selection of the enforcement policies 1006 in the third set of policies. For example, the governance policies 1002 may set attribute values that violate the selection conditions of some authorization policies and meet the selection conditions of others authorization policies, which influences the selection of the authorization policies to be enforced. In another example, after selecting the enforcement policies 1006, the system may make a request to determine which of the selected enforcement policies 1006 are eligible for execution. In this case, the authorization policies 1004 may include conditions to evaluate such requests, which results in the pruning of the selected enforcement policies 1006.
[0107] FIG. 11 illustrates a high-level architecture of a system in accordance with an implementation of the disclosure. The architecture of the system is organized into four layers, each comprising logical components with different roles and responsibilities. The layers of the system include a governance layer 1108, an authorization layer 1110, an enforcement layer 1112 and an information layer 1114. The governance layer 1108 includes components that are responsible for executing governance policies 1102. The components of the governance layer 1108 include a governance evaluator 1116. The governance evaluator 1116 evaluates the governance policies 1102 and sets constraints on both authorization policies 1104 and enforcement policies 1106. These constraints are set by directly interacting with the corresponding evaluators in the other layers.
[0108] The authorization layer 1110 includes components that execute the authorization policies 1104. The primary component of the authorization layer 1110 includes an authorization evaluator 1118 that assesses the authorization policies 1104 and sets constraints on the enforcement policies 1106. These constraints are applied through interactions with an enforcement evaluator 1120 of the enforcement layer 1112.
[0109] The enforcement layer 1112 includes components for executing the enforcement policies 1106. The component of the enforcement layer 1112 includes the enforcement evaluator 1120 that evaluates the enforcement policies 1106 and delegates the resulting actions to enforcers 1122, which executes those actions.
[0110] The information layer 1114 provides the necessary data for policy evaluation across all the layers. The information layer 1114 includes components that prepare context 1124 for all evaluators to evaluate policies. The context 1124 aggregates and prepares all relevant information required for the evaluation of the governance policies 1102, the authorization policies 1104, and the enforcement policies 1106. The context 1124 is shared among the three evaluators (i.e., the governance evaluator 1116, the authorization evaluator 1118 and the enforcement evaluator 1120) , to ensure a consistent and comprehensive basis for policy assessments.
[0111] FIG. 12 illustrates a high-level architecture of a system for constraining the use of policies of an access control system implementing the XACML standard in accordance with an implementation of the disclosure. The architecture of the system is organized into four layers. The layers of the system include a governance layer 1208, an authorization layer 1210, an enforcement layer 1212 and an information layer 1214. The authorization layer 1210 includes a Policy Administration Point, PAP, 1216 and a Policy Decision Point, PDP, 1218. The PAP 1216 stores and manages authorization policies. The PAP 1216 provides an administrative interface that allows authors of the authorization policies to create, modify, or delete the authorization policies within the access control system. The PDP 1218 evaluates the authorization policies.
[0112] The governance layer 1208 includes components to manage and execute governance policies. The components of the governance layer 1208 includes an authorization manager 1202, a Governance Policy Administration Point, GPAP, 1206, and a Governance Policy Decision Point, GPDP, 1204. The authorization manager 1202 serves as the central component of the system that manages authorizations and orchestrates the system. The GPAP 1206 provides an administrative interface to add, delete or modify the governance policies. The GPDP 1204 evaluates and executes the governance policies. The GPAP 1206 and GPDP 1204 are logically different from the PAP 1216 and the PDP 1218 due to different policy types that they handle. However, they (i.e. GPAP 1206 and GPDP 1204) may not necessarily be separate physical components, as their underlying functionalities are similar.
[0113] The enforcement layer 1212 includes Policy Enforcement Points, PEPs, 1226, an enforcement manager 1224, an Enforcement Policy Decision Point, EPDP, 1222, an Enforcement Policy Administration Point, EPAP, 1220. The PEPs 1226 enforce policies by executing the decisions derived from evaluations. The enforcement manager 1224 orchestrates the enforcement of decisions and obligations across different PEPs 1226 and ensure synchronization in enforcing policies and proper execution. The functionality of the enforcement manager 1224 may be implemented as a protocol between the PEPs 1226 to ensure their synchronization in a distributed setting. The EPDP 1222 functions as a PDP that evaluates and executes enforcement policies. The EPAP 1220 functions as a PAP of the enforcement policies (i.e., to manage the enforcement policies) , and provides an administrative interface to add, edit, or delete them. Similar to the governance layer 1208, the EPDP 1222 and the EPAP 1220 are logically different from the PDP 1218 and PAP 1216 due to their specific focus on the enforcement policies. However, these components (i.e. the EPDP 1222 and the EPAP 1220) may not need to be physically separate from the PDP 1218 and PAP 1216.
[0114] The information layer 1214 includes Policy Information Points, PIPs, 1228. The PIPs 1228 collect attribute values from relevant sources and provide this information to the various PDPs (i.e., the PDP 1218, the GPDP 1204, and the EPDP 1222) for policy evaluation.
[0115] FIG. 13 is a flowchart of a governance-first flow 1300 that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure. The hierarchy of policies includes a first set of policies, a second set of policies and a third set of policies. The first set of policies is defined as governance policies, which are used to govern an authorization during the entire lifecycle of the authorization. The second set of policies is defined as authorization policies that manage access rights to the digital data resource by the subject in the access control system. The third set of policies is defined as enforcement policies, which specify how decisions and actions related to the access rights are to be enforced by the access control system. The hierarchy of policies may interact in three different flows (i.e., a governance-first flow, an enforcement-first flow and an authorization-first flow ) to influence and constrain each other. FIG. 13 illustrates the governance-first flow 1300 to influence and constrain each other policies.
[0116] At a step 1301, the authorization process begins when an access request is initiated from a subject. At a step 1302, the system selects the governance policies that match the access request (i.e., the policies with conditions applicable to the request and capable of providing a response) . At a step 1303, the selected governance policies are evaluated. At a step 1304, the evaluation of the governance policies produces a set of constraints that influences the selection of authorization policies. These constraints are then applied by the system. For example, a constraint is to set an attribute value that affects the applicability of authorization policies. At a step 1305, the system selects the authorization policies that match both the access request, and the constraints set by the governance policies. At a step 1306, the selected authorization policies are evaluated. At a step 1307, the evaluation of authorization policies results in a decision and obligations to be enforced and generates constraints that influence the enforcement policies, which the system applies. At a step 1308, the system selects enforcement policies that match the access request, and the constraints derived from the authorization policies. At a step 1309, the system evaluates the selected enforcement policies. At a step 1310, the system enforces the decision and obligations according to the specifications of the enforcement policies.
[0117] FIGS. 14A-14B are interaction diagrams that illustrate the interactions between components in an XACML standard during a governance-first flow in accordance with an implementation of the disclosure. An access control system implements the XACML standard. The XACML standard includes components including a Policy Enforcement Point, PEP, 1401, an Enforcement Policy Administration Point, EPAP, 1402, an Enforcement Policy Decision Point, EPDP, 1403, an enforcement manager 1404, an authorization manager 1405, a Governance Policy Decision Point, GPDP, 1406, a Governance Policy Administration Point, GPAP, 1407, a Policy Decision Point, PDP, 1408, a Policy Administration Point, PAP, 1409, and Policy Information Points, PIPs, 1410. The interactions corresponding to each step in the governance-first flow are as follows:
[0118] At a step 1411, a PEP 1401 intercepts a resource usage and sends a request to the enforcement manager 1404. At a step 1412, the enforcement manager 1404 forwards the request to the authorization manager 1405. At a step 1413, the authorization manager 1405 sends an evaluation request to the GPDP 1406 (see FIG. 14B) . At steps 1414 &1415, the GPDP 1406 requests and collects relevant governance policies that match the request from the GPAP 1407. At steps 1416 &1417, the GPDP 1406 requests and collects the required attribute values from the PIPs 1410. At steps 1418 &1419, the GPDP 1406 evaluates the selected governance policies and sends the evaluation outcome to the authorization manager 1405. At a step 1420, the authorization manager 1405 applies the constraints specified by the governance policies. At a step 1421, the authorization manager 1405 sends an evaluation request to the PDP 1408 to evaluate the authorization policies.
[0119] At steps 1422 &1423, the PDP 1408 requests and collects the authorization policies that match the request and constraints from the PAP 1409. At steps 1424 &1425, the PDP 1408 requests and collects the required attribute values from the PIPs 1410. At steps 1426 &1427, the PDP 1408 evaluates the selected authorization policies and sends the evaluation response back to the authorization manager 1405. At a step 1428, the authorization manager 1405 applies the constraints specified by the authorization policies. At a step 1429, the authorization manager 1405 sends the decision and obligations to the enforcement manager 1404 as a response to the request. At a step 1430, the enforcement manager 1404 requests the evaluation of enforcement policies from the EPDP 1403. At steps 1431 &1432, the EPDP 1403 requests and collects enforcement policies that match the request and constraints from the EPAP 1402.
[0120] At steps 1433 &1434, the EPDP 1403 requests and collects the required attribute values from the PIPs 1410. At steps 1435 &1436, the EPDP 1403 evaluates the selected enforcement policies and sends the evaluation outcome to the enforcement manager 1404. At a step 1437, the enforcement manager 1404 creates an execution record and sends it to the PEPs 1401. The execution record indicates actions (e.g., decisions and obligations) that must be enforced, dependencies between actions that must be respected during execution, and a report that indicates a status of actions to the access control system and to the other PEPs 1401, and one or more conditions that specify which of the PEPs 1401 is to enforce the actions. The execution record is used by the PEPs 1401 to determine what actions to enforce, thereby controlling the enforcement policies in the access control system to control access to the digital data resource by a subject requesting such access.
[0121] At a step 1438, the PEPs 1401 enforce the decisions and obligations. At a step 1439, the PEPs 1401 report status by sending the execution records back to the enforcement manager 1404. At a step 1440, the enforcement manager 1404 reports the enforcement status to the authorization manager 1405.
[0122] FIG. 15 is a flowchart of an enforcement-first flow 1500 that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure. The hierarchy of policies includes governance policies which are used to govern an authorization during the entire lifecycle of the authorization, authorization policies that manage access rights to the digital data resource by the subject in the access control system, and enforcement policies, which specify how decisions and actions related to the access rights are to be enforced by the access control system. The hierarchy of policies may interact in three different flows (i.e., a governance-first flow, an enforcement-first flow and an authorization-first flow) to influence and constrain each other. At a step 1501, the authorization process begins when an access request is initiated from a subject. At a step 1502, the system selects the enforcement policies that match the access request (i.e., the policies with conditions applicable to the request and capable of providing a response) . At a step 1503, a request is generated to determine constraints on the enforcement policies derived from the authorization policies. At a step 1504, the authorization policies that match the constraint request are selected. At a step 1505, another constraint request is created to determine constraints on the authorization policies from the governance policies. At a step 1506, the governance policies that match this constraint request are selected. At a step 1507, the system evaluates the selected governance policies. At a step 1508, the evaluation outcome of the governance policies is a set of constraints specifying which of the selected authorization policies remain eligible. The selected authorization policies are filtered based on these constraints. At a step 1509, the filtered authorization policies are evaluated. At a step 1510, the evaluation outcome of authorization policies is a decision and obligations to be enforced and a set of constraints that specify which of the selected enforcement policies are eligible. The selected enforcement policies are filtered based on these constraints. At a step 1511, the system evaluates the filtered enforcement policies. At a step 1512, the decision and obligations are enforced according to the specifications of the enforcement policies.
[0123] FIGS. 16A-16B are interaction diagrams that illustrate the interactions between components in an XACML standard during an enforcement-first flow in accordance with an implementation of the disclosure. An access control system implements the XACML standard. The XACML standard includes components including a Policy Enforcement Point, PEP, 1601, an Enforcement Policy Administration Point, EPAP, 1602, an Enforcement Policy Decision Point, EPDP, 1603, an enforcement manager 1604, an authorization manager 1605, a Governance Policy Decision Point, GPDP, 1606, a Governance Policy Administration Point, GPAP, 1607, a Policy Decision Point, PDP, 1608, a Policy Administration Point, PAP, 1609, and Policy Information Points, PIPs, 1610. The interactions corresponding to each step in the enforcement-first flow are as follows:
[0124] At a step 1611, a PEP 1601 intercepts a resource usage and sends an access request to the enforcement manager 1604. At a step 1612, the enforcement manager 1604 sends an evaluation request to the EPDP 1603. At steps 1613 &1614, the EPDP 1603 requests and collects relevant enforcement policies from the EPAP 1602. At a step 1615, the EPDP 1603 sends a first constraint request to the enforcement manager 1604 to determine constraints on enforcement policies. At a step 1616, the enforcement manager 1604 forwards the constraints request to the authorization manager 1605. At a step 1617, the authorization manager 1605 forwards the first constraint request to the PDP 1608. At steps 1618 &1619, the PDP 1608 requests and collects authorization policies that apply to the access request and the first constraint request from the PAP 1609. At a step 1620, the PDP 1608 sends a second constraint request to the authorization manager 1605 to determine constraints on authorization policies. At a step 1621, the authorization manager 1605 forwards this second constraints request to the GPDP 1606.
[0125] At steps 1622 &1623, the GPDP 1606 requests and collects / retrieves governance policies that apply to the access request and the second constraint request from the GPAP 1607. At steps 1624 &1625, the GPDP 1606 requests and collects the required attribute values from the PIPs 1610. At steps 1626 &1627, the GPDP 1606 evaluates the selected governance policies and sends the evaluation response to the authorization manager 1605. At a step 1628, the authorization manager 1605 forwards the governance policies evaluation results to the PDP 1608. At a step 1629, the PDP 1608 filters the authorization policies based on the constraints specified by governance policies.
[0126] At steps 1630 &1631, the PDP 1608 requests and collects the required attribute values from the PIPs 1610. At steps 1632 &1633, the PDP 1608 evaluates the filtered authorization policies and sends the evaluation results to the authorization manager 1605. At a step 1634, the authorization manager 1605 forwards the authorization policies evaluation result to the enforcement manager 1604. At a step 1635, the enforcement manager 1604 sends the authorization policies evaluation result to the EPDP 1603.
[0127] At a step 1636, the EPDP 1603 filters the enforcement policies based on the constraints specified by the authorization policies. At steps 1637 &1638, the EPDP 1603 requests and collects the required attribute values from the PIPs 1610. At steps 1639 &1640, the EPDP 1603 evaluates the filtered enforcement policies and sends the evaluation results to the enforcement manager 1604.
[0128] At a step 1641, the enforcement manager 1604 generates an execution record and sends it to the PEPs 1601. At a step 1642, the PEPs 1601 enforce the decisions and obligations. At a step 1643, the PEPs 1601 report status by sending execution records back to the enforcement manager 1604. At a step 1644, the enforcement manager 1604 reports the enforcement status to the authorization manager 1605.
[0129] FIG. 17 is a flowchart of an authorization-first flow 1700 that illustrates an interaction of a hierarchy of policies that influences and constrains one another in accordance with an implementation of the disclosure. The hierarchy of policies includes governance policies which are used to govern an authorization during the entire lifecycle of the authorization, authorization policies that manage access rights to the digital data resource by the subject in the access control system, and enforcement policies, which specify how decisions and actions related to the access rights are to be enforced by the access control system. At a step 1701, the authorization process begins when an access request is initiated from a subject. At a step 1702, the system selects the authorization policies that match the access request (i.e., the policies with conditions applicable to the request and capable of providing a response) . At a step 1703, a constraint request is generated to retrieve constraints on the authorization policies from the governance policies. At a step 1704, the governance policies that match this constraint request are selected. At a step 1705, the system evaluates the selected governance policies. At a step 1706, the evaluation result of the governance policies is a set of constraints that specify which of the selected authorization policies are eligible. The selected authorization policies are filtered based on these constraints. At a step 1707, the filtered authorization policies are evaluated. At a step 1708, the evaluation of authorization policies results in a decision and obligations to be enforced and generates constraints that influence the enforcement policies, which the system applies. At a step 1709, the system then selects enforcement policies that match the access request, and the constraints derived from the authorization policies. At a step 1710, the system evaluates the selected enforcement policies. At a step 1711, the system enforces the decision and obligations according to the specifications of the enforcement policies.
[0130] FIGS. 18A-18B are interaction diagrams that illustrate the interactions between components in an XACML standard during an authorization-first flow in accordance with an implementation of the disclosure. An access control system implements the XACML standard. The XACML standard includes components including a Policy Enforcement Point, PEP, 1801, an Enforcement Policy Administration Point, EPAP, 1802, an Enforcement Policy Decision Point, EPDP, 1803, an enforcement manager 1804, an authorization manager 1805, a Governance Policy Decision Point, GPDP, 1806, a Governance Policy Administration Point, GPAP, 1807, a Policy Decision Point, PDP, 1808, a Policy Administration Point, PAP, 1809, and Policy Information Points, PIPs, 1810. The interactions corresponding to each step in the authorization-first flow are as follows:
[0131] At a step 1811, a PEP 1801 intercepts a resource usage and sends an access request to the enforcement manager 1804. At a step 1812, the enforcement manager 1804 forwards the request to the authorization manager 1805. At a step 1813, the authorization manager 1805 sends an evaluation request to the PDP 1808. At steps 1814 &1815, the PDP 1808 requests and collects relevant authorization policies from the PAP 1809. At a step 1816, the PDP 1808 sends a first constraint request to the authorization manager 1805 to determine constraints on authorization policies. At a step 1817, the authorization manager 1805 forwards the first constraint request to the GPDP 1806. At steps 1818 &1819, the GPDP 1806 requests and collects governance policies that apply to the access request and the first constraint request from the GPAP 1807. At steps 1820 &1821, the GPDP 1806 requests and collects the required attribute values from the PIPs 1810. At steps 1822 &1823, the GPDP 1806 evaluates the selected governance policies and sends the results to the authorization manager 1805. At a step 1824, the authorization manager 1805 forwards the governance policies evaluation outcome to the PDP 1808. At a step 1825, the PDP 1808 filters the authorization policies based on the constraints specified by the governance policies.
[0132] At steps 1826 &1827, the PDP 1808 requests and collects the required attribute values from the PIPs 1810. At steps 1828 &1829, the PDP 1808 evaluates the filtered authorization policies and sends the evaluation results to the authorization manager 1805. At a step 1830, the authorization manager 1805 applies the constraints specified by the authorization policies. At a step 1831, the authorization manager 1805 sends a decision and obligations to the enforcement manager 1804. At a step 1832, the enforcement manager 1804 requests enforcement policy evaluation from the EPDP 1803. At steps 1833 &1834, the EPDP 1803 requests and collects the enforcement policies that match the enforcement policy evaluation request and constraints from the EPAP 1802. At steps 1835 &1836, the EPDP 1803 requests and collects the required attribute values from the PIPs 1810. At steps 1837 &1838, the EPDP 1803 evaluates the selected enforcement policies and sends the evaluation results to the enforcement manager 1804.
[0133] At a step 1839, the enforcement manager 1804 generates an execution record and sends it to the PEPs 1801. At a step 1840, the PEPs 1801 enforce the decisions and obligations. At a step 1841, the PEPs 1801 report status by sending execution records back to the enforcement manager 1804. At a step 1842, the enforcement manager 1804 reports the enforcement status to the authorization manager 1805.
[0134] FIG. 19 is a flow diagram that illustrates a method of constraining the use of policies of an access control system which governs an authorization related to a subject’s access to a digital data resource in accordance with an implementation of the disclosure. At a step 1902, a hierarchy of policies is established. The hierarchy of policies includes: (i) a first set of policies defined as governance policies, which are used to govern an authorization during the lifecycle of the authorization; (ii) a second set of policies defined as authorization policies, which manage access rights to the digital data resource by the subject in the access control system; and (iii) a third set of policies defined as enforcement policies, which specify how decisions and actions related to the access rights are to be enforced by the access control system. At a step 1904, the governance policies in the first set of policies in the hierarchy are used to set constraints on the authorization policies in the second set of policies and on the enforcement policies in the third set of policies, to orchestrate the authorization throughout the lifecycle of the authorization.
[0135] Although the disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims.
Claims
1.A method of controlling enforcement policies (220, 506) for a plurality of policy enforcement points, PEPs, (208A-N, 310) of a distributed access control system (202) for governing access to a digital data resource (206, 312) , wherein the distributed access control system is distributed across a plurality of geographical locations, and wherein a PEP is located at each geographical location, the method comprising steps of:(a) receiving a declaration record message (210, 302) from each of the plurality of PEPs, where the declaration record message indicates an identifier to identify the PEP, the geographic location of the PEP, the digital data resources protected by the PEP and actions (314, 404, 504) that the PEP can enforce;(b) receiving an execution record message (212, 402, 508) from each of the plurality of PEPs, where the execution record message indicates actions that must be enforced, dependencies (406) between actions that must be respected during execution, and a report (408) that indicates a status (410) of actions to the system and to the other PEPs, and a plurality of conditions (414) that specify which of the plurality of PEPs is to enforce the actions; and(c) each PEP using the received declaration record messages and execution record messages from the other PEPs to control enforcement policies in the distributed access control system to control access to the digital data resource by a subject (204) requesting such access.2.The method of claim 1, wherein the distributed access control system implements the XACML standard.3.The method of claim 1, wherein a PEP enforces a decision received from a context handler.4.The method of claim 1, wherein a PEP receives an access request from the subject for access to the digital data resource.5.The method of claim 3, wherein the PEP sends the decision received from the context handler to the subject requesting access to the digital data resource.6.The method of claim 1, wherein at step (c) , each PEP uses the received declaration record messages and execution record messages to carry out an execution record handling logic (600) to decide whether the PEP should enforce an action and how to enforce an action if the PEP is to enforce the action.7.The method of claim 1, wherein an enforcement policy specifies how to enforce the actions indicated in the execution record messages to specify how policy decisions must be enforced across the plurality of PEPs.8.The method of claim 7, wherein the enforcement policy specifies dependencies between actions.9.The method of claim 7, wherein the enforcement policy specifies which PEP must enforce which specific action.10.The method of claim 7, wherein the enforcement policy specifies a next step to be taken when the enforcement of a specific action fails.11.The method of claim 6, wherein the execution record handling logic checks whether the received messages indicate that a specific PEP is assigned to handle a received execution record.12.The method of claim 6, wherein the execution record handling logic checks whether the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages.13.The method of claim 12, wherein when the execution record handling logic determines that the received messages indicate that a specific PEP has the capability to handle the actions contained in the received messages, the logic checks whether the actions depend on other actions.14.The method of claim 1, wherein the distributed access control system implements the ALFA, Cedar, OPA, IDQL, or Graph-based architectures.15.A method of constraining the use of policies of an access control system (902) which governs an authorization related to a subject’s (904) access to a digital data resource (906) , the method comprising steps of:(a) establishing a hierarchy of policies including:(i) a first set of policies defined as governance policies (908, 1002, 1102) , which are used to govern an authorization during the lifecycle of the authorization;(ii) a second set of policies defined as authorization policies (910, 1004, 1104) , which manage access rights to the digital data resource by the subject in the access control system; and(iii) a third set of policies defined as enforcement policies (912, 1006, 1106) , which specify how decisions and actions related to the access rights are to be enforced by the access control system; and(b) using the governance policies in the first set of policies in the hierarchy to set constraints on the authorization policies in the second set of policies and on the enforcement policies in the third set of policies, to orchestrate the authorization throughout the lifecycle of the authorization.16.The method of claim 15, wherein the governance policies set constraints by setting or modifying a plurality of attribute values to influence the applicability and selection of policies in at least one of the second or third set of policies.17.The method of claim 15, wherein the governance policies orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies.18.The method of claim 17, wherein the governance policies orchestrate an authorization by specifying conditions for enforcing policies in at least one of the second or third set of policies by specifying how the policies react to violations.19.The method of claim 15, wherein the authorization policies in the second set of policies are extended to enable them to set constraints on the enforcement policies in the third set of policies.20.The method of claim 19, wherein the authorization policies set constraints by setting or modifying a plurality of attribute values to influence the applicability and selection of the enforcement policies in the third set of policies.21.The method of claim 15, wherein the governance policies specify a plurality of stages of a lifecycle of the authorization.22.The method of claim 15, wherein the enforcement policies specify an order in which actions must be enforced.23.The method of claim 15, wherein the enforcement policies specify a manner of reaction of the access control system when enforcement of a policy fails or is violated.24.The method of claim 21, wherein the access control system implements the XACML standard.25.The method of claim 24, wherein the access control system implementing the XACML standard includes a governance layer having a Governance Policy Administration Point, GPAP, (1206, 1407, 1607, 1807) which provides an administrative interface to add, delete or modify governance policies.26.The method of claim 24, wherein the access control system implementing the XACML standard includes a governance layer having a Governance Policy Decision Point, GPDP, (1204, 1406, 1606, 1806) which evaluates and executes governance policies.27.The method of claim 24, wherein the access control system implementing the XACML standard includes an authorization manager (1202, 1405, 1605, 1805) which manages authorizations.28.The method of claim 15, wherein step (b) is carried out by setting or modifying an attribute value.29.A system (900) comprising means adapted for carrying out all the steps of the method according to any preceding method claim.30.A computer program comprising instructions for carrying out all the steps of the method according to any preceding method claim, when said computer program is executed on a computer system.