SonarQube 到 Azure AD 失败,日志中出现 401 错误

SonarQube to Azure AD is failing with 401 error in logs

我有 nginx-->SonarQube。 nginx 能够成功转发请求。 我们希望将身份验证与 Azure AD 集成。 我们遵循了此处的说明: https://www.emtec.digital/think-hub/blogs/sonarqube-integration-azure-active-directory/

因此,当我访问 https://mycompany.com 时,我会看到包含“使用 Microsoft 登录”和更多选项(您可以使用本地用户登录)的登录页面。 当我输入 Microsoft 的用户名和密码时,我们看到 Azure AD 正在返回令牌,但 SonarQube 之后拒绝。我在 sonarqube 访问日志中看到了

"GET /api/navigation/global HTTP/1.1" 401 - "https://mycompany.com/sonar/oauth2/callback/aad?co

于是又回到了登录页面。不确定我做错了什么。

请检查以下几点:

  1. 尝试将 sonarqube 升级到最新版本。
  2. 应该使用正确的 URL 配置重定向 URL,例如https://sonarqube.example.com/oauth2/callback/aad.这里/oauth2/callback/aad是除了申请URL之外的必须。例如,如果您的主 URL 是声纳服务器基础 url 中的“https://sonarqube.example.com”,您将输入“https://sonarqube.example.com/oauth2/callback/aad" 作为 aad 中的重定向 url。
  3. 确保用户具有访问所需的角色或权限。 在门户中设置所需的 permissions 并在需要时授予同意 i) 登录并阅读用户资料 ii) 读取所有用户的基本资料
  4. 另请检查。重定向URL 必须具有https 或环回地址,否则Azure AD 登录将不起作用。 进行任何更改后尝试清除 cookie 并重新启动

参考文献:

  1. sonar-auth-aad (github)
  2. running-sonarqube-behind-an-iis-reversed-proxy
  3. docs.sonarqube.org