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.
09:41:15mcp · driveread Q3 renewals deckIn the agent’s data scopeALLOW
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.
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
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
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.
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
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.
01Agent proposes the action
One authorize call at the tool boundary, or through the MCP wrapper.
02Qbrin runs its checks
The verdict names the check that decided it and why, not one opaque score.
03The caller acts on the verdict
ALLOW returns an expiring signed grant; on HOLD or ESCALATE an integrated tool waits.
04A receipt is written
The receipt records the verdict, its reason and the evidence it was bound to.
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.