nuts-foundation / nuts-foundation/nuts-node
API authentication scoping
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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