Skip to content

[OID4VCI] Explicit client association for pre-authorized offers#50897

Open
tdiesler wants to merge 3 commits into
keycloak:mainfrom
tdiesler:ghi50578-preauth-client
Open

[OID4VCI] Explicit client association for pre-authorized offers#50897
tdiesler wants to merge 3 commits into
keycloak:mainfrom
tdiesler:ghi50578-preauth-client

Conversation

@tdiesler

@tdiesler tdiesler commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

closes #50587

Decouples pre-authorized credential offers from the creating client by supporting explicit or uniquely discovered target clients.

  • Adds target_client request support and client discovery.
  • Updates pre-authorized issuance flows and tests.
  • Adds offer-state inspection utilities.

depends on

  1. [OID4VCI] Issuance with Authorization Code Flow assumes same client_id for offer creation and redemption #50576

Copilot AI review requested due to automatic review settings July 14, 2026 18:41
@tdiesler
tdiesler requested a review from a team as a code owner July 14, 2026 18:41
@tdiesler
tdiesler marked this pull request as draft July 14, 2026 18:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Decouples pre-authorized credential offers from the creating client by supporting explicit or uniquely discovered target clients.

Changes:

  • Adds target_client request support and client discovery.
  • Updates pre-authorized issuance flows and tests.
  • Adds offer-state inspection utilities.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
CredentialOfferUriRequest.java Adds the target-client query parameter.
OID4VCredentialOfferPreAuthTest.java Tests target-client validation and discovery.
OID4VCPublicClientPreAuthTest.java Specifies the public target client.
OID4VCJWTIssuerEndpointPreAuthTest.java Supplies target clients in endpoint tests.
OID4VCAuthorizationDetailsFlowPreAuthTestBase.java Associates authorization-details offers with a client.
JwtPreAuthCodeHandlerTest.java Associates test offers with their client.
OID4VCTestContext.java Exposes the context client ID.
OID4VCredentialOfferAuthCodeTest.java Verifies auth-code offers remain unbound.
OID4VCCredentialOfferCorsTest.java Updates target parameter names and requests.
OID4VCSdJwtIssuingEndpointTest.java Supplies the SD-JWT target client.
CredentialOfferStateUtils.java Adds server-side offer-state inspection.
VerifiableCredentialOfferAction.java Adapts provider argument ordering.
OID4VCIssuerEndpoint.java Accepts and forwards explicit target clients.
DefaultCredentialOfferProvider.java Implements target-client discovery and validation.
CredentialOfferProvider.java Updates provider parameter ordering.

@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from bb30691 to b99783b Compare July 14, 2026 19:04
…d for offer creation and redemption

closes keycloak#48188

Signed-off-by: Thomas Diesler <tdiesler@proton.me>

* Stop binding authorization-code credential offers to the creating client (targetClientId = null for auth-code offers).
* Keep pre-authorized code offers bound to the authenticated client.
* Update Javadoc section headings to explicitly name the corresponding grant types.
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from b99783b to baa1a5a Compare July 15, 2026 06:55
@tdiesler
tdiesler marked this pull request as ready for review July 15, 2026 06:56
Copilot AI review requested due to automatic review settings July 15, 2026 06:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated 7 comments.

@tdiesler
tdiesler marked this pull request as draft July 15, 2026 16:11
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch 4 times, most recently from 179ef83 to 54a9776 Compare July 16, 2026 10:03
@tdiesler
tdiesler marked this pull request as ready for review July 16, 2026 12:18
Copilot AI review requested due to automatic review settings July 16, 2026 12:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 3 comments.

Copilot AI review requested due to automatic review settings July 16, 2026 14:15
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from 54a9776 to c9c73c8 Compare July 16, 2026 14:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 3 comments.

Copilot AI review requested due to automatic review settings July 17, 2026 07:50
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from c9c73c8 to c2e4d48 Compare July 17, 2026 07:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from c2e4d48 to acf7e4a Compare July 17, 2026 08:57
Copilot AI review requested due to automatic review settings July 17, 2026 15:46
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from acf7e4a to 7914057 Compare July 17, 2026 15:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated 1 comment.

closes keycloak#50587

Signed-off-by: Thomas Diesler <tdiesler@proton.me>

Decouples pre-authorized credential offers from the creating client by supporting explicit or uniquely discovered target clients.

* Adds target_client request support and client discovery.
* Updates pre-authorized issuance flows and tests.
* Adds offer-state inspection utilities.
Copilot AI review requested due to automatic review settings July 17, 2026 19:37
@tdiesler
tdiesler force-pushed the ghi50578-preauth-client branch from 7914057 to 9cea73c Compare July 17, 2026 19:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.

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.

[OID4VCI] Explicit client association for pre-authorized offers

2 participants