diff --git a/website/integrations/services/sonar-qube/index.md b/website/integrations/services/sonar-qube/index.md new file mode 100644 index 000000000..4b2ae2a3c --- /dev/null +++ b/website/integrations/services/sonar-qube/index.md @@ -0,0 +1,72 @@ +--- +title: SonarQube +--- + +Support level: Community + +## What is SonarQube + +> Self-managed static analysis tool for continuous codebase inspection +> +> -- https://www.sonarsource.com/products/sonarqube/ + +## Preparation + +The following placeholders will be used: + +- `sonarqube.company` is the FQDN of the sonarqube install. +- `authentik.company` is the FQDN of the authentik install. + +## Terraform provider + +Create an application in authentik. Create a SAML Provider with the following values + +```hcl + +data "authentik_flow" "default-provider-authorization-implicit-consent" { + slug = "default-provider-authorization-implicit-consent" +} + +data "authentik_property_mapping_saml" "saml-sonar-qube" { + managed_list = [ + "goauthentik.io/providers/saml/email", + "goauthentik.io/providers/saml/username", + "goauthentik.io/providers/saml/name" + ] +} + +resource "authentik_provider_saml" "provider_sonar-qube" { + name = "SonarQube" + + authorization_flow = data.authentik_flow.default-provider-authorization-implicit-consent.id + + acs_url = "https://sonarqube.company/oauth2/callback/saml" + issuer = "https://authentik.company/" + sp_binding = "post" + audience = "https://sonarqube.company/saml2/metadata" + + property_mappings = data.authentik_property_mapping_saml.saml-sonar-qube.ids +} + +resource "authentik_application" "application_sonar-qube" { + name = "SonarQube" + slug = "sonarqube" + protocol_provider = authentik_provider_saml.provider_sonar-qube.id +} + +``` + +## SonarQube + +Navigate to Administration -> Configuration -> Authentication -> Saml + +Input these Values + +- Application ID: https://sonarqube.company/saml2/metadata +- Provider Name: authentik +- Provider ID: https://authentik.company/ +- SAML login url: https://authentik.company/application/saml/sonarqube/sso/binding/redirect/ +- Identity provider certificate: Download it from authentik +- SAML user login attribute: http://schemas.goauthentik.io/2021/02/saml/username +- SAML user name attribute: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name +- SAML user email attribute: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index e7e44d64a..29b873e47 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -100,6 +100,7 @@ module.exports = { "services/home-assistant/index", "services/jellyfin/index", "services/node-red/index", + "services/sonar-qube/index", "services/sonarr/index", "services/tautulli/index", "services/weblate/index",