Eve's channel auth decides who may open a session. It does not decide which outbound tool that session may call. The sample stops at the session 401. Tool authorization belongs on the API the tool calls.
Outbound tool sign-in, where Eve itself fetches a provider token, is a separate Eve concern. This guide does not configure it. If your tool calls an Authdog-protected API, that API is the gate.
Check the API the tool calls
Put require_auth (or a token_verifier, if the tool is an MCP server) on that API. Pass the same bearer the caller already presented, or a token minted for that call. A missing bearer is 401 from the API. The Eve session can stay open and the tool can return that error to the model.
| Check | Where it runs |
|---|---|
| JWT signature, issuer, expiry, audience | Eve channel, before the session starts |
| Subject, from the verified token | The API, via userinfo or the JWT sub |
| Allowed tools and scopes | Trust-store row for that subject, if you enforce it |
| The specific action | Authorization on your API |
The sample does not read allowed-tool globs. A session that Eve accepted is not permission to call every tool you might add later.
Revoke in Agents stops new tokens when the subject is the OIDC client id. A JWT Eve already accepted stays valid until exp unless your API also enforces the trust store. Eve's oidc() check is signature, issuer, expiry, and audience.
Acting for a person
If the bearer is an RFC 8693 token, authorize the user in sub and record the agent in act. Do not authorize the agent as if it were the user.
Related
| Read | To learn how to |
|---|---|
| Custom channel auth for Eve | Admit the session |
| Enriching instructions for Eve | Keep secrets out of defineAgent |
| Authorizing tool calls for MCP | Use the same idea when the tool is an MCP server |
| Agents | Revoke the identity and set allowed tools |