From 4403555a430bfa814e261a0e680b953bab9d9594 Mon Sep 17 00:00:00 2001 From: Dimitris Kavvathas Date: Mon, 19 Sep 2022 11:04:23 +0200 Subject: [PATCH] SONAR-17229 Improve Azure AD integration documentation --- .../src/images/azure/saml-azure-signature.jpg | Bin 0 -> 99156 bytes .../authentication/saml/azuread.md | 59 ++++++++------ .../authentication/saml/okta.md | 74 +++++++++--------- 3 files changed, 71 insertions(+), 62 deletions(-) create mode 100644 server/sonar-docs/src/images/azure/saml-azure-signature.jpg diff --git a/server/sonar-docs/src/images/azure/saml-azure-signature.jpg b/server/sonar-docs/src/images/azure/saml-azure-signature.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fa055c2771a1585b04b0dd9edeff9e194e926fc GIT binary patch literal 99156 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 z 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 Authentication > SAML**. For Azure AD, login to Azure and navigate to Azure AD. ## Set up the SonarQube application in Azure AD -- In Azure AD, navigate to **Enterprise applications** and add a **New Application**. +1. In Azure AD, navigate to **Enterprise applications** and add a **New Application**. ![SAML Azure AD New Application](/images/azure/saml-azure-new.jpg) -- Create your **own application** and fill in the **name**. +1. Create your **own application** and fill in the **name**. ![SAML Azure AD Create application](/images/azure/saml-azure-create-application.jpg) ## Link SonarQube with Azure AD -- Navigate to **Single sign-on** and select **SAML**. +1. Navigate to **Single sign-on** and select **SAML**. ![SAML Azure AD SSO](/images/azure/saml-azure-sso.jpg) -- Edit the **Basic SAML Configuration** and fill in the **Identifier** and the **Reply URL**. The **Identifier** has to be the same as the **Application ID** in SonarQube. The **Reply URL** must have the format `/oauth2/callback/saml`. +1. Edit the **Basic SAML Configuration** and fill in the **Identifier** and the **Reply URL**. The **Identifier** has to be the same as the **Application ID** in SonarQube. The **Reply URL** must have the format `/oauth2/callback/saml`. ![SAML Azure AD Basic SAML configuration](/images/azure/saml-azure-basic-saml.jpg) -- Fill in the corresponding SonarQube configuration. + + [[info]] + |The **Reply URL** uses the **Server base URL** provided in SonarQube under **Administration > General**. +1. Make sure that the **Application ID** in SonarQube has the same value as the **Identifier** in the Identity Provider. ![SAML Azure AD SonarQube Application ID](/images/azure/saml-azure-sq-appid.png) -- In the Azure AD SAML configuration, navigate to **Set up "application name"** and copy the **Login URL** and **Azure AD Identifier** +1. In the Azure AD SAML configuration, navigate to **Set up ** and copy the **Login URL** and **Azure AD Identifier** ![SAML Azure AD Links](/images/azure/saml-azure-links.jpg) -- Paste them into the corresponding fields in the SonarQube SAML configuration. +1. Paste the **Login URL** into the **SAML login url** and the **Azure AD Identifier** into the **Provider ID** field in the SonarQube SAML configuration. ![SAML Azure AD SonarQube Links](/images/azure/saml-azure-sq-links.png) ## Attributes and Claims -- In the Azure AD SAML configuration, edit **Attributes & Claims** to view, edit or add attributes. +1. In the Azure AD SAML configuration, edit **Attributes & Claims** to view, edit or add attributes. ![SAML Azure AD Attributes](/images/azure/saml-azure-attributes.jpg) SonarQube uses the following attributes: - - **Login** (required) A unique name to identify the user in SonarQube. The default Azure AD attribute `emailaddress` is used in the example. - - **Name** (required) The full name of the user. The default Azure AD attribute `givenname` is used in the example. - - **Email** (optional) The email of the user. - - **Group** (optional) Supports mapping to group names in SonarQube. These have to be the same as the group name passed by Azure AD. Otherwise, the default **sonar-users** group is assigned. - **Note:** The **NameID** attribute is *not* used in SonarQube. -- Corresponding configuration in SonarQube. The full namespace of the attribute should be used. + - **Login** (required) A unique name to identify the user in SonarQube. The default Azure AD attribute `emailaddress` is used in the example. + - **Name** (required) The full name of the user. The default Azure AD attribute `givenname` is used in the example. + - **Email** (optional) The email of the user. + - **Group** (optional) Supports mapping to group names in SonarQube. Group name passed by Azure AD and the group name in SonarQube should match. Otherwise, the default **sonar-users** group is assigned. + [[warning]] + |The **NameID** attribute is *not* used in SonarQube. +1. Corresponding configuration in SonarQube. The namespace + name of the attribute should be used, as defined in Azure AD. ![SAML Azure AD SonarQube Attributes](/images/azure/saml-azure-sq-attributes.png) ## Certificates & Signatures -- Navigate to **SAML Certificates** and download **Certificate (Base64)**. +1. Navigate to **SAML Certificates** and download **Certificate (Base64)**. ![SAML Azure AD Certificate](/images/azure/saml-azure-certificate.jpg) -- The certificate should be copied into the **Identity provider certificate** field in the SonarQube SAML configuration. +1. The certificate should be copied into the **Identity provider certificate** field in the SonarQube SAML configuration. ![SAML Azure AD SonarQube Certificate](/images/azure/saml-azure-sq-certificate.png) -- (Optional) Encryption for SonarQube requests can be activated by generating an asymmetric key pair. - +1. (Optional) Encryption for SonarQube requests can be activated by generating an asymmetric key pair. (For more information, see [SAML token encryption in Azure](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/howto-saml-token-encryption?tabs=azure-portal)) Add the private key in SonarQube. ![SAML Azure AD SonarQube Encryption](/images/azure/saml-azure-sq-encryption.png) Import the public key certificate (.cer) file in Azure AD and activate token encryption ![SAML Azure AD Encryption](/images/azure/saml-azure-encryption.jpg) -- Azure AD, as an Identity Provider, does not verify signed requests from the Service Providers. SonarQube, however, offers the option for signing the SAML requests by adding a Service Provider private key and certificate. +1. (Optional) Azure AD supports signed SAML requests from the Service Provider (under Preview). + Edit the **Verification certificates**, upload a certificate and enable the **Require verification certificates** option. + ![SAML Azure AD Encryption](/images/azure/saml-azure-signature.jpg) + In SonarQube, fill in the corresponding private key and the same certificate and enable the **Sign requests** option. ![SAML Azure AD SonarQube certs](/images/azure/saml-azure-sq-certs.png) ## Users and Groups -- In the Azure AD SonarQube application, navigate to **Users and groups** and assign users or groups to the application. +1. In the Azure AD SonarQube application, navigate to **Users and groups** and assign users or groups to the application. ![SAML Azure AD SonarQube Links](/images/azure/saml-azure-users.jpg) ## Group mapping Group mapping between Azure AD and SonarQube can be achieved either by using the Azure AD roles or the Azure AD groups. -For either case, the corresponding group name should exist in SonarQube. +For either case, the corresponding group name should exist in SonarQube under **Administration > Security > Groups**. (For more information, see [Authorization](/instance-administration/security/)) - For mapping with the Azure AD groups, a group claim must be added with `sAMAccountName` as a source attribute. + [[warning]] + |According to Azure: This source attribute only works for groups synchronized from an on-premises Active Directory using AAD Connect Sync 1.2.70.0 or above ![SAML Azure AD SonarQube Links](/images/azure/saml-azure-group-claim.jpg) ![SAML Azure AD SonarQube Links](/images/azure/saml-azure-sq-groups.png) -- For mapping with the Azure AD roles, an application role should be assigned to the user. Azure AD sends the role claim automatically with `http://schemas.microsoft.com/ws/2008/06/identity/claims/role` as a key. +- For mapping with the Azure AD app roles, an application role should be assigned to the user. Azure AD sends the role claim automatically with `http://schemas.microsoft.com/ws/2008/06/identity/claims/role` as a key. ![SAML Azure AD SonarQube Links](/images/azure/saml-azure-sq-group-role.png) ## Enabling and testing SAML authentication -- In the SonarQube SAML settings, enable SAML. +1. In the SonarQube SAML settings, enable SAML. ![SAML Azure AD SonarQube SAML](/images/azure/saml-azure-sq-saml.png) -- In the login form, the new button **Log in with SAML** (or a custom name specified in the `sonar.auth.saml.providerName` setting) allows users to connect with their SAML account. +1. In the login form, the new button **Log in with SAML** (or a custom name specified in the `sonar.auth.saml.providerName` setting) allows users to connect with their SAML account. + ![SAML Azure AD SonarQube Login](/images/azure/saml-azure-sq-login.png) diff --git a/server/sonar-docs/src/pages/instance-administration/authentication/saml/okta.md b/server/sonar-docs/src/pages/instance-administration/authentication/saml/okta.md index 4e61ab7a19c..58497ecc7f0 100644 --- a/server/sonar-docs/src/pages/instance-administration/authentication/saml/okta.md +++ b/server/sonar-docs/src/pages/instance-administration/authentication/saml/okta.md @@ -23,83 +23,83 @@ To integrate Okta (Identity Provider) with SonarQube (Service Provider), both si ### Configure SAML settings -Under *General Settings*, configure the following fields: +1. Under *General Settings*, configure the following fields: -- **Single sign on URL**: `/oauth2/callback/saml` (e.g., `https://sonarqube.mycompany.com/oauth2/callback/saml`). + - **Single sign on URL**: `/oauth2/callback/saml` (e.g., `https://sonarqube.mycompany.com/oauth2/callback/saml`). -- **Audience URI (SP Entity ID)**: Something like `sonarqube` (SonarQube default value). It must not contain whitespace. + - **Audience URI (SP Entity ID)**: Something like `sonarqube` (SonarQube default value). It must not contain whitespace. -![SAML settings](/images/okta/okta-saml-settings.png) + ![SAML settings](/images/okta/okta-saml-settings.png) -Assertion signature is mandatory. You must keep the following default settings in *Show Advanced Settings*: +2. Assertion signature is mandatory. You must keep the following default settings in *Show Advanced Settings*: -- **Response**: Choose *Signed*. + - **Response**: Choose *Signed*. -- **Assertion Signature**: Choose *Signed*. + - **Assertion Signature**: Choose *Signed*. -- **Signature Algorithm**: Choose *RSA-SHA256*. + - **Signature Algorithm**: Choose *RSA-SHA256*. -(Optional) If you want to enable assertion encryption, expand *Show Advanced Settings* and configure the following fields: +3. (Optional) If you want to enable assertion encryption, expand *Show Advanced Settings* and configure the following fields: -- **Assertion Encryption**: Choose *Encrypted*. + - **Assertion Encryption**: Choose *Encrypted*. -- **Encryption Algorithm**: Choose *AES256-GCM* for high security. + - **Encryption Algorithm**: Choose *AES256-GCM* for high security. -- **Key Transport Algorithm**: Choose *RSA-OAEP*. + - **Key Transport Algorithm**: Choose *RSA-OAEP*. -- **Encryption Certificate**: Add the service provider certificate. It should be the same certificate as the one found in the SonarQube SAML settings under "Service provider certificate". + - **Encryption Certificate**: Add the service provider certificate. It should be the same certificate as the one found in the SonarQube SAML settings under "Service provider certificate". -![Encryption attributes](/images/okta/okta-encryption-attributes.png) + ![Encryption attributes](/images/okta/okta-encryption-attributes.png) -Under **Attribute Statements**, add the following attribute mappings: +4. Under **Attribute Statements**, add the following attribute mappings: -- Create a mapping for the *name*: + - Create a mapping for the *name*: - 1. **Name**: `name`. + 1. **Name**: `name`. - 2. **Name format**: *Unspecified*. + 2. **Name format**: *Unspecified*. - 3. **Value**: Choose `user.firstName`. + 3. **Value**: Choose `user.firstName`. -- Create a mapping for the *login*: + - Create a mapping for the *login*: - 1. **Name**: `login`. + 1. **Name**: `login`. - 2. **Name format**: *Unspecified*. + 2. **Name format**: *Unspecified*. - 3. **Value**: Choose `user.login`. + 3. **Value**: Choose `user.login`. -- (Optional) Create a mapping for the *email*: + - (Optional) Create a mapping for the *email*: - 1. **Name**: `email`. + 1. **Name**: `email`. - 2. **Name format**: *Unspecified*. + 2. **Name format**: *Unspecified*. - 3. **Value**: Choose `user.email`. + 3. **Value**: Choose `user.email`. - ![Attributes](/images/okta/okta-attributes.png) + ![Attributes](/images/okta/okta-attributes.png) -- (Optional) Under *Group Attribute Statements* (See details in [Group Mapping](/instance-administration/authentication/overview/)): + - (Optional) Under *Group Attribute Statements* (See details in [Group Mapping](/instance-administration/authentication/overview/)): - 1. **Name**: `groups`. + 1. **Name**: `groups`. - 2. **Name format**: *Unspecified*. + 2. **Name format**: *Unspecified*. - 3. **Filter**: Choose *Matches regex* and set the value to `.*`. + 3. **Filter**: Choose *Matches regex* and set the value to `.*`. - ![Group attribute](/images/okta/okta-group-attribute.png) + ![Group attribute](/images/okta/okta-group-attribute.png) -Click **Finish** in the **Feedback** dialog to confirm the creation of the application. +5. Click **Finish** in the **Feedback** dialog to confirm the creation of the application. -You can now add users and groups in the *Assignments* tab of the application. +6. You can now add users and groups in the *Assignments* tab of the application. ![Assign users](/images/okta/okta-assign-users.png) -Navigate to the **Sign On** tab of the *SonarQube* application in Okta. +7. Navigate to the **Sign On** tab of the *SonarQube* application in Okta. ![Signon tab](/images/okta/okta-signon.png) -Next to the **SAML Signing Certificates** subsection, you will find the configurations needed for setting up SonarQube, under **View SAML setup instructions**. +8. Next to the **SAML Signing Certificates** subsection, you will find the configurations needed for setting up SonarQube, under **View SAML setup instructions**. ![Setup instructions](/images/okta/okta-setup-instructions.png) -- 2.39.5