Skip to content
This repository has been archived by the owner on Aug 30, 2023. It is now read-only.

Configuring Google SSO redirects to a 404 #31

Open
SanderVerkuil opened this issue Dec 5, 2018 · 4 comments · May be fixed by #32
Open

Configuring Google SSO redirects to a 404 #31

SanderVerkuil opened this issue Dec 5, 2018 · 4 comments · May be fixed by #32

Comments

@SanderVerkuil
Copy link

Having installed this package and trying to configure oauth, it appears that there is a wrong redirect somewhere.

Going to https://<sentry-server>/settings/<organization>/auth/ there is a Google provider.
When clicking on configure, I am redirected to the google sign-in screen.
After clicking on my account, the browser is redirected to https://<sentry-server>/organizations/<organization>/auth/, which is a 404.

I tried to look into the source of this package, but I couldn't seem to find where this issue is.

@dcramer
Copy link
Member

dcramer commented Dec 5, 2018

I'm pretty sure you configure this within the Google app itself, dont you?

@SanderVerkuil
Copy link
Author

SanderVerkuil commented Dec 5, 2018

In the Google Cloud Platform the authorised javascript source is https://<sentry-server>/, and the authorized redirect url is https://<sentry-server>/auth/sso/. That appears to be correct.

Where would I configure that in the google consent screen, I'm not redirected to a 404 page?

After inspecting the Log files I found that there's an exception in the /www/sentry/local/lib/python2.7/site-packages/sentry_auth_google/utils.py file:

Traceback (most recent call last):
   File "/www/sentry/local/lib/python2.7/site-packages/sentry_auth_google/views.py", line 32, in dispatch
     _, payload, _ = map(urlsafe_b64decode, id_token.split('.', 2))
   File "/www/sentry/local/lib/python2.7/site-packages/sentry_auth_google/utils.py", line 8, in urlsafe_b64decode
     return base64.urlsafe_b64decode(padded)
   File "/usr/lib/python2.7/base64.py", line 119, in urlsafe_b64decode
     return b64decode(s.translate(_urlsafe_decode_translation))
 TypeError: character mapping must return integer, None or unicode
 19:33:49 [ERROR] sentry.auth.google: Unable to decode id_token: character mapping must return integer, None or unicode

I think that this might be the reason why it redirects to the invalid page, because it wants to show the error there?

I think there might be an error in the error handling of sentry itself, when it fails to do SSO. The error that I get on that page, which appears briefly, reads: Authentication error: Unable to fetch user information from Google. Please check the log.. Why sentry redirects to /organizations/<org>/auth/ instead of /settings/<org>/auth/ might be an issue in Sentry itself.


Looking at this stack overflow page, the urlsafe_b64decode requires a string. Changing the call to return base64.urlsafe_b64decode(str(padded)) works as intended. I am then being is then redirected to https://<sentry-server>/organizations/<org>/auth/configure, which allows me to configure the default roles of new members and such.

I'll create a PR for this issue, which solves this issue, but might break other installations.

@SanderVerkuil SanderVerkuil changed the title Configuring Google SSO redirects to an unknown page Configuring Google SSO redirects to an 404 Dec 5, 2018
@SanderVerkuil SanderVerkuil changed the title Configuring Google SSO redirects to an 404 Configuring Google SSO redirects to a 404 Dec 5, 2018
@SanderVerkuil SanderVerkuil linked a pull request Dec 5, 2018 that will close this issue
@okainov
Copy link

okainov commented Jul 16, 2019

@SanderVerkuil where did you chenge this file to "hack" it into running sentry? I have the same issue, but just changing the file inside cron/web/worker containers doesn't help :(

@SanderVerkuil
Copy link
Author

@okainov I followed the installation guide for sentry, and the install directory was /www/sentry. It was installed in a virtual environment, so the packages were installed in /www/sentry/local/lib/python2.7. The file which I changed was, relative to the python2.7 dir: site-packages/sentry_auth_google/utils.py,

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants