Bitbucket OAuth 消费者错误 - 无效的 redirect_uri
Posted
技术标签:
【中文标题】Bitbucket OAuth 消费者错误 - 无效的 redirect_uri【英文标题】:Bitbucket OAuth Consumer Error - Invalid redirect_uri 【发布时间】:2020-01-02 20:30:46 【问题描述】:我正在尝试为名为 SonarQube(linting 工具)的应用程序设置 Bitbucket OAuth 使用者进行身份验证。按照指南,看来我已经正确设置了所有内容 - https://github.com/SonarSource/sonar-auth-bitbucket。
回调 URL 设置为 https://myserver/oauth2/callback。当我直接导航到它时,我得到“您无权访问此页面。请联系管理员。” - 这可能是有效的。我没有任何尾随斜杠或不正确的方案。
需要注意的一点是,我使用的是 nginx 反向代理。当标头 X-Forwarded-For 和 X-Forwarded-Proto 设置不正确时,我确实读过这个问题。请注意,我在这方面的故障排除技巧并不是最好的,但是当我使用开发工具并导航到 https://myserver/oauth2/callback 时,我没有看到这些标题集。但是当我运行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://bitbucket.org/site/oauth2/authorize?response_type=code&client_id=Fs5Fq2e5VqfduRs4xD&redirect_uri=myserver%2Foauth2%2Fcallback%2Fbitbucket&scope=account如果我有 https,如下所示,它实际上会提示“确认访问您的帐户”:
https://bitbucket.org/site/oauth2/authorize?response_type=code&client_id=Fs5Fq2e5VqfduRs4xD&redirect_uri=https%3A%2F%2Fmyserver%2Foauth2%2Fcallback%2Fbitbucket&scope=account
我的反向代理设置是否不正确 - 代理标头?可能的 Bitbucket 问题?任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:这与代理无关,而是 SonarQube 中的配置问题。
我最初在我的 docker 容器中将 sonar.core.serverBaseURL=https://mysonarqube.com
设置为环境变量,我认为当我签入 UI 时它没有被应用,它是空白的。然后我将 env 变量更新为sonar.core.serverBaseURL=notworking
,以便稍后对其进行故障排除/删除,但它似乎设置了该值,即使 UI 显示了正确的值。一旦更新它就可以工作(以及我所有的其他身份验证集成,例如 Google 和 GitHub)。
【讨论】:
【参考方案2】:有同样的问题,并通过将实际的 Sonar URL 添加到配置中来解决。
如果你留空,默认值为 localhost
在配置->常规下
sonarqube configuration screen
【讨论】:
以上是关于Bitbucket OAuth 消费者错误 - 无效的 redirect_uri的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 中的 Github Oauth 令牌 - 从 BitBucket 迁移
为啥我在尝试实施 Gmail Oauth 时将“SameSite”属性设置为“无”或无效值,而没有“安全”错误
如何通过 Jersey+Oltu 从 Java 桌面应用程序访问 Bitbucket API?