Repository navigation
feat(openid-connect): map verified claims to upstream request headers - #14030
Open
shreemaan-abhishek wants to merge 1 commit into
Open
shreemaan-abhishek wants to merge 1 commit into
shreemaan-abhishek wants to merge 1 commit into
Conversation
Add upstream_headers, a list of {header, path} mappings. After
authentication each declared header carries the claim found at path, or
is cleared, so client-supplied values never reach the upstream. Bearer
mode reads the verified token payload or introspection response; the
session flow reads the ID token, then userinfo.
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.
Description
Upstream services that do not parse tokens need selected claims as plain request headers.
openid-connectcan only forward whole tokens (X-Access-Token,X-ID-Token,X-Userinfo). The common workaround is aserverless-pre-functionthat decodes the token a second time, depends on plugin priority, and has to clear spoofed headers itself.This PR adds
upstream_headers, a list of{header, path}mappings.pathis an array of keys, one per nesting level, so claim names containing://,/or.work as is.bearer_only/public_key/use_jwks/ introspection: the verified token payload or the introspection response.unauth_action: pass, multi-auth fallthrough). It holds the verified claim or nothing.scopebecomesread write)nullor empty values set no headerupstream_headersrun no extra code.Checklist