Agent offboarding

Agent offboarding is removing what an AI agent, token or automation can reach when its task ends or its owner leaves. Why no HR event triggers it.

9 min read · Published September 7, 2026 · Last updated September 7, 2026

Agent offboarding is the removal of what an AI agent, integration or token can reach when its task ends, its owner leaves, or it is no longer justified. It is the leaver stage applied to identities that have no leaving date: nothing in the HR system points at them, so the trigger has to come from the person who created them.

Agent offboarding is the leaver stage for the things that keep working after a person has gone. An AI agent connected to the ticketing system, an integration authorized with someone's workspace account, a personal access token in a deployment pipeline: each of these authenticates without the person, and none of them has a leaving date.

Ordinary offboarding answers the question "what did this person hold". Agent offboarding answers the harder one: "what did this person create that still runs". The second list is longer, it is invisible from the identity provider, and nothing in the HR system points at it.

one person leaves. two lists.

WHAT THEY HELD                          WHAT THEY CREATED
(the checklist covers this)             (nothing points at this)
--------------------------              -------------------------
directory account                       personal access tokens
app accounts                            API keys in a config file
group memberships                       OAuth grants they consented to
sessions and refresh tokens             automations running as them
                                        service accounts they made
                                        AI agents wired to their session
                                        webhooks pointing at their laptop

the test: after the leaver's last day, which of the right-hand column
still runs, and who owns it now?
A leaver's own accounts are the visible half. The other half is everything they created that authenticates without them, and no HR event points at it.

Why does offboarding miss them?

Because every trigger and every checklist is built around accounts, and these are not accounts.

The trigger is a person's status

HR marks a termination and the leaver workflow removes whatever the directory says that person held. Nothing in the directory records that the same person authorized four integrations and issued two tokens, so nothing in the run goes looking for them. The directory is an accurate list of what was granted through it, and that is a different list from what the person created.

The checklist was written from memory

A checklist names the applications someone remembered, which are the applications people log into. Tokens, grants and agents have no login, so they never came up in the conversation that produced the list. Checklists also age in one direction only: a new application gets added, and a new kind of credential does not.

The artefacts sit in other people's consoles

A token lives in the code host's developer settings, a grant in the workspace admin console, an agent in whatever tool it was configured in. None of those is where offboarding happens, and several are administered by a team other than the one running the leaver process. Finding them takes an inventory per system rather than one query against the directory.

Nobody is asked to claim them

An automation with no owner keeps working, and work that keeps working generates no ticket. The only signal such an identity produces is the one it produces when it finally breaks, which tends to be months later and gets attributed to something else.

What has to be revoked, reassigned or left alone?

Three outcomes, and deciding which is the whole job. The default matters: anything nobody will claim is revoked.

What the leaver createdWhere it livesDefault outcome
Personal access tokensThe code host, the identity provider, each SaaS developer settingRevoke. A personal token is personal, whatever it was automating
OAuth grants they approvedThe workspace admin console, each applicationRevoke, unless the integration is a company purchase, then reissue under a service identity
Automations running as themThe integration platforms, the scheduler, cron on a serverReassign to a named owner and re-authenticate, or revoke
Service accounts they createdThe directory, cloud consoles, databasesReassign, with the secret rotated, because they knew it
AI agents they configuredCoding tools, chat platforms, internal deploymentsReassign with the scope re-approved, or revoke
Webhooks and callbacksEach application's integration settingsRevoke, and expect one thing to break loudly rather than quietly

Why revoke is the default

An unclaimed identity is a liability with no upside. The cost of a wrong revocation is a broken job that somebody notices within a day. The cost of a wrong reassignment is an identity that looks governed and is not. Making revoke the default also moves the burden onto whoever wants the thing kept, and the person who speaks up becomes its owner by asking.

The rotation argument

The rotation question is the one practitioners argue about, and the argument is worth reading in full. One side says a key that a departing employee once knew is no longer a key anyone can reason about:

Hacker News comment by kkl

If a person previously had access to the key and knowledge of the key gives you control over that automated workflow, is that key (and by extension that workflow) still worth trusting?

kkl·Hacker News

The answer that removes the argument is to stop issuing credentials a person can hold: short-lived, narrowly scoped, issued on demand. Then a departure changes nothing, because there is nothing durable to have taken.

What does an agent offboarding run look like?

The same run as the person's, with a second list in it.

1The termination fires the run

The HR event starts the leaver workflow, which closes accounts and revokes active sessions as it already does. Session revocation matters more than it appears to. An account can be disabled while an open session or a refresh token keeps working. That is why the platform guidance for revoking access in an emergency treats revoking tokens and sessions as steps of their own, rather than as consequences of disabling the user.

2The run queries for what the person created

Every connected system is asked for artefacts attributed to that person: tokens they issued, grants they approved, service accounts and agents naming them as creator or owner. This step does not exist in a conventional offboarding process. It is also the step that forces the run to reach applications directly, because the directory has no record of what was created inside them.

3Each artefact gets a decision

The default is revoke. Anything the business needs is reassigned to a named owner, with the credential rotated and the scope re-approved by whoever now owns it. A decision recorded without a name attached is not a decision, because the next person to read the record cannot tell whether the identity was kept on purpose.

