Skip to content

Identity security for the agent era

Every agent is an identity. Verify it before it acts.

Your people sit behind SSO and MFA. Your agents, API keys and MCP servers act with borrowed authority and nobody watching. Qbrin inventories the ones it is connected to, scopes what each can reach, and checks each consequential action an agent submits against evidence before the tool runs.

  • ALLOWjustified, signed grant issued
  • HOLDtool waits for its owner
  • ESCALATErouted to security
Qbrin owl
Identity decisionsSample data
  1. 09:41:02billing-agentrefund_payment · ₹48,500Invoice + policy v3 matchALLOW
  2. 09:41:07key · ci-deploymerge to mainNo approved change ticketHOLD
  3. 09:41:11support-agentexport 2,140 patient rowsBlast radius above scopeESCALATE
  4. 09:41:15mcp · driveread Q3 renewals deckIn the agent’s data scopeALLOW
  5. 09:41:19ops-agentdelete staging bucketOwner left the companyESCALATE
5 decisions2 allowed3 stopped before the tool ran

One inventory for every identity that can act

  • People
  • AI agents
  • API keys
  • MCP servers
  • Service accounts
  • Connectors
  • OAuth grants
  • Sub-agents

The new attack surface

Agents log in once, then act again and again.

Identity security was built for people who sign in and click. Agents hold long-lived keys, inherit whoever launched them, chain sub-agents and call tools in milliseconds. The login was fine. The action is where it goes wrong.

Borrowed authority

An agent on a person’s token can do everything that person can.

No owner

Agents outlive the people and projects that created them.

Instructions in the data

A ticket or email can tell an agent to do something new.

Too fast to review

By the time a log is read, the refund has already gone out.

The platform

Discover. Protect. Defend.

The same three tabs your security team gets in the console, wired to one identity graph.

01

Discover

See every identity that can act

People, agents, keys, MCP servers and connectors in one inventory, each with an owner, what it can reach and a risk score you can read.

InventorySample · 412 identities · 38 agents
billing-agentAgentPriya S.3 toolslow
ci-deployAPI keyPlatformrepo:writemed
ops-agentAgent— none7 toolshigh
drive-mcpMCP serverITdrive:readlow
How agents get an identity
02

Protect

Scope it, then check each action it submits

Narrow each agent and key to the sources its job needs, then check each consequential action it submits: ALLOW, HOLD or ESCALATE.

Data scope · support-agentnarrow-only
  • Zendesk
  • Google Drive · /support
  • Patient records
  • Finance Slack

Sample: over the last 30 days this scope would have cut 214 of 1,906 cited documents.

Try the authorization API
03

Defend

Catch it while it is still a request

Injections, odd networks, ownerless agents and refused grants surface as detections, with a receipt behind every one.

DetectionsSample · last 24 hours
  • Prompt injection in a ticket body2m agoESCALATE
  • Key used from a new ASN18m agoHOLD
  • Agent with no owner acted1h agoESCALATE
Read the security model

The identity graph

Follow any action back to a person.

Qbrin links every agent to the human who owns it, the human it is acting for, the keys and tools it holds, and the data those can reach. When something goes wrong you see the whole chain, not a lone API call.

  • Every agent linked to its owner and the person it acts for
  • Sub-agents inherit a narrower scope, never a wider one
  • Unreadable scope or failed lookup denies, it never guesses

Sample · support-agent · who and what it touches

AI agentsupport-agentOwnerPriya S.Launched byDev R.API keysk_live_…9f2ToolZendesk MCPData · PHIPatient recordsSub-agenttriage-subagentPolicyPHI export ≤ 50 rows

Early accessCloud and identity providers

Beyond your agents

Every identity in every cloud, read once.

The same graph covers the people, service accounts and keys in the clouds you already run. qbrin connects read-only, reads inventory and audit logs on a schedule, and links what it finds to the agents and AI tools above.

  • AWSIAM and CloudTrail
  • Google CloudIAM and audit logs
  • Microsoft Entra IDsign-ins, audits, Azure roles
  • Oktasystem log, users, apps
  • GitHuborg audit log, tokens, keys
  • Google Workspacelogin, admin and token activity
