Speaker Notes

Identity & payments

Auth, credentials and payments, for people and agents.

1talk
10answers
0mainly about it
1new
DecJanFebMarAprMayJunJulAugSepOctNov

What your library answers 10

Why are static API keys a security risk for AI agents?

Using long-lived, broadly scoped API keys in configuration files creates massive security vulnerabilities as agent deployments scale. If thousands of agents run with broad access keys, a single compromise exposes all connected systems. We must transition away from these static secrets to dynamic access models.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 1:09 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

How does the OAuth authorization code flow work?

The authorization code flow mediates requests between a client application and a resource server via an authorization server. The authorization server authenticates the user, obtains consent, and issues an access token to the client. This token is then used to access protected resources while supporting short-lived, rotated refresh tokens.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 2:18 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

How did the first version of the Model Context Protocol handle security?

The initial version of MCP featured no authorization mechanisms at all, prioritizing rapid prototyping primarily for local servers. While it sparked ecosystem interest, it left remote and connected servers entirely unprotected. This required developers to look toward formal authorization protocol drafts.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 7:01 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

What was wrong with the early MCP authorization specification draft?

The late March draft erroneously forced MCP servers to implement all of OAuth 2, including token issuance and authentication. This collapsed the authorization server role directly into the resource server, violating core OAuth principles and causing widespread industry criticism.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 8:03 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

How should MCP servers be modeled in an OAuth architecture?

MCP servers should act strictly as OAuth resource servers rather than handling their own token issuance. The authorization server must remain a completely separate entity that handles authentication and issues tokens. This simplifies the MCP server's job to simply verifying incoming HTTP tokens.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 9:08 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

Why is dynamic client registration problematic for agent identities?

Dynamic client registration allows agents to request credentials at runtime without prior manual registration. However, because the registration request itself is uncredentialed, it leaves all agents effectively anonymous. This makes building trust and tracking identity across agent ecosystems extremely difficult.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 12:08 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

How can we use URLs and PKI for secure agent identity?

Instead of dynamic registration, we can use standard URLs as client identities in OAuth flows. By leveraging public key infrastructure (PKI) and key sets, agents can sign assertions or HTTP messages. Receiving servers then use corresponding public keys to cryptographically authenticate the agent.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 13:27 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

What is transactional authorization and why do agent workflows require it?

Traditional OAuth scopes are often too coarse-grained and long-lived for advanced AI agent operations. Transactional authorization allows agents to obtain permissions on a per-transaction basis, such as approving specific financial budgets or transaction amounts. Specifications like rich authorization requests provide a model for this dynamic requirement.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 15:15 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)

How do we secure downstream interactions and chain of custody for MCP servers?

When an MCP server calls another internal API or third-party service, basic OAuth connections are no longer sufficient. Developers should implement techniques like OAuth token exchange and identity assertion grants for cross-domain identity chaining. This preserves security visibility across complex multi-agent communication graphs.

Thumbnail: How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js) ▶ 16:24 How to Secure Agents using OAuth — Jared Hanson (Keycard, Passport.js)