modelcontextprotocol / modelcontextprotocol/php-sdk
[Client] Implement Protected Resource Metadata discovery (RFC 9728)
Nessuno ha ancora preso questa issue.
- Lingua principale
- PHP
- Stelle
- 1.6k
- Fork
- 173
- Merge medio
- 2g 49m
- PR unite (30g)
- 23
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con #316 per comprendere l’hook 401, quindi esamina Mcp\Client\Auth\ProtectedResourceMetadataDiscoverer e la directory delle fixture di conformità. Implementa lo scope per il rilevamento dei metadati e aggiungi la copertura dei test unitari e di integrazione; il lavoro è completo quando i quattro scenari baseline elencati passano e la validazione di resource-mismatch continua a passare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- php
- Ambito
- api, authentication
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100