modelcontextprotocol / modelcontextprotocol/php-sdk

[Client][Auth] SEP-2352: Key DCR registrations and tokens by AS issuer; reject cross-AS credential reuse

Abierto
#361 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

2026-07-28 auth Client enhancement improves spec compliance
Lenguaje dominante
PHP
Estrellas
1.6k
Forks
173
Merge medio
2 d 49 min
PR fusionados (30 d)
23

Descripción

Implements SEP-2352 for the MCP Spec 2026-07-28 release.

Tracked by umbrella #338.

Spec summary

Clarifies that clients must key DCR/pre-registered credentials by AS issuer, maintain separate registration state per AS, and error on AS mismatch. CIMD client_ids remain portable. Clients MUST NOT assume cross-AS credential validity.

PHP SDK changes

  • TokenStorage (#315) and DCR (#320) must be indexed by AS issuer URL, not just by MCP server URL.
  • Token cache key should be (resource_server, as_issuer) tuples.
  • PRM/AS metadata discovery (#317, #318) must drive the binding.
  • Client must error if a stored credential's bound issuer != the issuer currently advertised by the resource.
  • Server-side: minimal — server PRM metadata document in src/Server/Transport/Http/OAuth/ must continue to advertise its AS issuer unambiguously.

Related

  • Umbrella #338
  • Extends #315 (TokenStorage) and #320 (DCR) with per-issuer keying

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con TokenStorage (#315), DCR (#320) y el trabajo de descubrimiento de metadatos PRM/AS en #317 y #318. Revisa el documento de metadatos del servidor en src/Server/Transport/Http/OAuth/ y rastrea cómo el issuer de AS anunciado llega a las credenciales de cliente y al almacenamiento de tokens. Se considera terminado cuando las credenciales y las entradas de la caché de tokens tienen ámbito de issuer, se rechaza la reutilización entre distintos AS y los ID de cliente CIMD siguen siendo portables.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
php
Área
api, authentication
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.