Support RFC 8693 token exchange for enterprise IdP flows (SEP-990) (#2988)
Co-authored-by: Max Isbey <224885523+maxisbey@users.noreply.github.com>
This commit is contained in:
parent
ecdf09d44f
commit
c0ecb70e24
1 changed files with 1830 additions and 14 deletions
|
|
@ -3689,6 +3689,64 @@ REQUIREMENTS: dict[str, Requirement] = {
|
|||
"elsewhere into the auth provider's state, so the absence cannot be observed end to end."
|
||||
),
|
||||
),
|
||||
"client-auth:identity-assertion": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"The identity-assertion provider (SEP-990) presents an enterprise IdP-issued ID-JAG to the MCP "
|
||||
"authorization server via the RFC 7523 jwt-bearer grant, with no authorize or registration step, "
|
||||
"and the issued bearer token authorizes subsequent requests."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
"client-auth:identity-assertion:assertion-callback": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"The identity-assertion provider sources the ID-JAG from its async assertion_provider callback, "
|
||||
"invoked with the authorization server's issuer as audience and the MCP server's resource "
|
||||
"identifier, and sends it as `assertion` on the RFC 7523 jwt-bearer request."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
"client-auth:identity-assertion:issuer-pinning": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"The identity-assertion provider's authorization server is configuration: metadata is "
|
||||
"fetched only from the configured issuer's RFC 8414 well-known, the resource server is "
|
||||
"never consulted for AS selection, and the ID-JAG and client secret are not sent unless "
|
||||
"that metadata validates."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
"client-auth:identity-assertion:disabled-rejected": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"When the authorization server has the identity-assertion grant disabled, the token endpoint "
|
||||
"rejects it with unsupported_grant_type and the connection fails rather than issuing a token."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
"client-auth:identity-assertion:invalid-assertion": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"A jwt-bearer request whose ID-JAG the authorization server rejects surfaces as an OAuth error "
|
||||
"and the connection fails rather than proceeding with a bearer token."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
"client-auth:identity-assertion:metadata-advertised": Requirement(
|
||||
source="sdk",
|
||||
behavior=(
|
||||
"When the identity-assertion grant is enabled, the authorization-server metadata advertises the "
|
||||
"jwt-bearer grant type and the id-jag grant profile in authorization_grant_profiles_supported."
|
||||
),
|
||||
transports=("streamable-http",),
|
||||
note="OAuth is HTTP-only.",
|
||||
),
|
||||
# ═══════════════════════════════════════════════════════════════════════════
|
||||
# stdio transport
|
||||
# ═══════════════════════════════════════════════════════════════════════════
|
||||
|
|
|
|||
Loading…
Reference in a new issue