spring-projects / spring-projects/spring-security

Support JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens

Open
#18,267 9 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

in: oauth2 type: enhancement
Dominant language
Java
Stars
9.6k
Forks
6.3k
Avg merge
2d 11h
Merged PRs (30d)
52

Description

Expected Behavior
There is a new IETF specification for JSON Web Token (JWT) Profile for OAuth 2.0 Access Tokens which has already been approved by the IESG and will be published as final RFC very soon.
This specification aims to provide a standardized and interoperable profile as an alternative to the proprietary JWT access token layouts going forward.
This adds the following details for compliant JWT access tokens:

  • JWT access tokens MUST include "at+jwt" in the "typ" header parameter to explicitly declare that the JWT represents an access token
  • JWT access tokens require at least the following claims: iss, exp, aud, sub, client_id, iat, jti
  • Claims for Authorization are standardized using "roles", "groups", "entitlements" as defined in RFC7643

At least, it should be configurable to issue JWT access tokens supporting this new standardization effort.

Current Behavior
Currently, JWT access tokens issued are not following/supporting this new specification

Context
Note: I also added an issue to the spring security project (https://github.com/spring-projects/spring-security/issues/10272) for documenting the required configuration to validate such tokens as part of the reference docs.

Contributor guide

Open the contributing guide

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

No files, tests, or entry points are named in the issue. Begin by tracing Spring Security's JWT access-token issuance and configuration against the linked IETF profile; done means a configurable implementation emits the required typ and claims, including standardized authorization claims.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
authentication, authorization, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.