This repository has been archived by the owner on Aug 30, 2023. It is now read-only.
feat: add ability to use openid-connect flow for other providers #29
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.
Use-case for this PR
We're running a private GitLab server, which uses error reporting with sentry.
Currently it is setup in a way that authorized users need to login to sentry with username and password.
This is a hassle.
Instead of using another OAuth2 plugin for sentry, which is specialized to work only with GitLab, I've decided to use OpenID-Connect, which is a layer on top of OAuth2. This enables the Sentry Administrator to chose an authentication provider without using a new plugin for each provider.
More about the OpenID-Connect spec can be found here: http://openid.net/connect/
The change is fully backwards compatibly with the current Google specific implementation.
OpenID-Connect should also not be confused with OpenID, because the user is not free to chose it's provider with OpenID-Connect. The sentry administrator defines the provider that is used, before even starting sentry itself in the sentry.conf.py. No other provider can be chosen by the user of sentry.
This means that the
administrator
alone is responsible, as to which provider is considered trustworthy. Changing these variables replaces the installation of another plugin for another provider. It's just a way to standarize OAuth2. Has no security implications or anything.This explanation is related to the discussion in getsentry/sentry#5650