Who owns authorization after login? (Writeup on splitting ownership by layer, with a template table for deciding who owns what)

Who owns authorization after login? (Writeup on splitting ownership by layer, with a template table for deciding who owns what)

I've been in the iam space for a while, and in larger orgs i've seen the same gap quite often: who owns authorization (once someone is signed in).

Usually it's three teams and no owner. customer identity issues the tokens, the security identity team runs the corporate idp and sso, architecture has looked at it but has no mandate to change anything. Everyone agrees it's broken, and nobody is allowed to prioritize it, because it isn't theirs. Meanwhile a valid token from the idp means access to every platform endpoint, and the only isolation is a tenant id the gateway injects from a client cert.

When it does get assigned, it tends to land somewhere that only covers part of it. hand it to the identity team as an extension of the idp and it covers who can reach which app, but the rules about what someone can do to a specific account or payment stay in application code identity never sees. Leave it to each product team and you get a different permission check in every service, and nothing security can review in one place.

My colleague and i (i work at Cerbos) wrote up how to split it by layer instead of by team. it builds on the recent analyst work on iam operating models (for each capability, name who designs it, who runs it day to day and who supplies the data, and never leave one of those shared) and on the platform team model from team topologies, and applies both to authorization:

  • Identity teams own the inputs, the claims and directory attributes every access decision depends on
  • A platform team (or security architecture, if there isn't one) runs the decision point, policy repo, ci tests and decision logs
  • Product teams own the resource policies for what they build
  • Security / grc own the policy standard, review and recertification

there's also a template table (attached to this post) you can take into the meeting where the three teams argue about whose problem this is + a way to prove the split on one broken use case before rolling it out wider. For identity teams specifically, the ask in this model isn't to write application policy, it's to keep the data the decision uses accurate, which is the job you already have.

https://www.cerbos.dev/blog/who-owns-authorization-in-large-engineering-organization

Hopefully it will be helpful to some of you in this community. If you have any questions / comments - would be more than happy to hear them and do my best to help

u/Cerbosdev — 8 days ago
▲ 9 r/iam+1 crossposts

An agent hands work to a second agent, which calls a tool, which hits a database. Which of those hops still knows it is acting for a user? (Writeup on keeping the consent chain intact, and a test to run any delegation design or vendor claim through)

hey community, i've been in the iam space for a while and most of the delegation conversations i'm in lately are about agents handing work to other agents.

a user asks an agent for something, the agent hands part of it to a second agent, which calls a tool, which reaches a database. 4 parties, and the "acting for this user" part doesn't really survive past the first hop.

either the bearer token gets forwarded as-is (classic confused deputy), or the user identity never makes it into the payload (a2a and mcp don't carry it across hops for you), or delegation quietly turns into impersonation and the downstream service now holds everything the user holds.

my colleague and i (i work at Cerbos) wrote up what a chain needs at each hop to keep that intact:

  • workload identity verified before any user context is trusted
  • an explicit delegation claim instead of a forwarded bearer token (rfc 8693 act / may_act)
  • a policy decision at every hop rather than only at the edge
  • and the full chain logged at each transfer

there is also a 7-point test you can run any delegation design through, and a map of where the standards stand (token exchange stable since 2020, transaction tokens still in draft at the ietf, authzen final since january).

https://www.cerbos.dev/blog/multi-hop-delegation-ai-agents

hopefully it will be helpful to some of you in this community.

if you have any questions / comments - would be more than happy to hear them and do my best to help.

u/Cerbosdev — 29 days ago

Vetting third-party MCP servers like the supply chain dependency they are. sharing our checklist

hey everyone. most mcp threads are about what these servers can do. the security side is the opposite question, every server you connect is a third-party dependency with a path to production, added with near-zero friction, usually with no review and no owner. that's a supply chain surface, and it's growing fast. my colleagues and i wrote it up longer as a blog, but everything useful is in this post, sharing in case it's handy for the community.

first, why these are actually risky. you don't even have to call a tool to get burned. Trail of Bits showed a malicious server can hide instructions in its tool descriptions, and those reach the model as soon as your client loads the tool list, so connecting it is the exposure. then there's the over-scoped credential pattern. Invariant Labs showed a poisoned github issue coercing an agent into leaking private-repo data over the same token, and Simon Willison wrote up a Supabase case where a service role bypassed row-level security while reading attacker-controlled content. and valid auth is not authorization, which is how Asana's mcp-connected ai feature exposed data across tenants. the credential was valid but nobody checked whether that user should see that specific record. OWASP has a Top 10 for agentic apps now if you want the taxonomy behind all this.

here's what to check, roughly in order:

  1. inventory and ownership. can you produce a current list of every mcp server connected to your systems, each with a named human owner. ideally a server has to be registered before it's allowed to make any call, so unknown ones get blocked rather than discovered later. discovery is the prerequisite for everything else.

  2. identity and least privilege. each server and agent gets its own identity, not a shared secret. scope its creds to the minimum it needs, keep them short-lived, and never hand it a broad role that bypasses your data layer's own controls.

  3. tool surface. know exactly which tools a server exposes, and actually read the tool descriptions, since that's where injected instructions hide. show each agent only the tools it needs, not the full catalog. a tool an agent can't see is one it can't be talked into using.

  4. authorization enforcement. put an authz decision outside the server, checked before a tool runs, that looks at the agent, the user it's acting for, the tool, and the arguments. fail closed, so no explicit allow means deny. this is the one control that holds even when the server is third-party and you can't see its code.

  5. downstream reach. know what the server can actually touch once a call succeeds, and make sure it respects your underlying data controls instead of bypassing them. for rag and retrieval paths, filter by the user's real permissions, not the agent's.

  6. audit evidence. you should be able to pull a record of every action a given server or agent took, with the policy that allowed or denied each call. if an incident review asks what a third-party server's agent did last tuesday, that should be a query, not an archaeology project.

  7. lifecycle and revocation. you should be able to narrow or cut a server's access without redeploying anything, and access should expire or get reviewed rather than living forever. graduated beats binary, so you can scope it down the moment it worries you while legit work keeps running.

what saves most grief : vetting and enforcement are two different jobs. vetting tells you what you connected. enforcement, that authz check outside the server that fails closed, is what keeps it bounded no matter how much you trust the code. the strongest controls are the ones that don't assume the server is trustworthy, because the servers you control least are the ones most likely to bite you.

full disclosure, i work at Cerbos and we do authorization, so items 4, 6 and 7 are squarely the kind of thing we build, if you need it. but 1 through 3 are yours to own regardless of tooling, and a checklist doesn't enforce anything by itself. none of this replaces reviewing servers yourself before they hit prod :)

reddit.com
u/Cerbosdev — 2 months ago

15-question self-assessment my colleagues and I made to find where your authorization program actually stands (run it in an hour with your team, no tools needed).

hey all. I work at Cerbos (we do authorization), so we spend a lot of time with security leaders, at identity events like Gartner IAM, Identiverse and EIC, and in the breach and enforcement data. Our CPO Alex Olivier, who co-chairs the OpenID AuthZEN authorization standard, pulled all our insights into a maturity model for authoirzation. 

the piece I think is most useful to actually run yourself is the self-assessment, so I'm sharing the whole thing here.

You answer 15 questions about how your authorization program actually runs in production, not how the documentation says it runs. Count your confident yeses, soft yeses don't count, and that number maps to a stage. The honest version usually puts most programs a stage below where their compliance docs would. That gap is actually the useful part!

Takes about an hour with your team, ideally with someone from engineering in the room since they know where the bodies are buried. here are all 15, grouped into 5 categories.

A. Coverage and ownership
Can one person, within an hour, produce a complete list of every service in production that enforces authorization, and describe how each one does it?
Is there a single team accountable for the authorization layer across the company, with a named leader who can be held to outcomes?
Does your CISO get a regular report on authorization posture, the same way they get one on vulnerability posture?

B. Policy and evidence
Are authorization policies stored in a version-controlled repo with code review, test coverage, and an audit history?
When a policy changes, is there a decision log showing what was different about the decisions made before and after the change?
Can you produce, on demand, a report showing every access decision made by a specific identity over the last 90 days?

C. Runtime behavior
Are authorization decisions re-evaluated during long-running sessions, or only at login?
Do decisions use context beyond role, like resource sensitivity, time of day, device state, or location?
If a user's risk signal changes mid-session, does authorization respond without a full logout or session reset?

D. Non-human identities
Do service accounts, workloads, and AI agents go through the same policy model as human users?
Can you list every AI agent or autonomous workload in production today, what it's allowed to do, and who owns it?
When a non-human identity's scope changes, is there a review step, and is it documented?

E. Response and governance
Can you revoke an identity's access to every system in under five minutes, and prove the revocation took effect?
Is authorization coverage one of the metrics your board sees each quarter?
Do post-event analytics feed back into policy on a defined cadence, rather than only after an incident?

scoring is just your count of confident yeses out of 15.
0 to 3, Stage 1, ad-hoc.
4 to 7, Stage 2, documented.
8 to 11, Stage 3, centralized.
12 to 15, Stage 4, governed.

For what it's worth, most serious B2B SaaS programs we see land at Stage 2 with a couple of Stage 3 answers, usually in policy and evidence or response and governance. If that's you, you're the median, not behind.

The full ebook (maturity model i was mentioning earlier) has these same questions plus what each stage means for your regulatory exposure and a 90-day plan to move up. let me know if you want it, happy to share in comments if there is interest.

Either way, curious where people land, and whether the number matched your gut or came out lower

reddit.com
u/Cerbosdev — 4 months ago

How are teams achieving provable sub-five-minute access revocation across every system in production, and continuous mid-session re-evaluation without forcing a re-login?

Quick disclosure first, I work at Cerbos (we do authorization). Our CPO Alex Olivier, who co-chairs the OpenID AuthZEN standard, built an authorization maturity model from what we see across security teams, identity events, and breach data. Part of it is a 15-question self-assessment, and running it with teams keeps surfacing the same specific question, which is what I actually want to ask here.

The assessment first, since my question won't actually make sense without it,. You answer each one honestly about how your program runs in production, not how the docs say it runs, count your confident yeses, and that maps to a maturity stage:

A. Coverage and ownership
Can one person, within an hour, produce a complete list of every service in production that enforces authorization, and describe how each one does it?
Is there a single team accountable for the authorization layer across the company, with a named leader who can be held to outcomes?
Does your CISO get a regular report on authorization posture, the same way they get one on vulnerability posture?

B. Policy and evidence
Are authorization policies stored in a version-controlled repo with code review, test coverage, and an audit history?
When a policy changes, is there a decision log showing what was different about the decisions made before and after the change?
Can you produce, on demand, a report showing every access decision made by a specific identity over the last 90 days?

C. Runtime behavior
Are authorization decisions re-evaluated during long-running sessions, or only at login?
Do decisions use context beyond role, like resource sensitivity, time of day, device state, or location?
If a user's risk signal changes mid-session, does authorization respond without a full logout or session reset?

D. Non-human identities
Do service accounts, workloads, and AI agents go through the same policy model as human users?
Can you list every AI agent or autonomous workload in production today, what it's allowed to do, and who owns it?
When a non-human identity's scope changes, is there a review step, and is it documented?

E. Response and governance
Can you revoke an identity's access to every system in under five minutes, and prove the revocation took effect?
Is authorization coverage one of the metrics your board sees each quarter?
Do post-event analytics feed back into policy on a defined cadence, rather than only after an incident?

Scoring is your count of confident yeses out of 15. 0 to 3 is ad-hoc, 4 to 7 documented, 8 to 11 centralized, 12 to 15 governed.

Now the actual question: the three that tend to be hardest to get a provable yes on are sub-five-minute revocation across every system, mid-session re-evaluation when a risk signal changes, and a live inventory of every AI agent in production. 

For anyone who has gotten a genuine, provable yes on those, how did you do it in practice? Specifically, what is enforcing the sub-five-minute revocation across heterogeneous systems (token TTLs, a central PDP, something else), and what are you using to re-evaluate authorization mid-session without a re-login?

Happy to drop the full write-up with the scoring bands and what each stage means for regulatory exposure in the comments if anyone wants it.

reddit.com
u/Cerbosdev — 4 months ago
▲ 5 r/iam

We wrote a guide on mapping e-commerce business rules to authorization policy

hey everyone, my team and i just published a walkthrough that might be useful to people here dealing with access control in e-commerce or marketplace platforms.

it takes three common scenarios and shows how each business rule turns into an actual policy. customer data access, where a support rep can only see records assigned to them and only edit when the case is high priority. vendor product management, where a vendor edits only their own listings and only if stock is available. and order lifecycle, where a customer can change an order only while it's pending and a support rep can't touch it until 24h after creation.

each one starts with the requirement in plain language and ends with the full policy you can run. the time-based hold is done with timestamp/timeSince in the condition, and ownership is a derived role matching the resource owner to the principal, if you want to see how that's structured.

https://www.cerbos.dev/blog/mapping-business-requirements-to-authorization-policy-for-ecommerce

u/Cerbosdev — 4 months ago
▲ 6 r/aisecurity+1 crossposts

When the AI agent goes off-script you can't just turn it off. (The policy has to narrow in real time. + How to achieve that)

cerbos.dev
u/Cerbosdev — 5 months ago