modelcontextprotocol / modelcontextprotocol/php-sdk
[Client] Implement Protected Resource Metadata discovery (RFC 9728)
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
Per the MCP authorization spec (2025-06-18+), an unauthenticated client receiving a 401 MUST parse WWW-Authenticate: Bearer resource_metadata="<url>", fetch the indicated /.well-known/oauth-protected-resource document, and use it to locate the authorization server.
Scope
Mcp\Client\Auth\ProtectedResourceMetadataDiscoverer:- Parse
WWW-Authenticateforresource_metadata. - GET the URL, parse JSON.
- Resolve
authorization_servers[],bearer_methods_supported,scopes_supported,resource(audience).
- Parse
- Validate
resourcematches the MCP server origin (defense-in-depth forauth/resource-mismatch, already passing).
Conformance scenarios unblocked
auth/metadata-default, auth/metadata-var1, auth/metadata-var2, auth/metadata-var3, auth/basic-cimd.
Dependencies
Blocked by: #316 (Bearer injection plumbs the 401 hook).
Acceptance
- Unit + integration tests against fixtures from the conformance fixtures dir.
- Conformance: 4 baseline scenarios above pass.
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 #316, um den 401-Hook zu verstehen, und untersuche anschließend Mcp\Client\Auth\ProtectedResourceMetadataDiscoverer sowie das Verzeichnis mit den Conformance-Fixtures. Implementiere den Scope für die Metadaten-Ermittlung und füge Unit- und Integrationstestabdeckung hinzu; abgeschlossen ist die Aufgabe, wenn die vier aufgeführten Baseline-Szenarien bestehen und die resource-mismatch-Validierung weiterhin erfolgreich ist.
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
- 48/100