Apply scope policy to OpenID4VP / auth-code flow token issuance
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 74/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- go
- 領域
- api, authentication
調査の方向性
auth/api/iam/openid4vp.go から始め、createAccessToken までの authorization-code パスを追跡します。FindCredentialProfile、および profile-only、dynamic、passthrough のケースを含めて、handleS2SAccessTokenRequest と grantedScopesForPolicy と比較します。追加のスコープが適切に拒否または評価され、発行されたトークンに付与されたスコープのみが含まれていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Go
- スター
- 29
- フォーク
- 24
- 平均マージ
- 2日 18時間
- マージ済み PR(30日)
- 45
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nuts-foundation/nuts-node のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
nuts-foundation/nuts-node#4450 ·
メンテナーはふだん 1 日以内に返信
-
bug discuss
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
nuts-foundation/nuts-node#4436 ·
メンテナーはふだん 1 日以内に返信
-
auth bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
nuts-foundation/nuts-node#4435 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
nuts-foundation/nuts-node#4321 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
nuts-foundation/nuts-node#4230 ·
メンテナーはふだん 1 日以内に返信
nuts-foundation/nuts-node の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
JakeChampion/lang#13132 ·
メンテナーはふだん 1 日以内に返信
-
[BUG] deploy.restart_policy without condition drops the restart policy対応中かも @akshat-lakhera が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
docker/compose#14383 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
Azure/azure-storage-fuse#2429 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
AvengeMedia/dank-greeter#39 · コメント 1 件 ·
-
bug: dataplane client ignores SERVER_BASEPATH, so create/delete topic miss the subpath対応中かも @bhataprameya が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
redpanda-data/console#2693 ·
メンテナーはふだん 2 日以内に返信