OAuth2 Discovery method fails because FastMCP with GoogleProvider (OAuth) returns issuerUrl with trailing slash
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- python
- Domaine
- authentication, security
Piste de recherche
Commencez dans src/google/adk/auth/oauth2_discovery.py, au niveau de OAuth2DiscoveryManager.discover_auth_server_metadata, référencé dans l’issue, et examinez comment l’issuer renvoyé est comparé à l’URL fournie. Reproduisez la réponse de discovery avec une barre oblique finale et vérifiez que les métadonnées correspondantes sont renvoyées ; c’est terminé lorsque les URL d’issuer de type FastMCP n’entraînent plus l’échec de la discovery.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The OAuth2DiscoveryManager.discover_auth_server_metadata function retrieves a remote MCP Server's discovery document, to initialize the tool's AuthScheme object.
The function compares the returned issuer URL to the provided issuer URL to defend against MIX-UP attacks (as documented):
if metadata.issuer == issuer_url.rstrip("/"):
However, if the returned issuer has a trailing slash ('/'), as is the case when using FastMCP and the GoogleProvider, the function fails to compare the issuer values and no metadata is returned.
The correct code should be:
if metadata.issuer.rstrip("/") == issuer_url.rstrip("/"):
This is an example of what FastMCP is returning when using SSE transport with a GoogleProvider:
{
"issuer": "http://localhost:8080/",
"authorization_endpoint": "http://localhost:8080/authorize",
"token_endpoint": "http://localhost:8080/token",
"registration_endpoint": "http://localhost:8080/register",
"scopes_supported": [
"openid",
"https://www.googleapis.com/auth/userinfo.email"
],
"response_types_supported": [
"code"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"client_secret_basic",
"private_key_jwt",
"none"
],
"code_challenge_methods_supported": [
"S256"
],
"client_id_metadata_document_supported": true
}
- Langage dominant
- Python
- Étoiles
- 21.6k
- Forks
- 4k
- Merge moyen
- 7 h 10 min
- PR mergées (30 j)
- 7
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de google/adk-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
google/adk-python#7266 · 1 commentaire ·
-
mcp
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
google/adk-python#7217 · 3 commentaires · 1 personne assignée ·
-
tools
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
google/adk-python#7206 · 1 commentaire · 1 personne assignée ·
-
request clarification tools
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
google/adk-python#7205 · 2 commentaires · 1 personne assignée ·
-
mcp request clarification
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
google/adk-python#7196 · 2 commentaires · 1 personne assignée ·
Toutes les issues de google/adk-python
Issues similaires
-
agent-ready documentation needs-triage
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
-
documentation
Difficulté 1/5 Moins d'une heure Accessibilité débutants 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
Add https://search.jeremyh.xyz/ Ouverteinstance instance add
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
searxng/searx-instances#939 · 1 commentaire ·
-
area-deployment area-integrations triage:bot-seen
Difficulté 2/5 Une demi-journée Accessibilité débutants 86/100