You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The SDK provides Cross-Application Access support for the [Identity Assertion Authorization Grant flow](https://github.com/modelcontextprotocol/ext-auth/blob/main/specification/draft/enterprise-managed-authorization.mdx),
37
-
enabling enterprise SSO scenarios where users authenticate once via their enterprise Identity Provider and
38
-
access MCP servers without per-server authorization prompts.
39
-
40
-
The flow consists of two token operations:
41
-
1.**RFC 8693 Token Exchange** at the IdP: ID Token → JWT Authorization Grant (JAG)
42
-
2.**RFC 7523 JWT Bearer Grant** at the MCP Server: JAG → Access Token
## Cross-Application Access (Identity Assertion Authorization Grant flow)
35
+
36
+
The SDK provides support for the [Identity Assertion Authorization Grant flow](https://github.com/modelcontextprotocol/ext-auth/blob/main/specification/draft/enterprise-managed-authorization.mdx)
37
+
via `CrossApplicationAccessProvider`. See the [Cross-Application Access](docs/concepts/transports/transports.md#cross-application-access) section in the transport docs for full usage details.
Like [stdio](#stdio-transport), the in-memory transport is inherently single-session — there is no `Mcp-Session-Id` header, and server-to-client requests (sampling, elicitation, roots) work naturally over the bidirectional pipe. This makes it ideal for testing servers that depend on these features. See [Sessions](xref:stateless) for how session behavior varies across transports.
381
+
382
+
## Cross-Application Access
383
+
384
+
The SDK provides built-in support for the [Identity Assertion Authorization Grant (IDAG) flow](https://github.com/modelcontextprotocol/ext-auth/blob/main/specification/draft/enterprise-managed-authorization.mdx) via `CrossApplicationAccessProvider`. This enables non-interactive enterprise SSO scenarios where users authenticate once via their enterprise Identity Provider (IdP) and access MCP servers without per-server authorization prompts.
385
+
386
+
The flow consists of two steps:
387
+
1.**RFC 8693 Token Exchange** at the enterprise IdP: OIDC ID token → JWT Authorization Grant (JAG)
388
+
2.**RFC 7523 JWT Bearer Grant** at the MCP authorization server: JAG → access token
// Use tokens.AccessToken to authenticate against the MCP server.
416
+
// Call provider.InvalidateCache() to force a fresh token exchange on the next call.
417
+
```
418
+
419
+
The provider caches the resulting access token and reuses it until it expires. To force re-authentication (e.g. after a 401 response), call `provider.InvalidateCache()` before retrying.
0 commit comments