Apply scope policy to OpenID4VP / auth-code flow token issuance
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- go
- Área
- api, authentication
Línea de trabajo
Comienza en auth/api/iam/openid4vp.go y sigue la ruta del código de autorización a través de createAccessToken. Compárala con handleS2SAccessTokenRequest y grantedScopesForPolicy, incluidos FindCredentialProfile y los casos profile-only, dynamic y passthrough. Se considera terminado cuando los scopes adicionales se rechazan o evalúan según corresponda y los tokens emitidos contienen únicamente los scopes concedidos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Context
#4179 added server-side scope policy enforcement (profile-only / passthrough / dynamic) to the S2S vp_token flow in handleS2SAccessTokenRequest. The OpenID4VP / authorization-code flow takes a separate path to createAccessToken that does not invoke grantedScopesForPolicy — so scope policy is currently not enforced for that flow.
Problem
In auth/api/iam/openid4vp.go the auth-code handler uses oauthSession.Scope (the raw requested scope) and passes it directly to createAccessToken. This means:
- profile-only: extra scopes are NOT rejected
- dynamic: the AuthZen PDP is NOT called; extra scopes pass through without evaluation
- passthrough: works by accident (raw scope is forwarded)
A client going through the auth-code flow can request arbitrary extra scopes and receive them in the issued access token — bypassing the policy that's enforced on the S2S path.
Expected behaviour
Same as the S2S flow:
- Look up the credential profile via
FindCredentialProfile - Reject profile-only + extras
- Call the AuthZen PDP for dynamic
- Issue token with only granted scopes
Related
- Parent PRD: #4144
- Introduced gap: #4179
- Lenguaje dominante
- Go
- Estrellas
- 29
- Forks
- 24
- Merge medio
- 2 d 18 h
- PR fusionados (30 d)
- 45
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nuts-foundation/nuts-node
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nuts-foundation/nuts-node#4450 ·
Los mantenedores suelen responder en 1 día
-
bug discuss
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
nuts-foundation/nuts-node#4436 ·
Los mantenedores suelen responder en 1 día
-
auth bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
nuts-foundation/nuts-node#4435 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nuts-foundation/nuts-node#4321 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
nuts-foundation/nuts-node#4230 ·
Los mantenedores suelen responder en 1 día
Todos los issues de nuts-foundation/nuts-node
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 61/100
Los mantenedores suelen responder en 1 día
-
stage-fail
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
siyuan-note/bazaar#2405 ·
Los mantenedores suelen responder en 1 día
-
bug priority: high workstream:cache
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
rossoctl/context-guru#707 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
prime-radiant-inc/evener#5028 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día