fix: oidc public client without need to provide secret#364
Open
13bscsaamjad wants to merge 1 commit intohashicorp:mainfrom
Open
fix: oidc public client without need to provide secret#36413bscsaamjad wants to merge 1 commit intohashicorp:mainfrom
13bscsaamjad wants to merge 1 commit intohashicorp:mainfrom
Conversation
20 tasks
Author
|
@fairclothjm @jaireddjawed @keeefer Can you please help me get this one merged? How do I get the permissions for the Jira Sync check? |
Author
|
@abbyck if you can help getting this one merged please? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Who the change affects or is for?
This change affects developers and organizations using OIDC authentication with Vault who need to support public client applications.
What is the change?
Fix OIDC authentication when PKCE without requiring a client secret. Users can now configure OIDC authentication by providing only
oidc_discovery_urlandoidc_client_id, withoidc_client_secretbeing optional.Why is the change needed?
Public client applications (as defined in OAuth 2.0 RFC) cannot securely store client secrets since they run on end-user devices. Modern OAuth providers support PKCE as a secure alternative to client secrets for these scenarios. This change enables Vault to work with public OIDC clients, enhancing its flexibility and usability in diverse application environments.
How does this change affect the user experience?
Users can now configure OIDC authentication without requiring a client secret:
Before:
vault write auth/jwt/config \ oidc_discovery_url="https://provider.com" \ oidc_client_id="abc" \ oidc_client_secret="secret" # RequiredAfter:
vault write auth/jwt/config \ oidc_discovery_url="https://provider.com" \ oidc_client_id="abc" # Secret is optionalDesign of Change
How was this change implemented?
Modified configuration validation in
path_config.goto makeoidc_client_secretoptional whenoidc_client_idis provided. Key changes:oidc_client_idwithoutoidc_client_secretauthType()to recognize OIDC flow withclient_idonlyThe existing OIDC provider library automatically uses PKCE when no client secret is provided, securing the token exchange without requiring a shared secret.
Related Issues/Pull Requests
Contributor Checklist
doc: update oidc docs with support for pkce web-unified-docs#1611
This change is fully backwards compatible. Existing configurations with client secrets continue to work unchanged. The change only relaxes validation to make client_secret optional.
PCI review checklist
I have documented a clear reason for, and description of, the change I am making.
If applicable, I've documented a plan to revert these changes if they require more than reverting the pull request.
If applicable, I've documented the impact of any changes to security controls.
Examples of changes to security controls include using new access control methods, adding or removing logging pipelines, etc.