Add support for Google OAuth Scheme Override #7178
Open
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.
What type of PR is this?
Description
This pull request introduces a new configuration setting,
GOOGLE_OAUTH_SCHEME_OVERRIDE
, which allows overriding the URL scheme used in Google OAuth redirects. This change ensures that the correct scheme (https) is used in environments where SSL termination occurs at a load balancer or proxy, and the connection to Redash is over HTTPProblem Addressed
In deployments where Redash is behind a load balancer or reverse proxy that handles SSL termination (e.g., AWS Network Load Balancer), the application may generate URLs with the http scheme. This happens because Flask constructs URLs based on the incoming request, which is over HTTP from the proxy to the application server.
This behavior causes issues with Google OAuth authentication, as Google requires the redirect URIs to match exactly with the ones registered in the Google API Console. If the application generates a redirect URI with http, but Google expects https, the authentication flow fails.
Same changes were introduced for SAML in #3614
Link to PR which updates documentation: getredash/website#775
How is this tested?
Seems to work fine in my local development environment.
Related Tickets & Documents
Resolves #6074
Mobile & Desktop Screenshots/Recordings (if there are UI changes)