【问题标题】:Azure AD integration with sonarqubeAzure AD 与 sonarqube 的集成
【发布时间】:2021-12-27 14:32:15
【问题描述】:

我正在使用 nginx 反向代理在 https 上运行 sonarqube。

这是我的 nginx 反向代理配置。


server{
   server_name sonarqube.mydomain.co.in;
    access_log  /var/log/nginx/sonar.access.log;
    error_log   /var/log/nginx/sonar.error.log;
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    location / {
        proxy_pass  http://127.0.0.1:9000;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;
        proxy_set_header    Host            $host;
        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 http;
        proxy_set_header X-Forwarded-Proto https;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/sonarqube.mydomain.co.in/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/sonarqube.mydomain.co.in/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server{
    if ($host = sonarqube.mydomain.co.in) {
        return 301 https://$host$request_uri;
    } # managed by Certbot



    listen      80;
   server_name sonarqube.mydomain.co.in;
    return 404; # managed by Certbot


}


我已经从 Azure AD 的库中添加了声纳。之后,我在我的 AZURE SSO 中选择了 SAML。在我的回复 URL 中,我配置了 https://sonarqube.mydomain.co.in/oauth2/callback/saml 和我的登录 URL https://sonarqube.mydomain.co.in。我已将相关字段从 azure AD 配置到我的 sonarqube 插件。

现在,当我尝试在我的 sonarqube 中通过 SAML 登录时,出现此错误

You're not authorized to access this page. Please contact the administrator.

Reason: The response was received at http://sonarqube.mydomain.co.in/oauth2/callback/saml instead of https://sonarqube.mydomain.co.in/oauth2/callback/saml

这是因为我的 nginx 反向代理配置吗?我怎样才能解决这个问题? 任何帮助将不胜感激

【问题讨论】:

  • 你好@Anshul Walia,如果我的回答对你有帮助,你可以投票并接受它作为答案(点击答案旁边的复选标记,将其从灰色切换为填充。)。这对其他社区成员可能是有益的。谢谢。

标签: azure-active-directory sonarqube saml


【解决方案1】:

• 根据配置反向代理的 sonarqube 文档,应将其配置为在每个 http 请求标头中设置值“X_FORWARDED_PROTO: https”。如果没有此属性,SonarQube 服务器发起的重定向将回退到 HTTP。在您的代码中,您错误地指定将请求从 HTTP 重定向到 HTTPS。您尚未在“位置”参数下指定要返回到“服务器”类下的任何位置。正确的脚本格式应该如下:-

     ‘ server {
       listen 80;
       server_name sonarqube.mydomain.co.in;
       if ($host = sonarqube.mydomain.co.in)
       location /
       return 301 https://$host$request_uri;
     }
   } ‘

另外,请删除代码中传递的“proxy_redirect off”参数,该参数阻止通过 nginx 代理的重定向请求,并删除“proxy_set_header X-Forwarded-Proto http”参数。而不是“proxy_set_header X-Forwarded-Proto https”,您可以传递一个变量,如“$redirect”并定义如下变量以确保所有请求都到达 HTTPS 端口:-

if ($scheme != "https") {
 return 301 https://$host$request_uri permanent;
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-03
    • 2021-12-14
    • 2018-01-12
    • 2019-06-28
    • 2019-11-25
    • 1970-01-01
    • 2022-01-03
    • 2016-11-18
    相关资源
    最近更新 更多