Large Language Model (LLM) agents combine the chat interaction capabilities of LLMs with the power to interact with external tools and APIs. This enables them to perform complex tasks and act autonomously to achieve user goals. However, current agent systems operate on an all-or-nothing basis: an agent either has full access to an API's capabilities and a web page's content, or it has no access at all. This coarse-grained approach forces users to trust agents with more capabilities than they actually need for a given task. In this paper, we introduce AC4A, an access control framework for agents. As agents become more capable and autonomous, users need a way to limit what APIs or portions of web pages these agents can access, eliminating the need to trust them with everything an API or web page allows. Our goal with AC4A is to provide a framework for defining permissions that lets agents access only the resources they are authorized to access. AC4A works across both API-based and browser-based agents. It does not prescribe what permissions should be, but offers a flexible way to define and enforce them, making it practical for real-world systems. AC4A works by creating permissions granting access to resources, drawing inspiration from established access control frameworks like the one for the Unix file system. Applications define their resources as hierarchies and provide a way to compute the necessary permissions at runtime needed for successful resource access. We demonstrate the usefulness of AC4A in enforcing permissions over real-world APIs and web pages through case studies. The source code of AC4A is available at https://github.com/reSHARMA/AC4A
Figures & tables
Resource type tree
Year Month Day
Interval
CreditCard Number CVV Expiry date Transaction Year Month Recent
Figure 4. Examples of sufficient permissions returned by permission functions for API calls.
Figure 7. AC4A interface. The dashboard (left) provides tabs for browsing resource type trees, viewing active permissions, creating permissions, and reviewing logs. (1) permission handling mode selector, (2) chat interface for the API-based agent, (3) browser preview for the browser-based agent.
Figure 6Figure 7
Resource type tree
GameId
Year Month Day
Destination Flight Hotel CarRental Experience Cruise Payment
CreditCard Number CVV Expiry date Transaction Year Month Recent
(a) Game
(b) Calendar
(c) Expedia
(d) Credit Card
(a) Game
Figure 15. No permissions active. (Left) API access log showing the sufficient permissions and access denial for get_games. (Right) Chat excerpt showing the permission error returned to the agent.
Figure 16. Read-only permissions active. (Left) Chat excerpt: agent successfully reads game data. (Center) Chat excerpt: agent fails to delete game history due to missing write permission. (Right) API access log: get_games succeeds, delete_game is denied.
Figure 17. Read and write permissions active. (Left) Chat excerpt: agent successfully deletes game data. (Right) API access log: delete_game is granted.
Figure 18. No permissions active. (Left) Original browser view with all elements visible. (Right) View shown to the agent, with game history elements blocked by solid overlays.
Figure 19. (Left) Read-only permission: game history is visible but delete buttons are blocked. (Right) Read and write permissions: delete buttons become accessible.
Figure 20. API-based agent enforcement for Scenario A: calendar read for June 2026 blocked, then granted.
Figure 21. Scenario B: July 2026 read blocked (permission covers only June); create for 29 June 2026 blocked (read-only permission).
Large language models increasingly operate as autonomous agents that select and invoke tools from large registries. We identify a critical gap: when unauthorized tools are visible in an agent's context, models select them in adversarial scenarios -- even when explicitly instructed otherwise. We propose a governed MCP proxy that enforces attribute-based access control (ABAC) at two points: tool discovery, where unauthorized tools are removed from the model's context window, and tool invocation, where a second check blocks any unauthorized call. Across three models (Qwen 2.5 7B, Llama 3.1 8B, Claude Haiku 3.5) and 150 adversarial tasks spanning four attack categories, our proxy reduces unauthorized invocation rate (UIR) to 0% while adding under 50ms median latency. Prompt-based restrictions reduce UIR by only 11--18 percentage points, leaving substantial residual risk. Our results show that architectural enforcement -- not prompting -- is necessary for reliable tool access control in deployed agentic systems.
Tool-using large language model (LLM) agents increasingly perform state-changing actions that require user authorization. Yet existing approaches do not provide a principled mechanism for selectively updating prior authorization when only part of an instruction changes. To this end, we propose an Authorization-Closure-Graph (ACG)-based framework that represents authorization and its dependencies as an evolving, versioned state. ACG selectively invalidates authority affected by a revision while preserving unaffected portions of the authorization state, and computes a minimal repair that identifies only the missing evidence or authority required for execution. This enables agents to adapt to revised instructions while avoiding stale authority and unnecessary authorization requests. We evaluate ACG across three advanced LLMs in two natural tasks, and ACG consistently improves action safety rate and task success rate. Code is available at https://github.com/weiliang822/ACG.
AI agents are increasingly granted autonomous access to sensitive user data and third-party services, making effective permission management a critical security challenge. Existing permission models, however, typically rely on flat permission structures that fail to balance security with usability: fine-grained confirmation induces user fatigue, while coarse-grained or persistent approval leads to overprivileged agents. To address this tradeoff, we propose a task-centric, hierarchical permission model that treats an agent as a delegate operating within a task-specific role instead of requiring a separate permission decision for every tool call. Building on this model, we present MiniScope, an end-to-end permission system for agents that automates permission-hierarchy discovery and enforces contextual least privilege at runtime. Our evaluation shows that MiniScope reduces simulated permission confirmations by 43.4%-89.4% for cautious and typical personas relative to per-tool prompting and mitigates all privilege-escalation attacks with negligible impact on utility and runtime. Applied to real-world deployments, MiniScope further uncovers six overprivileged connector configurations in ChatGPT and Claude.