Tutorial: Microsoft Entra SSO integration with SonarQube
In this tutorial, you learn how to integrate SonarQube with Microsoft Entra ID. When you integrate SonarQube with Microsoft Entra ID, you can:
- Control in Microsoft Entra ID who has access to SonarQube.
- Enable your users to be automatically signed-in to SonarQube with their Microsoft Entra accounts.
- Manage your accounts in one central location.
Prerequisites
To get started, you need the following items:
- A Microsoft Entra subscription. If you don't have a subscription, you can get a free account.
- SonarQube single sign-on (SSO) enabled subscription.
- Steps to get SonarQube "SAML group attribute" setup correctly to use AzureAD groups for permissions (detailed below).
Note
Help on installing SonarQube can be found in the online documentation.
Scenario description
In this tutorial, you configure and test Microsoft Entra SSO in a test environment.
- SonarQube supports SP initiated SSO.
Note
Identifier of this application is a fixed string value so only one instance can be configured in one tenant.
Add SonarQube from the gallery
To configure the integration of SonarQube into Microsoft Entra ID, you need to add SonarQube from the gallery to your list of managed SaaS apps.
- Sign in to the Microsoft Entra admin center as at least a Cloud Application Administrator.
- Browse to Identity > Applications > Enterprise applications > New application.
- In the Add from the gallery section, type SonarQube in the search box.
- Select SonarQube from results panel and then add the app. Wait a few seconds while the app is added to your tenant.
Alternatively, you can also use the Enterprise App Configuration Wizard. In this wizard, you can add an application to your tenant, add users/groups to the app, assign roles, and walk through the SSO configuration as well. Learn more about Microsoft 365 wizards.
Configure and test Microsoft Entra SSO for SonarQube
Configure and test Microsoft Entra SSO with SonarQube using a test user called B.Simon. For SSO to work, you need to establish a link relationship between a Microsoft Entra user and the related user in SonarQube.
To configure and test Microsoft Entra SSO with SonarQube, perform the following steps:
- Configure Microsoft Entra SSO - to enable your users to use this feature.
- Create a Microsoft Entra test user - to test Microsoft Entra single sign-on with B.Simon.
- Assign the Microsoft Entra test user - to enable B.Simon to use Microsoft Entra single sign-on.
- Configure SonarQube SSO - to configure the single sign-on settings on application side.
- Create SonarQube test user - to have a counterpart of B.Simon in SonarQube that is linked to the Microsoft Entra representation of user.
- **Configure SAML Group Attribute for SonarQube - to enable B.Simon to use Microsoft Entra single sign-on.
- Test SSO - to verify whether the configuration works.
Configure Microsoft Entra SSO
Follow these steps to enable Microsoft Entra SSO.
Sign in to the Microsoft Entra admin center as at least a Cloud Application Administrator.
Browse to Identity > Applications > Enterprise applications > SonarQube > Single sign-on.
On the Select a single sign-on method page, select SAML.
On the Set up single sign-on with SAML page, select the pencil icon for Basic SAML Configuration to edit the settings.
On the Basic SAML Configuration section, perform the following steps:
a. In the Reply URL text box, type a URL using the following pattern:
https://sonar.<companyspecificurl>.io/oauth2/callback/saml
b. In the Sign-on URL text box, type one of the following URLs:
For Production Environment
https://servicessonar.corp.microsoft.com/
For Dev Environment
https://servicescode-dev.westus.cloudapp.azure.com
Note
This value is not real. Update the value with actual Reply URL which are explained later in the tutorial.
On the Set up single sign-on with SAML page, in the SAML Signing Certificate section, find Certificate (Base64) and select Download to download the certificate and save it on your computer.
On the Set up SonarQube section, copy the appropriate URLs based on your requirement.
Create a Microsoft Entra test user
In this section, you create a test user called B.Simon.
- Sign in to the Microsoft Entra admin center as at least a User Administrator.
- Browse to Identity > Users > All users.
- Select New user > Create new user, at the top of the screen.
- In the User properties, follow these steps:
- In the Display name field, enter
B.Simon
. - In the User principal name field, enter the username@companydomain.extension. For example,
B.Simon@contoso.com
. - Select the Show password check box, and then write down the value that's displayed in the Password box.
- Select Review + create.
- In the Display name field, enter
- Select Create.
Assign the Microsoft Entra test user
In this section, you enable B.Simon to use single sign-on by granting access to SonarQube.
- Sign in to the Microsoft Entra admin center as at least a Cloud Application Administrator.
- Browse to Identity > Applications > Enterprise applications > SonarQube.
- In the app's overview page, select Users and groups.
- Select Add user/group, then select Users and groups in the Added Assignment dialog.
- In the Users and groups dialog, select B.Simon from the Users list, then select the Select button at the bottom of the screen.
- If you're expecting a role to be assigned to the users, you can select it from the Select a role dropdown. If no role has been set up for this app, you see "Default Access" role selected.
- In the Added Assignment dialog, select the Assign button.
Configure SonarQube SSO
Open a new web browser window and sign into your SonarQube company site as an administrator.
Select on Administration > Configuration > Security and go to the SAML Plugin perform the following steps.
Copy the following details from the IdP metadata and paste them into the corresponding text fields in the SonarQube plugin.
- IdP Entity ID
- Sign-in URL
- X.509 Certificate
Save all the details.
On the SAML page, perform the following steps:
a. Toggle the Enabled option to yes.
b. In Application ID text box, enter the name like sonarqube.
c. In Provider Name text box, enter the name like SAML.
d. In Provider ID text box, paste the value of Microsoft Entra Identifier.
e. In SAML login url text box, paste the value of Login URL.
f. Open the Base 64 encoded certificate in notepad, copy its content and paste it into the Provider certificate text box.
g. In SAML user login attribute text box, enter the value
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
.h. In SAML user name attribute text box, enter the value
http://schemas.microsoft.com/identity/claims/displayname
.i. In SAML user email attribute text box, enter the value
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
.j. Select Save.
Configure SAML Group Attribute for SonarQube
To set up SAML group attribute and use AzureAD groups for permissions in SonarQube, follow this steps:
- In the Administration tab of SonarQube, navigate to Configuration > Security > Saml/
- In the SAML group attribute text box, enter the following value: 'http://schemas.microsoft.com/ws/2008/06/identity/claims/role'
- Save the changes
- Go to Administration > Security > Groups in SonarQube
- Map the AzureAD groups to SonarQube groups:
- For each AzureAD group, create a corresponding group in SonarQube if it does not exist.
- Ensure the names of the groups match exactly between AzureAD and SonarQube.
Create SonarQube test user
In this section, you create a user called B.Simon in SonarQube. Work with SonarQube Client support team to add the users in the SonarQube platform. Users must be created and activated before you use single sign-on.
Test SSO
In this section, you test your Microsoft Entra single sign-on configuration with following options.
Select on Test this application, this will redirect to SonarQube Sign-on URL where you can initiate the sign-in flow.
Go to SonarQube Sign-on URL directly and initiate the sign-in flow from there.
You can use Microsoft My Apps. When you select the SonarQube tile in the My Apps, this will redirect to SonarQube Sign-on URL. For more information about the My Apps, see Introduction to the My Apps.
Next steps
- Once you configure SonarQube, you can enforce session controls, which protect exfiltration and infiltration of your organization’s sensitive data in real time. Session controls extend from Conditional Access. Learn how to enforce session control with Microsoft Defender for Cloud Apps.