Access Control on Graphs: Who Sees What Context

Graph access control must govern nodes, edges, paths, properties, inferred facts, and assembled situations. This guide explains how to propagate source entitlements into an enterprise context graph without creating invisible leakage or unmanageable policy complexity.

The 60-second read

Graph access control decides not only which records a principal can read, but which connected meaning may be assembled. A robust model combines source entitlements with graph-native policies for nodes, properties, edges, paths, domains, purposes, and actions. Entitlements should be normalized into a policy model, attached to context objects through lineage, evaluated by the Context Harness at query time, and rechecked when relationships or source permissions change. Denial should prevent both direct access and indirect disclosure through counts, summaries, inferences, embeddings, and downstream action. The result is a governed view of the Enterprise Digital Twin tailored to the principal and decision purpose.

Key takeaways

Definition

Graph access control is the policy discipline that determines which principals may discover, traverse, read, infer from, modify, or act on nodes, properties, relationships, paths, and situations in a graph, for a declared purpose and time.

Why rows and columns are not enough #

Traditional access control starts with a resource such as a table row, file, or API object. A context graph adds relationships and multi-hop paths. A user who cannot open an investigation node may still infer that it exists because a customer node has an unusual edge count or because a summary mentions a restricted relationship.

The protected object is therefore the context returned for a decision. Authorization must determine whether each fact and relationship may participate in the assembled situation, whether its presence may be disclosed, and whether downstream reasoning or action is allowed.

Stage 1: define the graph authorization model #

Define policies at several levels: domain, entity or node, property, relationship or edge, path, purpose, operation, and time. Node controls answer whether a principal may discover or read an object. Property controls protect sensitive attributes. Edge controls protect relationship meaning. Path controls prevent traversal through restricted intermediates even when endpoints are visible.

Add decision purpose and action scope. The context needed to investigate fraud may not be appropriate for marketing. Read permission does not imply permission to export, infer, update, or trigger an action.

Stage 2: normalize source entitlements #

Source systems express access differently: groups, business units, ownership rules, case assignment, geography, consent, clearance, contractual restrictions, and row filters. Normalize these into stable policy attributes while preserving the source rule and effective time.

Do not simply copy every source ACL onto every graph object. That creates policy explosion and contradictory semantics. Instead, map source entitlements to domain policies, retain lineage, and define explicit combination rules such as intersection, union, precedence, or deny-overrides.

Stage 3: propagate permissions through relationships #

Permission propagation should be relationship-specific. Access to an account may allow access to its products and service cases but not to an employee investigation connected to the account. Ownership, membership, assignment, treatment, delegation, and legal-control edges each carry different authorization meaning.

Use explicit propagation rules with bounded depth, direction, effective dates, and stop conditions. Recompute affected permissions when relationships change, and record why a principal received access.

Stage 4: enforce at situation assembly #

The Context Harness should evaluate policy while the situation is assembled, before data reaches the consumer. It may remove properties, suppress edges, substitute an aggregated value, return a redacted object, or deny the request. The response should carry policy and lineage metadata appropriate for audit.

Controls must also apply to vector retrieval, graph algorithms, subscriptions, exports, caches, and model context. A secure graph query followed by an unrestricted generated summary is still a security failure.

Stage 5: test leakage and entitlement drift #

Test direct and indirect disclosure. Can a user infer a hidden supplier from counts? Can an agent ask repeated questions to reconstruct a restricted relationship? Can a permitted aggregate become identifying when combined with another path?

Monitor drift between source entitlements and graph decisions. Permission changes should propagate within a defined objective, subscriptions should stop immediately when access is revoked, and cached or derived context should be invalidated when policy changes.

ENTITLEMENT PROPAGATION FROM SOURCE SYSTEMS TO GOVERNED GRAPH SITUATIONSSource ACLs1Policy model2Graph objects3Harness4Permitted situation5Consumer6Governed through the Understand-Decide-Execute operating looplineage, policy, quality, and accountability remain attached end to end
Figure 1. Entitlement propagation from source systems to governed graph situations. The control and evidence chain must remain connected across the full context lifecycle.

Control framework and operating checklist #

Access modelBest useMain limitationGraph requirement
Role-based access controlStable job responsibilitiesRoles become broad and numerousCombine role with domain, purpose, and relationship
Attribute-based access controlDynamic rules using identity and resource attributesHard to explain without policy tracingRetain evaluated attributes and policy version
Relationship-based access controlOwnership, assignment, membership, delegationRequires trustworthy and current relationshipsTreat authorization edges as first-class context
Purpose-based controlRestrict use to declared business decisionsPurpose can be falsely assertedBind purpose to workflow, case, or approved tool
Policy-filtered situation assemblyServe only permitted facts and pathsRequires enforcement across all query modesCentralize in the Context Harness
Enterprise scenario

A healthcare network builds a provider and patient context graph. A clinician may see a patient’s care team and current treatment relationships, while a billing specialist may see coverage and claim context but not clinical notes. When a clinician changes facilities, relationship-based access expires on the effective date. The Context Harness filters each situation according to role, treatment relationship, purpose, and consent. An analytics service receives approved aggregates but cannot traverse back to individual patients. Every response records the policy decision and the relationships that granted access.

Common mistakes to avoid #

Watch out for
  1. Copying source permissions without defining how conflicting entitlements combine.
  2. Protecting nodes while allowing restricted relationships or paths to leak meaning.
  3. Embedding authorization in each application instead of using a common policy enforcement layer.
  4. Ignoring caches, embeddings, subscriptions, aggregate queries, and generated answers.
  5. Failing to revoke derived access when an assignment or relationship ends.

How OpenKnowra approaches this #

OpenKnowra treats this capability as part of the context operating system rather than an isolated feature. The Context Graph Engine maintains the Enterprise Digital Twin, the Context Harness applies policy and quality controls, the Decision Layer consumes governed situations, and the Execution Grid records controlled action and outcomes. The design goal is a traceable Understand-Decide-Execute loop in which context remains explainable and accountable.

Frequently asked questions

What is graph access control?
Graph access control governs discovery, traversal, reading, inference, modification, and action across nodes, properties, relationships, paths, and assembled situations.
How is relationship-based access control used in a graph?
Access can be granted through trusted relationships such as assignment, ownership, treatment, membership, or delegation, with explicit direction, depth, time, and stop rules.
Should source-system entitlements be copied directly into the graph?
Not blindly. They should be normalized into a common policy model while preserving lineage, source authority, effective time, and combination rules.
How do you prevent indirect disclosure from a graph?
Apply controls to counts, paths, algorithms, embeddings, summaries, subscriptions, and inference, then test whether permitted outputs can be combined to reconstruct restricted context.
Where should graph policies be enforced?
They should be enforced centrally during situation assembly through the Context Harness and consistently across APIs, analytics, models, agents, and execution services.

Keep exploring this cluster