【问题标题】:Authenticate sonarScanner via basic auth通过基本身份验证对 sonarScanner 进行身份验证
【发布时间】:2017-09-18 13:35:15
【问题描述】:

我对这个问题感到沮丧, 我们的 sonarqube 服务器落后于 http 基本身份验证,本地运行器失败并出现 401 错误。是否有可能向它提供凭据? AOfficial docs 展示了如何提供 sonarqube 的内部用户... http://www.it1me.com/it-answers?id=35790175&s=User%20talk:Omotecho&ttl=Authenticate+sonar- runner+via+basic+auth

有什么想法或经验吗?

【问题讨论】:

  • 你试过什么?另外,你是怎么分析的?

标签: sonarqube sonarqube-scan


【解决方案1】:

执行分析需要“执行分析”权限。 为了设置扫描仪的凭据,您需要使用 sonar.login 和 sonar.password。 欲了解更多信息,请查看:

【讨论】:

  • 嗨 Julien,这不是 Sonar 身份验证问题,而是根本无法访问 sonarQube 的 http 身份验证问题。
  • 如果 SonarScanner 因 401 错误而失败,这意味着它能够访问服务器,但用于执行分析的用户缺少一些权限
  • @JulienL.-SonarSourceTeam - 不一定。 OP 说“我们的 sonarqube 服务器落后于 http 基本身份验证,并且本地运行器失败并出现 401 错误” - 因此 401 可以来自具有基本身份验证的代理而不是 Sonar 本身。
【解决方案2】:

我知道这个问题很老了,但我只是花了一天时间弄清楚以下问题:

TLDR: sonar-runner,即使配置了凭据,也不会使用这些凭据来首次调用服务器。端点是 /batch/index。 您必须允许对该端点的公共访问。对于所有其他网址,基本身份验证都可以。

更多细节: 我使用 Apache 2.4 作为反向代理,对 Sonar 7.9.2 进行基本身份验证,它位于路径 /sonar 下的 docker 容器中。 我的 Apache 2.4 身份验证配置的一部分

  <Location /sonar/batch/index>
    SetEnvIf User-Agent "^ScannerMaven" scanner_maven
    SetEnvIf User-Agent "^ScannerCli" scanner_maven
  </Location>
  <Location /sonar>
    <RequireAny>
      Require group sonar
      <RequireAll>
        Require expr %{REQUEST_URI} =~ m#^.*\/sonar\/batch\/index#
        Require env scanner_maven
      </RequireAll>
    </RequireAny>
    SetEnv proxy-chain-auth On
  </Location>

如您所见,/sonar/batch/index 路径不使用身份验证。作为一个不是很好但总比没有好的限制,如果有人使用 User-Agent ScannerMaven 或 ScannerCli(即声纳扫描仪)发出请求,我会设置一个 env 变量。请注意,用户代理很容易被伪造或可能会根据扫描仪而改变。 对于所有其他 url,必须对组 sonar 中的用户进行身份验证。 (Apache 和 Sonar 的用户是相同的,代理将带有 proxy-chain-auth 的凭据转发给 Sonar。

此设置已使用 maven 进行测试:mvn sonar:sonar

使用

    <profiles>
      <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
          <sonar.host.url>https://myhost/sonar/</sonar.host.url>
          <sonar.login>${env.SONARUSER}</sonar.login>
          <sonar.password>${env.SONARPWD}</sonar.password>
        </properties>
      </profile>
    </profiles>

    [...]

    <plugin>
        <groupId>org.sonarsource.scanner.maven</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>3.7.0.1746</version>
    </plugin>

【讨论】:

    猜你喜欢
    • 2016-06-17
    • 2017-06-13
    • 2013-05-30
    • 2018-01-02
    • 2015-08-12
    • 2021-06-20
    相关资源
    最近更新 更多