nuts-foundation / nuts-foundation/nuts-node

API authentication scoping

Open
#2,844 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
28
Forks
23
Avg merge
1d 10h
Merged PRs (30d)
76

Description

We currently support API authentication through JWTs. We already support multiple users (authorized_keys file), but no authorization or scoping of tokens. This means a XIS that should only be able to search VCs and request access tokens, can also create DIDs or issue VCs. Maybe we should add some basic form of scoping, to have more controllable authz.

The authorized_keys format makes this a bit hard however, since it is only about authentication, not authorization (e.g. setting a scope for an entry).

On the other hand, if we're going to implement user authentication we could consider OAuth2, and then the XIS/CRM system piggyback that authentication for internal APIs. But then, OAuth2 for pure server-to-server authentication is a gray area (implicit grant is discouraged).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing JWT authentication flow and the authorized_keys format, then compare the proposed scoping approach with the OAuth2 alternative described in the issue. Define the authorization boundaries for actions such as searching VCs, requesting access tokens, creating DIDs, and issuing VCs before implementation; done means a decided, testable authentication and authorization design.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, authentication, authorization, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.