[Client] Implement Authorization Server Metadata discovery (RFC 8414)

Offen
#318 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
55/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
php
Bereich
api, authentication

Rechercherichtung

Beginnen Sie mit der Überprüfung von Mcp\Client\Auth\AuthorizationServerMetadataDiscoverer und der bestehenden Mcp\Server\Transport\Http\OAuth\OidcDiscovery auf kompatible Metadatenstrukturen. Prüfen Sie die Conformance-Szenarien auth/metadata-* und auth/scope-from-scopes-supported und verifizieren Sie anschließend die RFC-8414-Discovery, den OIDC-Fallback, das Issuer-Caching und die angeforderte Unit-Test-Abdeckung.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

auth Client enhancement improves spec compliance

Context

Once the AS issuer is known (from PRM), the client must fetch its metadata at /.well-known/oauth-authorization-server (RFC 8414) to learn the authorization_endpoint, token_endpoint, registration_endpoint, scopes_supported, token_endpoint_auth_methods_supported, and grant_types_supported.

Scope

  • Mcp\Client\Auth\AuthorizationServerMetadataDiscoverer.
  • Cache resolved metadata per issuer (TTL via PSR-16 if TokenStorage is backed by it).
  • Fall back to OpenID Connect discovery (/.well-known/openid-configuration) when RFC 8414 endpoint 404s.

Conformance scenarios unblocked

auth/metadata-* (full set), auth/scope-from-scopes-supported.

Dependencies

Blocked by: #317 (PRM provides the issuer URL).

Acceptance

  • Unit tests covering RFC 8414 + OIDC fallback.
  • Reuses existing Mcp\Server\Transport\Http\OAuth\OidcDiscovery for shape parity if practical.

cc @soyuka

Vorherrschende Sprache
PHP
Sterne
1.6k
Forks
173
Ø Merge
2 T. 49 Min.
Gemergte PRs (30 T.)
23

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus modelcontextprotocol/php-sdk

Alle Issues in modelcontextprotocol/php-sdk

Ähnliche Issues

Weitere Issues zu PHP

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.