Skip to content

OAuth2: support opaque tokens #13978

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 34 commits into
base: main
Choose a base branch
from
Draft

OAuth2: support opaque tokens #13978

wants to merge 34 commits into from

Conversation

MarcialRosales
Copy link
Contributor

@MarcialRosales MarcialRosales commented May 29, 2025

Proposed Changes

Implements #8662

RabbitMQ will never cache the resolved JWT access token. it will only be cached for the duration of the session/connection. Once RabbitMQ resolves the JWT access token (i..e exchanged the opaque one for a JWT one), it will work as usual, i.e. it will use the expiry date in the resolved JWT access token.

Tasks:

  • Add introspection endpoint settings to schema
  • Support opaque tokens via messaging protocols like amqp
  • Add Selenium messaging test to assert opaque tokens are supported over amqp
  • Support opaque tokens in management ui. It requires introspecting the token before passing it to the oauth backend. Otherwise, every single authorization request requires a token introspection
  • Support opaque tokens when using idp-initiated login. Here opaque tokens arrive on the Authorization header and they need to be introspected too.
  • Add Selenium tests for management ui with opaque tokens for sp-initiated login
  • Add Selenium tests for management ui with opaque tokens for idp-initiated login
  • Update documentation

Types of Changes

What types of changes does your code introduce to this project?
Put an x in the boxes that apply

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)
  • Build system and/or CI

@MarcialRosales MarcialRosales self-assigned this May 29, 2025
@MarcialRosales MarcialRosales force-pushed the feature-8662 branch 3 times, most recently from fe04c36 to 7c59322 Compare June 20, 2025 09:37
@MarcialRosales MarcialRosales force-pushed the feature-8662 branch 5 times, most recently from 1e50258 to 9605c96 Compare July 15, 2025 05:07
And add client used to introspect tokens
so that it is possible to test with
clients configured with opaque tokens
and others with jwt tokens
Refactoring needed so that the resolved
jwt token is kept in the management ui
so that the backend does not need to
reoolve it permanentely
Rather than configuring the type of token, the
server is able to detect if the token is jwt or not
so that management can cache the jwt token
resulting from introspecting an opaque one
related to accepted content type
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant