How are you handling agent authentication in multi-agent systems? #7784
Replies: 5 comments 3 replies
|
Ed25519 + DPoP is a solid foundation — we need more of this in the ecosystem. One thing I'd flag from our testing: cryptographic identity solves authentication, but it doesn't solve authorization drift in multi-agent pipelines. In our Autogen security harness, we found cases where an agent with a valid keypair was tricked — via prompt injection in task metadata — into delegating scoped permissions to a spoofed downstream agent. The signatures checked out, the DPoP binding was correct, but the authorization decision was manipulated at the application layer. What we've learned: the delegation chain needs two independent bindings:
If the capability scope lives only in human-readable task descriptions, the chain is vulnerable to semantic attacks. Encoding it in a machine-verifiable format — we're experimenting with this as part of our Skill Security Protocol — closes that gap. Would love to see how proveyouragent handles the authorization-boundary question. Have you looked at capability-scoped tokens rather than identity-scoped ones? |
|
Really interesting approach. Identity and delegation are definitely becoming bigger problems as multi-agent systems get more autonomous. One thing I've also found useful is thinking beyond who made the request to what the agent does next. Even with good auth, agents can still get stuck in retry loops or repeatedly make bad calls. I've been exploring https://github.com/FailproofAI/failproofai for that side of the problem since it focuses on runtime reliability and execution guardrails. Feels like the two ideas complement each other nicely. |
|
The hardcoded-service-account pattern is unfortunately the default in most agent frameworks right now, and it breaks down as soon as you have more than two agents or any nested delegation. What we have found testing identity and auth vectors across MCP, A2A, and generic multi-agent setups: 1. Agents need their own identities, not shared service accounts. 2. Tokens must be short-lived, scoped, and bound to the delegation chain. 3. Use workload identity (SPIFFE/SPIRE) instead of static secrets. Practical starting point for AutoGen:
We have concrete test vectors for unauthenticated access prevention, expired-credential rejection, least-privilege enforcement, and scope escalation in an open multi-agent security harness. Happy to share if useful. |
|
The distinction between authentication and authorization drift is really important. A sub-agent can have a perfectly valid identity and still receive a delegation that exceeds the authority intended by the parent agent. I'd therefore want the delegation itself to become a policy-controlled object rather than treating identity as the authorization boundary. Something like: agent identity We're working on a similar model with Aegisora, particularly around making the final action decision independent from the agent's own reasoning. That seems increasingly important as multi-agent systems move from “agents talking to each other” toward agents actually granting capabilities to other agents. |
|
"Ed25519 + DPoP gives you a strong answer to “which workload/key made this request?”, but I’d keep the authorization object separate from that identity proof. For delegation, each hop can issue a task-scoped grant whose authority is no broader than the parent’s delegable authority. The final tool verifies the signature chain plus the current call: audience, action, resource, constraints, TTL, delegation depth and any revocation state. That gives you two independent properties:
I would also avoid passing the end user’s bearer token through the agent chain. If possible, exchange it for workload/task-specific credentials at each boundary. The useful failure test is simple: compromising a specialist agent key should not let the attacker exercise the orchestrator’s full authority." |
Uh oh!
There was an error while loading. Please reload this page.
Been building multi-agent systems and kept running into the same problem, agents calling APIs with hardcoded service
account tokens or borrowed user credentials. No standard way to know which agent made a request, who's accountable for it,
or whether a stolen token is being replayed.
Built a library to address this: proveyouragent. Each agent gets an Ed25519 keypair, every request is signed with DPoP so stolen tokens are useless without the private key, and delegation chains let orchestrators pass scoped permissions to sub-agents with cryptographic linking.
pip install proveyouragent
https://github.com/lujainkhalil/proveyouragent
Curious whether this maps to problems people are hitting when building with AutoGen, especially in multi-agent pipelines where an orchestrator is delegating to specialist agents. How are you handling auth and accountability today?
All reactions