One session, three providersSample data

dana@northwind.healthOkta · AWS · GitHub, linked by verified email and SAML

  1. 09:12OktaSign-in, new device, push approvedALLOW
  2. 09:13AWSAssumeRoleWithSAML → prod-adminALLOW
  3. 09:21AWSCreateAccessKey for ci-deployHOLD
  4. 09:24GitHubPersonal access token created, org-wide scopeESCALATE

Session riskBehavior · Likelihood · Impact

Behavior72new device, first key created in 90 days
Likelihood64MFA push approved after two denials
Impact88admin on AWS prod and GitHub org

A provider that cannot be read makes the score cannot score, never low.

A score that shows its working

Every identity, session, AI tool and the organisation gets Behavior, Likelihood and Impact, each with the reasons behind it. When a provider cannot be read, the score says so instead of guessing low.

Containment you can undo

  • Only reversible actions: disable a key, suspend a user, revoke sessions.
  • A dry run first, with the exact request that would be sent.
  • Never yourself, never the last admins, never break-glass or the sync account.
  • A second admin approves the action and any rollback; it is re-checked before it runs.
Ask for early access

One call, one verdict

Identity × policy × evidence × payload × blast radius.

Before a connected agent sends, merges, writes, deletes, pays or operates a computer, it asks Qbrin. The answer comes back with its reasons and a receipt.

01Identity

Who is acting, who owns it, and whose authority it borrowed.

02Policy

Org baseline plus per-agent allow, deny or ask-a-person rules.

03Evidence

Is the claim behind the action backed by a current source?

04Payload

Does it carry a secret or credential that should not leave?

05Blast radius

How many records, how much money, how hard to undo.

POST/v1/authorizeAn export the policy does not allowIllustrative
POST /v1/authorize
{
  "action": "export_records",
  "args": { "table": "patients", "rows": 2140 },
  "evidence": [{ "kind": "ticket", "ref": "ZD-88213" }]
}

→ 200 OK
{
  "decision": "ESCALATE",
  "reason": "rows 2140 > policy limit 50 (PHI export)",
  "stage": "policy",
  "blastRadius": "external",
  "receipt": "rcpt_7Hq…e21"
}

Escalated to a person.

The ticket was real and the agent was who it said it was. What it asked for was far more than the policy allows for patient data, so Qbrin escalated it to the owner with the evidence attached. The exact request and response fields are in the API docs.

  1. 01Agent proposes the action

    One authorize call at the tool boundary, or through the MCP wrapper.

  2. 02Qbrin runs its checks

    The verdict names the check that decided it and why, not one opaque score.

  3. 03The caller acts on the verdict

    ALLOW returns an expiring signed grant; on HOLD or ESCALATE an integrated tool waits.

  4. 04A receipt is written

    The receipt records the verdict, its reason and the evidence it was bound to.

Questions

What security teams ask first.

How is this different from an IAM or ITDR tool?
Identity tools answer “is this login allowed?”. Qbrin answers “is this specific action justified, right now, by evidence?”. It sits at the tool boundary of each agent that calls it, so it sees the action, its arguments and the evidence behind it, not just the session.
Do my agents have to change?
One call before a consequential tool runs: POST /v1/authorize, or wrap your MCP server. Read-only actions inside an agent’s data scope pass straight through.
What happens on a HOLD?
An integrated tool waits. The action, its evidence and the reason sit in Approvals for the owner. A hold is the gate asking a person, not an error.
Can we prove what happened later?
Each decision, allowed or not, is written as a receipt with its reason and the evidence it was bound to. Allowed actions carry an expiring signed grant.
How is our data protected?
Connectors are read-only by default. Traffic to Qbrin is encrypted in transit with TLS, and connector credentials and OAuth tokens are encrypted at rest with AES-256-GCM.

See it on your stack

Find the agent nobody owns.

In a 20-minute walkthrough we connect one source read-only, inventory the agents and keys that can act on it, and run one of your real actions through the gate.

  • Every agent and key that can act, listed
  • One real action authorized, with reasons
  • Nothing changes in your tools