modelcontextprotocol / modelcontextprotocol/php-sdk
[Client] Implement Cross-App Access (token exchange, RFC 8693)
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- PHP
- Sterne
- 1.6k
- Forks
- 173
- Ø Merge
- 2 T. 49 Min.
- Gemergte PRs (30 T.)
- 23
Beschreibung
Context
Cross-App Access (XAA) lets an MCP client present an existing IdP id_token to the MCP server's authorization server to obtain a scoped access token for the MCP resource. Uses grant_type=urn:ietf:params:oauth:grant-type:token-exchange (RFC 8693).
Scope
Mcp\Client\Auth\Grant\TokenExchangeGrant:- Body params:
grant_type=urn:ietf:params:oauth:grant-type:token-exchange,subject_token=<idp_id_token>,subject_token_type=urn:ietf:params:oauth:token-type:id_token,audience=<mcp_resource>, optionalscope. - Authenticate to token endpoint per #321.
- Body params:
- Builder API to supply IdP id_token + IdP issuer/token_endpoint discovery (needed by the conformance harness; see #325).
Conformance scenarios unblocked
auth/cross-app-access-complete-flow.
Dependencies
Blocked by: #321, #318.
Acceptance
- Unit tests for token exchange request shape.
- Conformance: scenario passes.
cc @soyuka
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit Mcp\Client\Auth\Grant\TokenExchangeGrant und prüfe die Abhängigkeiten #321 und #318 für die Authentifizierung am Token-Endpunkt und die Anforderungen an den Builder. Verwende die angegebenen Request-Parameter als Zielstruktur, füge Unit-Tests für diese Struktur hinzu und führe das Conformance-Szenario auth/cross-app-access-complete-flow aus; abgeschlossen ist die Aufgabe, wenn das Szenario erfolgreich durchläuft.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- api, authentication
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100