Who owns your AI agents? How to find them, give each one a sponsor and stop their access creeping
Ask who answers for each AI agent you run and what it can reach today. If nobody knows, start here. We work through sponsors, unregistered agents, agent-to-agent tokens and drift, then map the risks, the tools for each step and the KPIs worth tracking.
part 5 of 6 · Identity security, from the ground upthe ideaNobody signs for it, so nobody checks what it can reach.
after reading, you can- Explain why every agent needs a business sponsor, and what goes wrong the week that sponsor quits
- Set up discovery that runs on a schedule, delegated tokens per agent and a daily diff that catches access creeping up
- Catch tokens being forwarded from one agent to the next, and fix it so each hop gets its own token and your logs make sense again
AI agents now open tickets, read mailboxes, call each other and change records in production, and in most companies nobody can say who answers for each one. Before you add more agents, give every one a named business owner, find the ones nobody registered and put their permissions under continuous watch. This guide covers the six gaps we look for first, from ownership to the identity graphdefinitionA single map of who owns which agent, what each one runs as and what it can reach. Without it you're stitching exports together by hand..
Somewhere in your company an AI agent is running that nobody owns, and nobody would notice it misbehave
An AI agent is software that takes a goal and works toward it on its own. It reads data, picks tools and acts on systems, sometimes for a person and sometimes for itself. Each one signs in with something: a token, a key, a service account, or an agent identity from your identity provider. Governance means you can answer four plain questions about every agent. Who's accountable for it? Where is it running? What can it reach today? Who or what is it acting for right now? Most identity programs can answer those for employees. Very few can answer them for agents yet.
Think of a building that hands out door badges. Staff badges get checked every quarter and switched off when someone leaves. Now the building starts printing badges for robots that come and go all day, some lasting an hour. If nobody signs for each robot, nobody notices when one starts opening doors it never needed.
- CIOs and CISOs approving agent rollouts
- Identity and IGA teams
- Platform teams running MCP or A2A
- Business owners who build agents
- Auditors and risk teams
If you haven't set up per-agent identities yet, start with giving each agent its own login and capping what it can do. The governance below assumes each agent already has an identity you can point to.
Why does agent governance matter to you?
Agent trouble rarely starts with a dramatic breach. Usually it's slow drift. Someone in finance builds an agent in a low-code tool and gives it a connector to the ERP. Then the builder moves teams. A year later it's still running and nobody's watching. When an auditor asks who approved its access, people shrug.
The standards bodies have noticed. OWASP now keeps a separate top 10 for agentic applications, and identity and privilege abuse sits third on it. NIST's National Cybersecurity Center of Excellence put out a concept paper asking how agents should be identified, authorized and audited. Neither tells you to stop building agents. Both expect you to know which ones you have and what they can do.
-
01 Someone builds an agent
Someone in a business team or in IT builds it in a low-code tool, a cloud console or a plain script. They hand it a token or a service account so it can do its job.
-
02 It never gets registered
Nobody adds it to the identity provider's inventory or names a business owner. It exists only in the tool where it was built.
-
03 Its reach grows
New tools, new connectors and wider scopes get added when someone asks for them. Each change is small, and none goes through an access review.
-
04 It talks to other agents
Before long it's calling other agents and handing them tokens or context. Ask whose authority a given call carries and nobody can tell you.
-
05 The builder leaves
The person who made it changes teams or leaves the company. The agent keeps running, and nothing in the leaver process touches it.
For engineers, the hard part is that every step uses a legitimate feature. Dynamic tool lists, step-up scopes and agent-to-agent calls are all in the specs. Governance has to watch how those features get used over time, because nothing in the protocol will stop an agent from collecting access.
What's out there to help
OWASP's GenAI Security Project wrote a top 10 just for agents. Third on it, ASI03, is identity and privilege abuse. ASI07 covers insecure communication between agents, and ASI10 is rogue agents. It's a good list to hand an architect who thinks agents are just apps.
The 2025-11-25 revision already pointed clients at Client ID Metadata Documents, and this one formally deprecates Dynamic Client Registration. Audience checks and the ban on forwarding a client's token upstream go back to 2025-06-18. If your MCP server still forwards tokens, it's well behind the spec.
A draft from the OAuth working group. It keeps the user and the workload attached to every call as a request moves between services in one trust domain. The group has reached consensus and is waiting on the write-up.
An OAuth working group draft, informally called Cross-App Access (XAA). An app uses an identity assertion from the company's SSO provider to get a token for another app's API, built on Token Exchange.
Microsoft's release notes list it as generally available. An agent identity needs a sponsor before it can be created, and owners and a manager are optional. The extended Conditional Access controls for agents' user accounts are still in public preview, so don't build on those yet.
Okta's help center lays it out as find, register, connect, govern. Okta gave April 30, 2026 as the GA date, and Agent SSO for Cross App Access is GA already. Check your own org before you plan around it.
SailPoint's docs pull agents in from connected sources and let you give each one several owners with a succession plan. There's a report called Identities Overpermissioned by Agents, and certifications can cover agents.
Who owns your AI agents?
Start here, because everything else depends on it. An access review needs a reviewer, a leaver process needs someone to hand over to, and an incident needs someone who can say whether the agent's behavior was expected. If an agent has no accountable human, every one of those processes quietly skips it.
We like Microsoft's split even for teams that don't run Entra. Owners are the technical admins, and they look after credentials and configuration. Sponsors are business people who answer for the agent's purpose. Entra requires one when an agent identity or blueprint is created. If a user creates it and names nobody, Entra makes that user the sponsordefinitionWhoever in the business answers for an agent. If it misbehaves, they're the one you call, and they decide whether it keeps running. Technical settings stay with the owner.. Managers sit in the org chart and can ask for access on an agent's behalf.
| Role | Who it usually is | What they can do | Required? |
|---|---|---|---|
| Owner | Developer or IT admin who runs the agent | Change settings, manage credentials, add owners and sponsors, re-enable or restore | Optional in Entra. We'd still name one |
| Sponsor | Business owner, product manager or team lead | Decide renewal or removal, request access, disable or soft-delete. No technical admin rights | Required on create for agent identities and blueprints |
| Manager | The person the agent reports to in the org chart | Request access packages for the agent's user account | Optional |
The detail that matters most is succession. A sponsor who leaves is the classic orphaning moment. Entra's Lifecycle Workflows can move sponsorship to the leaving sponsor's manager automatically once you set up the sponsor tasks, and SailPoint's agent docs describe an automated succession plan for agent owners. Whatever platform you use, test the leaver path with a real agent before you trust it.
Watch the defaults too. In Copilot Studio, Microsoft records whoever created the agent as its sponsor. That's a reasonable start for a prototype. For an agent that a whole department relies on, the sponsor should be someone who can actually decide whether it's still needed, so change it when the agent goes into real use.
Are AI agents your new shadow IT?
Usually, yes. Shadow IT used to mean a team buying a SaaS app with a credit card. Agents are easier to start than that. Anyone with a low-code license, a cloud console or an API key can make one, and it runs under whatever credential they gave it. The identity team only sees it if it signs in through a path they already monitor.
Even one vendor's own tools can disagree about what exists. Microsoft says the Entra admin center shows agents that have an Entra agent identity, while the full inventory, including agents without one, lives in the Agent 365 registry in the Microsoft 365 admin center. Its docs also warn that some agent identity blueprints created earlier may not appear in that registry until someone registers them. If you count agents from one console, check it against the other.
Discovery has to look in more than one place. Okta's agent product starts with discovering agents in managed and unmanaged apps, including agents employees connect to company apps. SailPoint aggregates agents from connected sources and correlates the machine accounts they use. Pick the sources that match where your agents actually get built, then run discovery on a schedule. A one-off sweep goes stale the week after.
- Identity provider logs: sign-ins and token grants from app registrations, service principals and OAuth clients nobody can name
- Agent platforms. Low-code studios, cloud agent services and model gateways each keep their own list, and they rarely match
- Secrets and vaults. Look for API keys and tokens issued to automation that nobody ever tied to an owner
- MCP servers and gateways. Their logs show who connects and what they call, which is often the first sign of an agent nobody listed
- Cloud bills and egress: model API spend on cost centers that never asked for an agent
When you find one nobody claims, treat it the way you'd treat an orphaned service account. Look at what it calls, ask the teams whose systems it touches, and if nobody steps up, disable it in a change window and see who complains. Don't delete it on day one. You'll want its logs if it turns out to matter.
Why don't the IAM and IGA tools you already run cover agents?
IGA was built around people who join, move and leave on HR dates, and around applications that stay put for years. Quarterly certifications work when access changes slowly. Agents break both assumptions. Microsoft's own docs say an agent might exist for minutes, or be created and destroyed thousands of times a day in an automated workflow.
There's a second gap. An agent either works on its own grants or, when it acts for a person, on the rights that person delegated to it. A quarterly review of the agent's entitlements alone misses half of it. You need to know who it was acting for, at the moment it acted.
| Control | Employees | Classic workloads | AI agents |
|---|---|---|---|
| Lifecycle trigger | HR joiner, mover and leaver dates | Change tickets and deployments | A prompt, a workflow run or a user in a low-code tool. Sometimes minutes long |
| Accountable human | The person and their manager | Application owner in the CMDB | Often unclear. Needs a named sponsor |
| Permissions | Roles from an access request | Fixed scopes set at deploy time | Its own grants, or rights a user delegated to it, plus step-up scopes at runtime |
| Tools it can call | Apps it's licensed for | Code paths fixed in a release | A tool list that can change while it runs |
| Review cadence | Quarterly or annual certification | Annual, if at all | Continuous checks on new grants, plus periodic sponsor review |
| Authentication | Password, MFA, passkeys | Secrets, certificates, workload identity | Workload credentials or agent identities. Never human MFA |
- The agent shows up once a quarter as one line in a campaign, and it's easy to approve without a second look
- Someone gets a list of the agent's entitlements and no idea whose work it was doing, so they guess and approve
- Scopes it picked up in week two sit there unnoticed until the next campaign, months later
- Revocation waits for the reviewer to click reject
- Nobody gets a credential for an agent until a sponsor has signed for it
- When the agent picks up access, the log says who it was working for. Six months later you can still answer the auditor
- The day a new scope or tool appears, the sponsor hears about it and decides whether it stays
- One kill switch pulls its sessions and tokens everywhere. Nobody has to log in to five consoles
None of this throws IGA away. Certification campaigns still matter for the standing grants on agent templates and blueprints, and for the humans who can call agents. SailPoint, for instance, describes campaigns where certifiers review human access to agents and the tools agents can reach. The change is adding a continuous layer underneath for everything that moves faster than a quarter.
How should one agent prove who it is to another?
Once agents call agents, zero trust gets harder. NIST's zero trust architecture says no implicit trust comes from network location alone, and authentication and authorization happen before each session. That's easy to state for a user hitting an app. It's much harder for a planner agent that hands a task to a research agent, which calls a tool through an MCP server, which calls a SaaS API.
The protocols help, but only partly. A2A is at version 1.0.0 and treats an agent like any other enterprise app. You publish an Agent Card at /.well-known/agent-card.json saying how callers sign in, and they get credentials out of band. Your server checks each request against its own policies. A2A also warns that hitting the auth-required state doesn't grant anything by itself, which is easy to get wrong in a quick build.
MCP covers the agent-to-tool hop. Its authorization spec makes the MCP server an OAuth resource server, requires the client to name the target server in a resource parameter, and requires the server to check that each token was issued for it. The server must not pass a client's token on to an upstream API. It gets its own token for that hop, and the confused deputy problem is the reason why.
What's usually missing is identity that survives the whole chain. OAuth Token ExchangedefinitionOAuth's way (RFC 8693) to swap one token for another. Under delegation the new token names both the user and the agent acting for them. (RFC 8693) lets an agent swap the token it got for a new one under delegation. The agent keeps its own identity, and the act claim names it. Nested act claims keep a record of earlier callers, so the service at the end can see the research agent working for the planner, which works for a buyer in procurement. Those earlier callers are there for the audit trail. RFC 8693 says not to use them in access decisions, so authorize on the current actor. Inside one trust domain, the Transaction Tokens draft goes a step further and carries the user, the workload and the authorization context down the call chain.
sub: user:buyer-114@procurement aud: https://mcp.example.com/erp scope: po:read act: { sub: agent:research-7 } act: { sub: agent:planner-2 }
For the agent's own credential, workload identity is the safer base. SPIFFE gives each workload an ID in the form spiffe://trust-domain/path and issues short-lived X.509 or JWT documents through its Workload API, rotated automatically. SPIFFE prefers the X.509 form, since JWTs can be replayed. Agents running as workloads can use the same plumbing your services do, so nobody pastes long-lived API keys into a config file.
The OpenID Foundation's paper on agent identity is honest about the gap. Today's frameworks give a solid foundation for agents that stay inside one organization, and they weren't designed for recursive chains of agents spawning sub-agents. A commenter on Hacker News put the practical side bluntly: most of it can be solved by composing existing standards, but in practice almost nobody does. On Okta's developer forum, a team running only an MCP gateway with no user interface asked how Cross App Access works when there's nowhere for a user to sign in. Plan for those headless cases early.
Your agent has more access today than the day it went live. Who noticed, and when?
Agents rarely edit their own role assignments. They don't need to. The specs let access grow at runtime in quieter ways, and each one is legitimate on its own. Governance means watching for the pattern.
Three ways an agent's reach changes after go-live
Ask for something the token doesn't cover and the MCP server should reply 403 insufficient_scope. The client re-asks with old and new scopes combined. That's fine once. Over a few months it's how a read-only agent ends up with write access, so log each step-up.
An MCP server's tool list can change while you're using it, and the server can tell clients when it does. So a new tool can turn up on a server you already trust, and nobody files an access request for it.
Someone widens a Conditional Access exclusion, adds a scope to a blueprint or swaps a short-lived credential for a static key during a late-night fix. Nothing about the agent looks different afterwards.
MCP's own security guidance lists the mistakes to look for: publishing every possible scope, wildcard scopes like full-access, bundling unrelated privileges to avoid future prompts, and silent changes to what a scope means without versioning. Those are exactly the things a drift check should flag. The same guidance says servers should log elevation events with the scope requested, the subset granted and a correlation ID.
OWASP's excessive agency entry blames too much functionality, permission or autonomy. One of its key mitigations is complete mediation. The downstream system checks every action, and the model never gets to decide whether something is allowed. NIST's concept paper is still asking whether authorization policies can update when an agent's context changes, for instance when it picks up new tools. Nobody has a settled answer, so plan for it yourself.
In practice, drift detection is a diff. Take a baseline of each agent's scopes, tools, credentials and policy assignments. Compare it daily against what the identity provider, the MCP gateway and the vault report. Anything new either has an approval behind it or goes to the sponsor. MCP also says clients must treat tool annotations as untrusted unless they come from trusted servers, so read what a new tool does before you believe its label.
Where's the identity graph for agents, bots and NHIs?
Ask most companies to show every path from one agent to their customer database and you'll get four exports and a spreadsheet. The agent lives in an agent platform, its credential in a vault, its workload in a cloud account, its delegated user in the identity provider, and its tools behind an MCP gateway. Each console is right about its own piece.
A graph joins those pieces. Nodes are humans, agents, NHIs, credentials, workloads, tools and resources. Edges say owns, sponsors, runs as, acts for, holds, can call and can reach. NIST's concept paper names NGAC (Next Generation Access Control), an attribute-based standard that models policy as a graph of users, objects, attributes and policy classes, as one option it's considering. You don't need NGAC to start. You need the edges in one place so you can ask a question across them.
Before: every console sees one slice of the agent
The agent platform, vault, cloud and identity provider each hold part of the picture. Nobody can trace an agent to the data it reaches without stitching exports by hand, and orphaned keys go unseen.
After: one map from sponsor to data
Discovery fills one inventory. Each agent there has a sponsor, a short-lived credential and tokens that say who it's working for. The gateway logs its tool calls, so you can answer an auditor with one query instead of four exports.
Some vendors are starting to put pieces of this graph inside their own products. SailPoint's agent report lists identities that are overpermissioned by agents, and Okta's agent product covers access reviews and ownership for agents as resources. Those help inside each tool. If your agents span several platforms, you'll still need a layer that reads from all of them.
- Which agents can reach payment or customer data? Who signs for each one, and do those people know they're on the hook?
- Which agents run on a credential that nobody owns, or on a key older than your rotation policy?
- Which people can start an agent that has more access than they do? If someone can, they can borrow privilege they were never given
- Which agents call other agents? On each hop, check the token was issued for the one receiving it. If it was just passed along, you've found a forwarding problem.
- If a sponsor resigned today, which agents would be left with nobody to answer for them, and who'd find out?
Standards and platform dates to plan around
- Aug 2020NIST SP 800-207 zero trust architecture
- Oct 7, 2025OpenID Foundation agent identity paper
Says today's frameworks weren't built for agents spawning agents. That's where most of the open problems sit.
- Dec 9, 2025OWASP Top 10 for Agentic Applications
- Feb 5, 2026NIST NCCoE agent identity concept paper
Comments closed April 2, 2026.
- Apr 2026Microsoft Entra Agent ID platform GA
- Apr 30, 2026Okta for AI Agents GA date Okta announced
- May 21, 2026Identity Assertion Authorization Grant draft 04
- Jul 28, 2026MCP specification revision
Dynamic Client Registration formally deprecated.
- Jul 30, 2026OAuth Transaction Tokens draft 11
Which risks hit first, and where do the controls you already run fall short?
Most of these risks already have a name. OWASP has written them up across three separate top 10 lists, and NIST's AI RMF asks for an inventory, named accountability and a working way to switch a system off. The table lines each risk up with the control most teams lean on today, then shows where that control stops working for agents.
| Risk | Where it's named | What teams usually rely on | Where it falls short for agents |
|---|---|---|---|
| Orphaned agents | OWASP NHI1 Improper Offboarding; NIST AI RMF GOVERN 1.7 | The HR leaver process | Agents have no HR date. Unless someone set up sponsor succession, the agent keeps running after its builder leaves |
| Agents nobody registered | NIST AI RMF GOVERN 1.6 (AI system inventory) | The identity provider's app list or the CMDB | Each console lists what was registered there. Entra's admin center shows agents with an Agent ID; the full inventory is in Agent 365 |
| Too much access | OWASP LLM06 Excessive Agency; NHI5 Overprivileged NHI | Role design at deploy time | Step-up scopes and tool lists can change after go-live, so the deploy-time review goes stale |
| Long-lived keys | OWASP NHI7 Long-Lived Secrets; NHI2 Secret Leakage | Vault rotation for some secrets | Microsoft says Conditional Access doesn't apply when an agent uses an API key, so a static key skips the policy layer |
| Privilege abuse through delegation | OWASP ASI03 Identity and Privilege Abuse | Authorization inside each app | Without its own identity an agent works in what OWASP calls an attribution gap. In Entra on-behalf-of flows, risky activity is attributed to the user |
| Spoofed agent-to-agent calls | OWASP ASI07 Insecure Inter-Agent Communication | Network trust inside a zone | A2A leaves getting credentials to an out-of-band process, and signing the Agent Card is optional |
| Shared or borrowed identities | OWASP NHI9 NHI Reuse; NHI10 Human Use of NHI | One service account per application | When several agents, or a person, use one identity, the logs can't tell you who did what |
| Rogue agents and cascades | OWASP ASI10 Rogue Agents; ASI08 Cascading Failures; NIST AI RMF MANAGE 2.4 | A manual incident runbook | NIST asks for a way to deactivate a system and named people to use it. For agents that means one switch that works in every app |
What should each team do now?
What to do now, by who you are
- Ask for a list of the AI agents your team relies on, with a person's name next to each one. Blanks are your first problem.
- Agree that no agent goes live without a named business sponsor, and that sponsors review their agents on a set schedule.
- Pick the actions an agent must never take without a person signing off. Payments and vendor bank detail changes belong on that list.
- Turn on agent identities in your identity provider. When a user creates an agent and names nobody, Entra makes that user the sponsor, so make choosing a real business sponsor part of your approval step.
- Test the leaver path: move a sponsor out and check that sponsorship actually transfers.
- Put MCP servers behind audience checks and stop any token passthrough to upstream APIs.
- Use token exchange with actor claims for agent-to-agent hops, so your logs show the full chain. Authorize on the current actor only.
- Move agent credentials to workload identity or short-lived tokens, and retire static keys in config files.
- Alert when any agent picks up a new scope, tool or policy exclusion. Send it to the sponsor, who knows if it's expected.
- Keep a tested kill switch that revokes an agent's sessions and tokens across apps.
- Hunt for tokens and keys that automation still uses but no registered agent claims. Those are usually the forgotten ones.
How do you build an agent governance program?
We'd build it in this order. Each step gives you something an auditor can check, and each one makes the next step cheaper. Don't try to buy the whole thing at once. Most of the early work is lists, owners and logs you mostly already have.
A practical agent governance program, in order
- 01Name an owner and a sponsor for every agent
Write the rule first: no sponsor, no credential. Record the technical owner, the business sponsor and a review date for each agent. Fix the low-code default where the builder becomes sponsor once an agent goes into real use.
- 02Run discovery on a schedule
Pull agents from your agent platforms, identity provider logs, vaults and MCP gateways. Compare the lists. Anything with no sponsor goes to an owner hunt, then a disable in a change window if nobody claims it.
- 03Issue scoped, delegated credentials
Give each agent its own identity, built from a template someone has reviewed, and hand out tokens that expire quickly. When it works for a person, use token exchange so the token names both of them. Then set your authorization server so the agent can't get more than that person could do by hand.
- 04Authenticate every agent-to-agent hop
Publish what each agent accepts in its A2A Agent Card and sign the card. Check token audience at every MCP server. Mint a new token for each hop instead of forwarding the one you received.
- 05Watch for drift every day
Baseline each agent's scopes, tools, credentials and policy assignments. Diff it daily against the identity provider, the gateway and the vault. Every change either has an approval or goes to the sponsor.
- 06Join it all in an identity graph
Load owners, agents, NHIs, credentials, workloads, tools and resources into one model. Start with the five questions above. Once you can answer them in one query, add them to your quarterly risk report.
Which tools help at each step?
Analysts group these products into categories, and the names come in handy when you're writing a budget line. Gartner's term for the AI side is AI TRiSM, short for AI trust, risk and security management. It covers keeping AI systems trustworthy and compliant through ongoing monitoring and enforcement, and the identity tools you'd use for agents sit underneath it.
We don't rank vendors. Each category below maps to a step of the six-step program, and the examples are listed alphabetically. A capability only made it into the tables if the vendor's own documentation describes it, and we kept the vendor's status label where it has one.
| Program step | Tool category | What it adds for agents | Examples (A to Z) |
|---|---|---|---|
| 1. Owners and sponsors | Access management (agent identity in the identity provider) | A sponsor or owner field (required in Entra, optional in Okta). An Entra Lifecycle Workflows leaver task can move sponsorship to the manager, once configured and licensed | Microsoft Entra Agent ID; Okta for AI Agents |
| 2. Discovery | Identity security posture management (ISPM) and NHI discovery | Scans that turn up agents and OAuth grants nobody registered | CyberArk Secure AI Agents; Okta ISPM; SailPoint Agentic Fabric |
| 3. Scoped, delegated credentials | Privileged access and secrets management (PAM) | Dynamic secrets with leases, short-lived tokens and on-behalf-of flows | CyberArk Secure Workload Access; HashiCorp Vault |
| 4. Agent-to-agent hops | Authorization servers and agent gateways in access management | Token exchange per hop, MCP resource connections and policy checked before a token is issued | CyberArk Identity Broker; Microsoft Entra Conditional Access; Okta Cross App Access |
| 5. Daily drift checks | Identity threat detection and response (ITDR), ISPM and cloud entitlement management (CIEM) | Risky-agent detections, privileged-grant findings and unused-access findings | AWS IAM Access Analyzer; Microsoft Entra ID Protection; Okta ISPM |
| 6. Identity graph and reviews | Identity governance and administration (IGA) | Certification campaigns, owner reports and agent-to-access views | Okta Identity Governance; SailPoint Agent Identity Security |
| Product (category) | Agent discovery | Owner or sponsor | Access reviews | Drift or posture alerts |
|---|---|---|---|---|
| Microsoft Entra Agent ID (access management) | Yes, for agents with an Agent ID. The full inventory is in Agent 365 | Yes. At least one sponsor required; owners optional | Not documented as an agent feature. Microsoft's best-practice guide says to include agents in reviews | Yes. Risky agents in ID Protection; all detections are offline for now |
| Okta for AI Agents (access management) | Yes, through ISPM. CrowdStrike endpoint agents and MCP servers are early access | Yes. Optional, up to five owners | Yes. Okta Identity Governance certifies agent resource connections | Yes. ISPM flags agents holding privileged OAuth scopes |
| SailPoint Agent Identity Security (IGA) | Yes. Aggregates agents from sources; Agentic Fabric adds endpoint and browser agents | Yes. Several owners, with successors if the primary owner goes inactive | Yes. Certification campaigns | Reports, such as Identities Overpermissioned by Agents. Alerting not documented |
| CyberArk Secure AI Agents (PAM and secrets) | Yes. Raises an unmanaged AI agent risk for agents it finds that aren't registered | Yes. The owner field is informational and grants nothing | Not documented for agents | Unmanaged-agent risk documented. Activity insights are early access |
| HashiCorp Vault Enterprise 2.1+ (PAM and secrets) | Not documented. Agents are enrolled in a registry | Yes. Optional owner field in the agent registry | Not documented | Not documented |
| Product | Short-lived or delegated credentials | OAuth, MCP and A2A token controls | Log export |
|---|---|---|---|
| Microsoft Entra Agent ID | Yes. On-behalf-of and client credentials through federated identity credentials; managed identities preferred | Yes. Conditional Access is evaluated before a token is issued, MCP servers included. API-key access skips it | Yes. Sign-in and audit logs through diagnostic settings to Log Analytics, an event hub or storage |
| Okta for AI Agents | Yes. Cross App Access is GA. Okta labels the actor claim for on-behalf-of token exchange GA in Preview | Yes. Resource connections for MCP servers, agent gateways and A2A. Agent Gateway and MCP discovery APIs are beta | Yes. System Log API, plus streaming to Amazon EventBridge or Splunk Cloud |
| SailPoint Agent Identity Security | Not documented | Not documented. Agentic Fabric inventories MCP servers as governed assets | Search API over audit events. Native SIEM streaming not documented |
| CyberArk Secure AI Agents | Yes. Short-lived tokens and SPIFFE SVIDs through Secure Workload Access (GA) | Yes. OAuth 2.1 through the Identity Broker; MCP tool access is denied by default. A2A not documented | Yes. Every tool request is audited; SIEM integration documented |
| HashiCorp Vault | Yes. Dynamic secrets with lease TTLs; on-behalf-of flow in Enterprise | Yes. Built-in OAuth resource server (Enterprise 2.1+). The MCP server is beta | Yes. Audit devices log nearly every request and response (a few documented exceptions), with most values HMAC'd |
Read "not documented" literally. We couldn't find it in the vendor's public docs, and it might exist under another name or behind a login. Saviynt's technical documentation sits behind a customer sign-in, so we left it out of the tables rather than quote its marketing pages. Check licensing too. Microsoft says ID Protection for agents will need an Agent 365 license, and Conditional Access for agents needs Microsoft 365 E7, or Agent 365 with at least Entra P1 or Microsoft 365 E3.
If Microsoft Entra Permissions Management ran your drift checks, they need a new home. Microsoft retired the product on November 1, 2025 and partnered with Delinea on an alternative. AWS shops can switch on IAM Access Analyzer's unused access findings, which catch roles, keys and permissions nobody touched in the window you set. Those are billed separately.
Our platform pages go deeper on each tool: Microsoft Entra ID, Okta, SailPoint, Saviynt, CyberArk, HashiCorp Vault and Delinea. Start with the tool you already pay for, and only add a category when a step of the program has no owner.
Which KPIs show it's working?
These are measures we'd track, not industry benchmarks, and we won't give you a target number. Take a baseline in the first month and watch the trend after that. Each one comes from logs you can already collect, as long as someone turns the export on.
| KPI | Why it matters | Telemetry to collect | Where it comes from |
|---|---|---|---|
| Agents with a named owner and sponsor (%) | No sponsor means no reviewer and nobody to call | Agent records with the sponsor and owner fields filled in | Entra agent identities (sponsor required); Okta AI agent owners; SailPoint agent owners |
| Unregistered agents found per month | Shows whether discovery works and whether builders skip the front door | Discovery findings for agents with no registration | Okta ISPM discovery; CyberArk's unmanaged AI agent risk; Agent 365 inventory compared with the agent identities in Entra |
| Mean time to revoke | How long an orphaned or misbehaving agent keeps working after someone decides to stop it | Time from the disable event to the last successful token or secret use | Okta System Log workload_principal.deactivate and app.oauth2.as.token.grant; Vault lease revocations in the audit log; CloudTrail GetSecretValue for AWS Secrets Manager |
| Agents on short-lived or delegated credentials (%) | Static keys live too long and skip Conditional Access | Token and session issuance per agent, set against static key use | CloudTrail AssumeRole events (userIdentity, sessionContext); Okta app.oauth2.token.grant.id_jag; Vault leases and TTLs |
| Permission drift events per agent, and the share approved | Catches access creeping up between reviews | New scopes, grants, tools or policy changes compared with the baseline | Entra audit logs (service principal updates, agentType); Okta ISPM privileged OAuth grant findings; MCP scope elevation logs; IAM Access Analyzer unused access |
| Agent calls with a verified identity (%) | Forwarded or unverifiable tokens hide who acted | Per call: agent, client ID, user, audience and actor chain | CyberArk Identity Broker audits; Okta System Log for Agent Gateway token exchanges; MCP elevation logs with correlation IDs; RFC 8693 act claims |
| Sponsor reviews completed on time (%) | A sponsor field nobody reviews is just a name | Campaign decisions and completion dates per agent | Okta Identity Governance certifications; SailPoint certification campaigns |
| Agents with no recent activity | Idle agents are the next offboarding candidates | Last sign-in or last use per agent identity | Entra sign-in logs (Is Agent filter); IAM Access Analyzer unused roles and access keys |
Send it all to one place. Entra's diagnostic settings push sign-in and audit logs to a Log Analytics workspace or an event hub, and Okta streams its System Log to Amazon EventBridge or Splunk Cloud. Entra doesn't keep a separate sign-in log for agents. Their sign-ins land in the existing sign-in logs, so you'll filter on agent type.
Two things catch people out with Vault. Its audit log stores most string values as HMACs, so you can match one secret's use across entries but you can't read the secret. And if every audit device goes down, Vault stops serving requests, so run more than one.
What if an ungoverned agent causes a problem?
When an agent misbehaves, or an audit turns up one nobody owns
Maybe an agent changed records nobody asked it to, or an auditor found one running on a builder's old key. Stop it first, then work out what it touched, then decide whether it comes back. Don't delete anything until you've saved its logs.
- 01Containfirst hour
- Disable the agent's identity and revoke its active sessions and tokens across apps. Use the kill switch if you have one.
- Block its credentials at the vault and the gateway, so a copied token stops working too.
- Tell the sponsor. If there isn't one, tell the nearest manager, and let the owners of every system it could reach know too.
- 02Investigatefirst day
- Pull identity provider, gateway and app logs for the agent. Read the actor claims to see who it was acting for on each call.
- Write down what the agent could reach and when each piece was added. That's usually where the gap shows.
- Look for calls to other agents and tokens it passed along. Each one you find widens the incident, so trace them before you close anything.
- 03Recoverdays 1 to 3
- Undo the bad changes using backups or the audit trail in each system it touched. Check them with the system owner.
- Rotate any shared secrets the agent could read.
- Rebuild the agent from a reviewed template with a sponsor before it runs again, or retire it.
- 04Report and learnfirst two weeks
- Record what it did, for whom and why your controls missed it. Auditors and insurers will ask.
- Add the gap to your discovery sources or drift checks, so the next agent like this shows up in days instead of at the next audit.
- Walk the business sponsors through what happened, so they know what signing for an agent really commits them to.
Part 2 of this series goes deeper on that first hour: how to stop a rogue agent, and what OAuth and runtime enforcement can and can't do. It covers revocation platform by platform, the containment steps in order and how to join your logs so you can prove what the agent did.
What could this look like in practice?
Three typical situations
- the setup
- A mid-size manufacturer's finance analyst built an invoice-matching agent in a low-code tool. It connects to the ERP through a shared service account. The analyst has since moved to another team.
- what happens
- Nobody sponsors the agent, so the quarterly review skips it. Over time someone adds a connector that can post journal entries. When it posts a batch twice, nobody knows who can approve turning it off.
- what to do
- Name a finance sponsor today. Move the agent to its own identity with read and match access only, put journal posting behind a person's approval, and add the leaver check to the move process.
- the setup
- A software company runs two agents. Support hands refund questions to billing over A2A, and to show who asked, it forwards the rep's own token along with them.
- what happens
- The billing agent accepts a token that was never issued for it. Its logs show the rep, not the support agent. When a refund goes wrong, nobody can tell which agent made the call.
- what to do
- Stop forwarding tokens. Have the support agent exchange its token for a new one aimed at billing, with an act claim naming itself. Billing checks the audience and logs the full chain.
- the setup
- An enterprise has agents in its identity provider's agent product, in a cloud agent service and in scripts on VMs. Each platform has its own inventory and none of them agree.
- what happens
- An auditor asks which agents can reach customer data. The answer takes two weeks of exports, and it turns up agents running on API keys nobody owns.
- what to do
- Run scheduled discovery across all three, require a sponsor for anything found, and load the results into one identity graph so the auditor's question becomes a query.
We'd start by sitting down with your team to build a spreadsheet: one row per agent, with its sponsor and what it signs in with. Then we wire reviews and drift checks into the identity tools you already run. Our non-human identity discovery and governance and AI agent identity pages explain how we work.
We'd usually do the platform work on Microsoft Entra ID, Okta, SailPoint or Saviynt. CyberArk or HashiCorp Vault can hold the agent credentials. You can bring in identity engineers for the build, or start with an assessment and see what you actually have first.
What to take from this
- 01
Every agent needs a named business sponsor before it gets a credential, and the leaver process has to move that sponsorship.
- 02
Run agent discovery on a schedule across your agent platforms, identity logs, vaults and MCP gateways. One console never shows them all.
- 03
Keep quarterly certifications for templates and standing grants, and add a daily diff for scopes, tools and policies that change at runtime.
- 04
Mint a new token for every agent-to-agent hop with an actor claim, and never forward a token you received.
- 05
Join owners, agents, NHIs, credentials, workloads and resources in one identity graph, so audit questions become queries.
- 06
Check preview and draft labels in your own tenant before you design around a vendor feature or an IETF draft.
- 07
Line up each OWASP and NIST risk against the control you run today. Static API keys, offline risk detections and on-behalf-of attribution are where the gaps tend to show.
- 08
Pick tools by the program step they cover. Trust what the vendor's docs say, and check the status label before you plan around it.
- 09
Track a handful of KPIs from logs you already have: sponsor coverage, unregistered agents found, time to revoke, short-lived credential share and unapproved drift.
- How Cohash delivers Microsoft Entra ID: scope, roles and architecture
- How Cohash delivers Okta: scope, roles and architecture
- How Cohash delivers SailPoint: scope, roles and architecture
- Hire vetted Microsoft Entra ID engineers
- NHI discovery and governance
- Book a 30-minute working session with a senior engineer
01Who should own an AI agent in our company?
Two people, usually. A technical owner who manages its settings and credentials, and a business sponsor who answers for why it exists and whether it's still needed. If you can only name one, name the sponsor. That's who reviews it and who you call when it misbehaves.
02How do we find AI agents nobody told us about?
Look where agents get built and where they sign in. Pull the lists from your agent platforms and low-code tools first. Then go through identity provider logs and vault entries for clients nobody can name, and check the MCP gateway too. Run it on a schedule, since a one-off sweep goes stale fast.
03Our quarterly access reviews already cover service accounts. Is that enough for AI agents too?
Not on their own. Some agents last minutes and others pick up scopes and tools mid-quarter. Keep reviews for the templates and standing grants, and add a daily check that sends any new scope, tool or policy change to the agent's sponsor.
04How should one AI agent authenticate to another?
Each agent proves who it is with its own short-lived credential. The one receiving the call checks the token was issued for it, and rejects it otherwise. If the caller works for a person, use OAuth Token Exchange so the new token names both of them. Don't ever forward the token you were given.
05What is an identity graph for AI agents?
It's one model that links owners, agents, non-human identities, credentials, workloads, tools and the resources they reach. With it, questions like which agents can reach customer data, and who sponsors them, become a single query instead of a week of exports.
06We only have a couple of agents. Do we need all of this?
Start small. Name a sponsor for each one, give each its own identity and write down what it can reach. Add discovery and drift checks when the count grows, which tends to happen faster than people expect once low-code tools are in use.
07Which tools do we need for AI agent governance?
Usually the ones you already own, extended to agents. The identity provider holds sponsors and issues agent tokens, the IGA tool runs reviews, and the vault hands out short-lived secrets. Check each vendor's docs for agent support and the status label before you buy something new.
08What KPIs should we track for our agents?
Start with the share of agents that have a named sponsor, how many unregistered agents discovery finds each month and how long a revoke takes. Then add the share on short-lived credentials and drift that went through without approval. Measure against your own first month, since we don't quote benchmarks.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1Your agent's sponsor resigns on Friday. On Monday the agent is still running and nobody has looked at it. What should have happened?
show the answer
B. Sponsorship moved to a named person, usually the leaver's manager, who checks it's still needed Nobody else will answer for the agent. Reviews and incidents skip an agent with no sponsor, so the leaver process has to hand it to someone who can decide.
-
Q2Your support agent forwards a rep's token to the billing agent. Billing's logs now show the rep, not the agent. What do you change?
show the answer
D. Swap it for a new token meant for billing, with an actor claim naming the support agent, so the logs show both A token issued for one service shouldn't be accepted by another. Token exchange gives each hop its own token and records who's acting for whom.
-
Q3A server your agent already uses adds a tool overnight, and nobody asked for it. How should you find out?
show the answer
A. A daily diff catches it. Then the sponsor decides whether the agent should keep it Tool lists can change at runtime, and annotations from untrusted servers aren't reliable. A baseline and a daily diff catch new reach before a quarter goes by.