4Revocations execute where the credential was issued

An OAuth grant is withdrawn at the authorization server, over the token revocation endpoint where one is offered and in the admin console where it is not. Deleting a stored secret without withdrawing the grant is the common half-finished version, and it leaves the integration able to mint a fresh token the next time it runs.

5Reassignments carry a re-justification date

A reassignment with no date attached is a way of making the problem quieter. The new owner receives a date on which the identity is re-justified or removed, which turns a permanent transfer into a decision that expires.

6The record covers both halves

The evidence lists what was closed and what was reassigned to whom. An auditor sampling that leaver sees the accounts and the artefacts in one place. That is the difference between a clean record and a record that is clean about half of the question.

Offboarding in Iden runs against both lists. The workflow closes the person's accounts and, in the same run, flags every token, OAuth grant, service account and agent that person created, with the owner to reassign to or the revocation to execute. The Workflows screen shows the run and what it touched, so the record covers what the leaver made as well as what they held. The feature behind it is Offboarding you can prove, not just tick.

Die Workflow-Ansicht in Iden mit neun Workflows, gruppiert als Onboarding, Wechsel und Offboarding, jeweils mit den betroffenen Applikationen und der Angabe, ob der Workflow automatisch läuft.

Neun Workflows in drei Gruppen. Entscheidend ist die Spalte mit den Applikationen: Das Basis-Onboarding betrifft 32, ein Standortwechsel nur 3.

How is it prevented rather than cleaned up?

By making creation the moment ownership is recorded, which is the only point at which anyone knows what the thing is for.

Give every non-human identity an owner at birth

A token, grant, service account or agent created through a path that records who owns it and what it is for can be found on the day its owner leaves. One created in a developer settings page cannot.

Prefer short-lived credentials

An identity that mints its own credential on demand has no secret to inherit. This is the same reason infrastructure moved to workload identity, and it applies to a company's own automations.

Ask what a credential can do before an agent holds it

A widely read incident where an agent destroyed a production database drew this response, and it is the right question for every credential a person hands to something that acts on its own:

Hacker News comment by malwarebytess

Why don't you know what your credentials have permissions to do? Why are you storing credentials in files? Why don't you have network level isolation between environments?

malwarebytess·Hacker News

Review the non-human population on its own cadence

People are reviewed because a framework says so. Non-human identities need the same treatment by a different route: to their owner, with what the identity reached recently beside it. The useful question is not whether the access is plausible but whether it is still being used.

Does any framework require this?

Not by name, and that is changing.

What the criteria already cover

SOC 2 CC6.2 and ISO 27001 A.5.18 require access to be removed when it is no longer required, and neither distinguishes between a person's account and the token that person issued. PCI DSS is more direct, requiring credentials used by applications and systems to be changed when somebody with knowledge of them leaves. That is the rotation argument written into a standard rather than debated on a forum. The OWASP Non-Human Identities Top 10 then ranks improper offboarding first, and that is the clearest published statement that this is the failure mode to expect.

What auditors are actually sampling

Sampling has moved faster than the wording of the frameworks. Service accounts now turn up in samples routinely, usually with a request for the owner and the date of the last review. An account with neither is a finding whatever the control happens to be called. Agents are the next population to arrive in those samples. The ones that pass will be the ones created through a path that recorded an owner, because nothing else produces the answer on the day it is asked for.

What an auditor checks

FrameworkControlWhat the test looks for
SOC 2CC6.2, CC6.3Access is removed when no longer required. A sampled leaver should show the tokens, grants and automations they created being revoked or reassigned, not only their own accounts being disabled.
ISO 27001:2022A.5.16, A.5.18Identities are removed when no longer required and access rights are adjusted on termination, for identities assigned to systems as well as to people.
PCI DSS v4.08.2.4, 8.6.2Access for terminated users is revoked immediately, and credentials used by applications and systems are changed when someone with knowledge of them leaves.
OWASP NHI Top 10NHI1Improper offboarding is ranked first on the list: non-human identities that outlive their purpose and their owner.

Asked in the field

Because the checklist is a list of accounts and these are not accounts. A leaver's directory account is obvious and their personal access token, their OAuth grants and the automation running under their name are invisible unless something inventoried them when they were created.

If knowing the key gives control of the workflow, then yes, and the honest fix is to stop having keys that a person can know. Short-lived credentials issued on demand remove the question, because there is nothing durable for a leaver to have memorised or saved.Asked on Hacker News

It gets a new owner, on the day, with its scope re-approved by that owner. Reassignment is the normal outcome for anything the business still depends on; revocation is for the things nobody will claim, which is usually more of them than expected.

System by system, and it is easier if you look before they leave. Personal access tokens in the code host and the identity provider, OAuth grants in the workspace suite, automations in the integration platforms, service accounts with their name in the description, and any agent configured in a tool they administered.

It is the same control applied to identities with no HR record. Deprovisioning removes what a person held. Agent offboarding removes or reassigns what they created, and it has no automatic trigger, which is why it has to be part of the same run rather than a separate cleanup.