Bitbucket OAuth 消费者错误 - 无效 redirect_uri

Bitbucket OAuth Consumer Error - Invalid redirect_uri

我正在尝试设置一个 Bitbucket OAuth 消费者以对名为 SonarQube(linting 工具)的应用程序进行身份验证。按照指南,我似乎已经正确设置了所有内容 - https://github.com/SonarSource/sonar-auth-bitbucket.

回调 URL 设置为 https://myserver/oauth2/callback。当我直接导航到它时,我得到 "You're not authorized to access this page. Please contact the administrator." - 这可能是有效的。我没有任何尾部斜杠或不正确的方案。

需要注意的一件事是我使用的是 nginx 反向代理。当 headers X-Forwarded-For 和 X-Forwarded-Proto 设置不正确时,我确实有时会读到这个问题。请注意,我的故障排除技巧并不是最好的,但是当我使用开发工具并导航到 https://myserver/oauth2/callback 时,我没有看到那些 headers 集。然而当我运行nginx -T | grep proxy_set_header时,它似乎是正确的。


root@01008bf897b1:/app# nginx -T | grep proxy_set_header
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header Proxy "";

此外,当我在执行 Bitbucket 身份验证时查看 URL 时,我注意到它在 redirect_uri:

中不包含 https

如果我有 https,如下所示,它实际上会提示输入 "Confirm access to your account":

https://bitbucket.org/site/oauth2/authorize?response_type=code&client_id=Fs5Fq2e5VqfduRs4xD&redirect_uri=https%3A%2F%2Fmyserver%2Foauth2%2Fcallback%2Fbitbucket&scope=account

我的反向代理设置不正确 - 代理 headers?可能的 Bitbucket 问题?如有任何帮助,我们将不胜感激!

这与代理无关,而是 SonarQube 中的配置问题。

我最初在我的 docker 容器中将 sonar.core.serverBaseURL=https://mysonarqube.com 设置为环境变量,我认为它没有被应用,因为当我在 UI 中签入时,它是空白的。然后,我将 env 变量更新为 sonar.core.serverBaseURL=notworking,以便稍后对 it/delete 进行故障排除,但它似乎设置了该值,即使 UI 显示了正确的值。一旦更新它就可以工作(以及我所有其他的身份验证集成,例如 Google 和 GitHub)。

有同样的问题并通过将实际的 Sonar URL 添加到配置中解决。

如果将其留空,则默认值为 localhost

在配置->常规下

sonarqube configuration screen