Least Common Ancestor Authorization in Directed Acyclic Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Manual maintenance of user authorizations in data processing systems is tedious and error-prone, especially when organizational changes occur, requiring updates to multiple user profiles.

Innovation Solution

Implementing a data processing system that uses a directed acyclic graph to store user assignments and perform authorization checks based on the least common ancestor of user and data object nodes, with pre-computed LCA indices for efficient access control, allowing for parallel processing and reduced latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual maintenance of user profiles is used to manage authorizations, then flexibility in individual user authorization is improved, but the time and effort required for updating user profiles increases significantly

Engineering Contradiction:
Improveindividual user authorization flexibilityVSAvoidtime for updating user profiles
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system segments authorization management into two levels: organizational structure (groups, departments, companies) and individual user profiles. By assigning users to organizational nodes in a directed acyclic graph, the system separates the management of collective authorization patterns from individual user configurations, enabling efficient bulk updates when organizational structure changes while preserving individual authorization flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-computes least common ancestor (LCA) indices for all pairs of nodes in the organizational graph before authorization checks are needed. This preliminary computation stores the results in a cache, so when authorization decisions must be made, the system can quickly retrieve pre-calculated LCA information rather than performing complex graph traversals in real-time, significantly reducing processing time.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If structural user authorization is implemented to reduce manual updates, then the time for updating user profiles is reduced, but the complexity of the authorization system increases

Engineering Contradiction:
Improvetime for updating user profilesVSAvoidauthorization system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system introduces an intermediary computational layer that translates complex organizational structure relationships into simple authorization decisions. The least common ancestor algorithm acts as this intermediary, converting the complex problem of determining whether a user has access to a resource (which may involve multiple organizational levels) into a straightforward comparison: does the user's organizational node contain the resource's organizational node as a descendant? This intermediary layer handles the complexity internally while presenting a simple interface for authorization checks.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system creates a computational copy of the organizational structure in the form of a directed acyclic graph with pre-computed LCA indices. Instead of manually managing individual user authorizations or traversing the actual organizational hierarchy during authorization checks, the system uses this graph copy with pre-calculated relationships to make rapid authorization decisions. The graph copy preserves the organizational structure's authorization logic while enabling efficient querying.

Inventive Principle:
Principle #26Copying

3Reliability

If authorization checks are performed frequently to ensure up-to-date access control, then security is improved, but the processing load on the system increases

Engineering Contradiction:
Improveauthorization check accuracyVSAvoidprocessing load for authorization checks
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system performs the computationally intensive least common ancestor calculations in advance and stores the results in a cache. When authorization checks are performed frequently, the system simply retrieves pre-computed LCA information from the cache rather than performing complex graph traversals, dramatically reducing the processing load per authorization check while maintaining accurate, up-to-date authorization decisions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7685124B2Systems and methods for performing authorization
Publication Date: 2010.03.23 SAP SE
  • US7685124B2 patent drawing
  • US7685124B2 patent drawing
  • US7685124B2 patent drawing

AI summary

Systems, methods, and computer program products are provided for performing an authorization check for a user. In one implementation, a data processing system is provided that includes means for storing first data descriptive of at least one directed acyclic graph and for storing second data descriptive of an assignment of a user to a first node of the graph. The data processing system also includes means for receiving an access request of the user, the access request specifying a second node of the graph. Furthermore, the data processing system includes means for determining a least common ancestor of the first and second nodes of the graph and means for performing an authorization check adapted to grant authorization for the access request if the least common ancestor of the first and second nodes is the first node.