> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/data-quality-self-hosted/security-configuration/saml-authentication/configuring-saml-authentication.md).

# Configuring SAML authentication

You can integrate Data Quality & Observability (self-hosted) with an existing SAML solution and have your application act as a service provider. Once you set up the environment variables, you can access and configure SAML security settings as an administrator in the SAML Setup section of the Admin Console.

## 1. Set the SAML authentication properties

Before configuring SAML authentication, you must add the following required properties to your configuration.

{% tabs %}
{% tab title="Standalone" %}
{% stepper %}
{% step %}
Add the properties as environment variables to your owl-env.sh file.
{% endstep %}

{% step %}
Prefix all properties with the `export` statement.
{% endstep %}

{% step %}
Restart the DQ Web app.
{% endstep %}
{% endstepper %}

### Required properties

| Property              | Configuration Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SAML\_ENABLED         | <p>Whether Collibra DQ uses SAML.</p><p>If set to <code>false</code>, users sign in with a username and password.</p><p>If set to <code>true</code>, SAML handles the authentication request.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SAML\_ENTITY\_ID      | <p>The name of the application for the identity provider, for example <em>Collibra DQ</em>.</p><p>It is an immutable unique identifier of the service provider for the Identity Provider (IdP).</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| SAML\_ENTITY\_BASEURL | <p>The base URL that is provided in the service provider metadata. It is used to generate the ACS URL, which is the entity base URL with <code>/saml/SSO</code> appended to it. It must include a port number if one is configured on the IdP side.</p><p>Once you have enabled and configured SAML authentication, you can download the service provider metadata from <code>https\://\<your\_dq\_environment\_url>/saml/metadata/SSO</code>.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>The <code>/saml/SSO</code> endpoint is case-sensitive. When you configure the ACS URL or sign-on URL in your identity provider, use <code>/saml/SSO</code> with a capital <code>SSO</code>. Using <code>/saml/sso</code> causes authentication failures.If you use Data Quality & Observability (self-hosted) with a Java version older than 21, such as Java 11, download your service provider metadata from <code>https\://\<your\_dq\_environment\_url>/saml/metadata</code> instead.</p></div> |

{% hint style="danger" %}
If you have SAML configured in Collibra DQ, or if the app sits behind a load balancer, see the CORS\_ALLOWED\_ORIGINS property below.
{% endhint %}

### Optional properties: general

You can further configure your SAML setup with the following optional properties.

| Property                                              | Configuration Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CORS\_ALLOWED\_ORIGINS=${IDP-BASE-URL},${DQ-BASE-URL} | Allows cross-origin requests between Collibra DQ and SAML.Replace `${IDP-BASE-URL}` with the value of the actual IdP URL. For example, `https://ping.auth.com/`. Replace `${DQ-BASE-URL}` with the value of the actual DQ Base URL. For example, `https://dq-env.com`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SAML\_LB\_EXISTS                                      | <p>Whether the application needs to configure a load balancer.</p><p>You generally need this setting only when the Load Balancer is set for SSL Termination.</p><p>The default value is <code>false</code>.</p><p>If set to <code>true</code>, you must also provide a value for SAML\_LB\_SERVER\_NAME.</p><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>If the SAML\_LB\_EXISTS property is set to true and SAML\_LB\_INCLUDE\_PORT\_IN\_REQUEST set to false, you may need to update SAML\_ENTITY\_BASEURL to include the port in the URL. The SAML\_ENTITY\_BASEURL should match the IdP's ACS URL.</p></div>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| SAML\_ROLES\_PROP\_NAME                               | <p>The attribute in which the identity provider stores the role of the user authenticating in the SAML response.</p><p>The default value is <code>memberOf</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SAML\_GRANT\_ALL\_PUBLIC                              | <p>Whether any user authenticated by the identity provider is allowed to login the Collibra DQ application.</p><p>The default value is <code>true</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| SAML\_USER\_NAME\_PROP                                | The name of the attribute in the SAML response that contains the username of the user who is authenticating.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SAML\_TENANT\_PROP\_NAME                              | <p>If using multi-tenant mode and <code>SAML\_TENANT\_PROP\_FROM\_URL</code> is set to <code>false</code>, this is the variable in which the identity provider stores the tenant name of the user authenticating in the SAML response.</p><p>The default value is <code>tenant</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| SAML\_TENANT\_PROP\_FROM\_URL                         | <p>If using multi-tenant mode, this property controls where the tenant is set to use for authentication.</p><p>Set to <code>true</code> to identify the tenant from the SAML <code>RelayState</code> parameter.</p><p>Set to <code>false</code> to identify the tenant using a SAML response attribute defined by the SAML\_TENANT\_PROP\_NAME property (default= <code>tenant</code>).</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SAML\_KEYSTORE\_FILE                                  | <p>The path to the keystore file (p12 or jks format) for SAML SSO. The keystore manages the cryptographic keys and digital certificates used between the service provider (Data Quality & Observability (self-hosted)) and the IdP. For example: <code>file:///etc/ssl/server.p12</code></p><div data-gb-custom-block data-tag="hint" data-style="success" class="hint hint-success"><p>If an error occurs with the SAML\_KEYSTORE\_FILE value, ensure that you added <strong>file:</strong> to the file path in the owl\_env.sh file. For example: <code>SAML\_KEYSTORE\_FILE=file:/home/ec2-user/owl/config/collibraDQ-onelogin-keystore.p12</code></p></div>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SAML\_KEYSTORE\_PASS                                  | The password for the keystore provided in `SAML_KEYSTORE_FILE`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SAML\_KEYSTORE\_ALIAS                                 | The alias of the keypair (private and public) in the keystore used for SAML SSO.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SAML\_METADATA\_URL                                   | The URL of the identity provider metadata XML file.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SAML\_METADATA\_USE\_URL                              | <p>The default value is <code>true</code>.</p><p>If it is set to <code>false</code>, the SAML\_METADATA\_URL value must start with <code>file:</code> and be the fully qualified path to the IdP Metadata XML file that has already been mounted to the web pod. We only recommend this if the web pod is unable to resolve the URL where the IdP Metadata XML is hosted.</p><p>For example: <code>file:/full/path/to/IdP\_metadata.xml</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| SAML\_MAX\_AUTH\_AGE                                  | Deprecated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| LOCAL\_REGISTRATION\_ENABLED                          | <p>Allows you to display or hide the registration link for local users on the Collibra DQ sign-in page. Because the registration link is displayed on the sign-in page by default, this property is set to <code>true</code>.To display or hide the registration link from the owl-env.sh file, select from the following properties:</p><ul><li><strong>export LOCAL\_REGISTRATION\_ENABLED=true</strong>: Displays the registration link on the sign-in page for local users. This is set to <code>true</code> by default.</li><li><strong>export LOCAL\_REGISTRATION\_ENABLED=false</strong>: Hides the registration link on the sign-in page for local users.</li></ul><p>To display or hide the registration link from a K8s ConfigMap, select the from the following properties:</p><ul><li><strong>LOCAL\_REGISTRATION\_ENABLED:"true"</strong>: Displays the registration link on the sign-in page for local users. This is set to <code>true</code> by default.</li><li><strong>LOCAL\_REGISTRATION\_ENABLED:"false"</strong>: Hides the registration link on the sign-in page for local users.</li></ul><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This property must be set globally on deployment.</p></div> |
| CSRF\_TOKEN\_ENABLED                                  | Enables the use of Spring CSRF token implementation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| CSRF\_TOKEN\_IGNORE\_URL\_PATTERN                     | Requests URL patterns to be ignored for CSRF token validation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| CSRF\_TOKEN\_IGNORE\_REFERER\_PATTERN                 | Requests header referer patterns to be ignored for CSRF token validation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

{% hint style="info" %}
While CORS is still an optional configuration, it is required if you have SAML configured in Collibra DQ, or if you have Collibra DQ behind a load balancer.CORS is also enforced for multi-tenancy.
{% endhint %}

### Optional properties: load balancer

When `SAML_LB_EXISTS` is set to `true`, the following additional properties are available.

<table><thead><tr><th width="152">Property</th><th>Configuration Description</th></tr></thead><tbody><tr><td>SAML_LB_INCLUDE_PORT_IN_REQUEST</td><td><p>Whether to include the port number in the request.</p><p>The default value is <code>false</code>.</p></td></tr><tr><td>SAML_LB_PORT</td><td><p>The port number of the load balancer.</p><p>The default value is <code>443</code>.</p></td></tr><tr><td>SAML_LB_SCHEME</td><td><p>The protocol of the load balancer.</p><p>The default value is <code>https</code>.</p></td></tr><tr><td>SAML_LB_SERVER_NAME</td><td><p>The server or DNS name.</p><p>Usually, the same as <code>SAML_ENTITY_BASEURL</code> without specifying the protocol, for example without <em>https://</em>.</p><p>This property is required and has no default.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Don't include a trailing slash at the end of this value. A trailing slash can cause the base URL and port number to be parsed incorrectly, which results in authentication failures.</p></div></td></tr><tr><td>SAML_LB_CONTEXT_PATH</td><td>Any path that may be defined on the load balancer.</td></tr></tbody></table>

### Example

```
#enable SAML & show the SAML SSO option on the login page
SAML_ENABLED=true

#set SSL communication properties for SAML
SAML_KEYSTORE_FILE=/keystore.p12
SAML_KEYSTORE_PASS=****
SAML_KEYSTORE_ALIAS=****

#in multi-tenant mode set the name of the IDP variable to hold the tenant name
export SAML_TENANT_PROP_NAME=tenant

#set the name of the IDP variable to hold the user roles in the response
export SAML_ROLES_PROP_NAME=memberOf

#allow login if authenticated to the IDP
export SAML_GRANT_ALL_PUBLIC=true

#set the EntityId of the application to be supplied to the IDP
export SAML_ENTITY_ID=OwlOneLogin

#optionally set a property that contains the username in the response
export SAML_USER_NAME_PROP=userName
```

{% hint style="success" %}
We recommend synchronizing the clocks of the Identity Provider (IdP) and Service Provider (Collibra DQ) using Network Time Protocol (NTP) to prevent authentication failures caused by significant clock skew.
{% endhint %}

## 2. Enable and configure the SAML SSO option

### Set up SSL for SAML

SSL is required by SAML. If using a custom SAML keystore, follow the instructions provided in [Migrating to a custom SAML keystore](/data-quality-self-hosted/security-configuration/saml-authentication/migrating-to-a-custom-saml-keystore.md).

Otherwise, if using the built-in keystore, configure the following variable:

* Standalone: `SAML_KEYSTORE_PASS`
* Cloud native: `global.web.security.saml.keyStorePass`

{% hint style="info" %}
You can find more information on setting up SSL in the topic, [Setting up SSL (HTTPS)](/data-quality-self-hosted/security-configuration/setting-up-ssl-https.md). In addition, example helm commands are provided in the section "Install with SAML enabled" in [Deploy on self-hosted Kubernetes](/data-quality-self-hosted/installation/installing-data-quality-observability-self-hosted-on-self-hosted-kubernetes/deploy-on-self-hosted-kubernetes.md).
{% endhint %}

### Update settings in Admin Console

When you are ready with your IdP settings, add the final configuration settings in the Admin Console:

{% stepper %}
{% step %}
Sign in to Data Quality & Observability (self-hosted) as an administrator with a username and password to the tenant you want to configure.
{% endstep %}

{% step %}
Click **Admin Console**.
{% endstep %}

{% step %}
Click **User Management**, then click **SAML Security**.\ <i class="fa-chevrons-right">:chevrons-right:</i> The SAML Security Settings page opens.
{% endstep %}

{% step %}
Click the **SAML Enabled** dropdown menu, then select **Enabled**.
{% endstep %}

{% step %}
Under the SAML Enabled dropdown menu, to the far right side of the page, click <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-5d5a447dce86ff44cb212f6fa822c736f80b3704%2FPlusIcon.svg?alt=media" alt="Plus icon" data-size="line">.\ <i class="fa-chevrons-right">:chevrons-right:</i> The Add Meta Data Configuration dialog box appears.
{% endstep %}

{% step %}
Enter the required information.

| Option          | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Meta-Data URL   | <p>The URL of the identity provider metadata XML file or the location of the downloaded XML file.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>The name of the XML file must begin with the prefix <strong>file:</strong> and typically uses <strong>file:/opt/owl/config/idp-metadata.xml</strong> format.</p></div> |
| Meta-Data Label | The name for this specific configuration.                                                                                                                                                                                                                                                                                                                               |
| IDP URL         | The URL of the Collibra DQ application that is provisioned by the identity provider.                                                                                                                                                                                                                                                                                    |

{% hint style="info" %}
The IDP\_URL is the IdP Initiated SSO login URL. For Example, in Azure, it would be `https://myapps.microsoft.com/signin/<sp-app-id>?tenantId=<sp-tenant-id>`. In multi-tenant mode, this URL should contain a `RelayState` for DQ to set the tenant on completing the SSO.
{% endhint %}
{% endstep %}

{% step %}
Click **Add**.
{% endstep %}

{% step %}
Restart the application and sign in using the SAML SSO option.

{% hint style="info" %}
SAML SSO authentication via the /v3/auth/signin API is not supported.
{% endhint %}

{% hint style="info" %}
SAML authentication is only supported for IdP-initiated requests.
{% endhint %}
{% endstep %}

{% step %}
The user account has only public access. To map user roles from AD to DQ roles, follow the instructions provided in AD Group to Role Mapping.
{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="Cloud Native" %}

1. Add the properties as environment variables to your DQ-web ConfigMap.
2. Recycle the pod.

### Required properties

| Kubernetes ConfigMap Metadata Property | Helm Upgrade Command Argument                  | Configuration Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| -------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SAML\_ENABLED                          | `--set global.web.security.saml.enabled`       | <p>Whether Collibra DQ uses SAML.</p><p>If set to <code>false</code>, users sign in with a username and password.</p><p>If set to <code>true</code>, SAML handles the authentication request.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| SAML\_ENTITY\_ID                       | `--set global.web.security.saml.entityId`      | <p>The name of the application for the identity provider, for example <em>Collibra DQ</em>.</p><p>It is an immutable unique identifier of the service provider for the Identity Provider (IdP).</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| SAML\_ENTITY\_BASEURL                  | `--set global.web.security.saml.entityBaseUrl` | <p>The base URL that is provided in the service provider metadata. It is used to generate the ACS URL, which is the entity base URL with <code>/saml/SSO</code> appended to it. It must include a port number if one is configured on the IdP side.</p><p>Once you have enabled and configured SAML authentication, you can download the service provider metadata from <code>https\://\<your\_dq\_environment\_url>/saml/metadata/SSO</code>.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>The <code>/saml/SSO</code> endpoint is case-sensitive. When you configure the ACS URL or sign-on URL in your identity provider, use <code>/saml/SSO</code> with a capital <code>SSO</code>. Using <code>/saml/sso</code> causes authentication failures.If you use Data Quality & Observability (self-hosted) with a Java version older than 21, such as Java 11, download your service provider metadata from <code>https\://\<your\_dq\_environment\_url>/saml/metadata</code> instead.</p></div> |

{% hint style="danger" %}
If you have SAML configured in Collibra DQ, or if the app sits behind a load balancer, see the CORS\_ALLOWED\_ORIGINS property below.
{% endhint %}

### Optional properties: general

You can further configure your SAML setup with the following optional properties.

| Kubernetes ConfigMap Metadata Property                | Helm Upgrade Command Argument                              | Configuration Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ----------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CORS\_ALLOWED\_ORIGINS=${IDP-BASE-URL},${DQ-BASE-URL} | `--set global.web.security.cors.allowedOrigins`            | Allows cross-origin requests between Collibra DQ and SAML.Replace `${IDP-BASE-URL}` with the value of the actual IdP URL. For example, `https://ping.auth.com/`. Replace `${DQ-BASE-URL}` with the value of the actual DQ Base URL. For example, `https://dq-env.com`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SAML\_LB\_EXISTS                                      | `--set global.web.security.saml.loadBalancerExist`         | <p>Whether the application needs to configure a load balancer.</p><p>You generally need this setting only when the Load Balancer is set for SSL Termination.</p><p>The default value is <code>false</code>.</p><p>If set to <code>true</code>, you must also provide a value for SAML\_LB\_SERVER\_NAME.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SAML\_ROLES\_PROP\_NAME                               | `--set global.web.security.saml.rolePropName`              | <p>The attribute in which the identity provider stores the role of the user authenticating in the SAML response.</p><p>The default value is <code>memberOf</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| SAML\_GRANT\_ALL\_PUBLIC                              | `--set global.web.security.saml.grantAllPublic`            | <p>Whether any user authenticated by the identity provider is allowed to login the Collibra DQ application.</p><p>The default value is <code>true</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| SAML\_USER\_NAME\_PROP                                | `--set global.web.security.saml.userNamePropName`          | The name of the attribute in the SAML response that contains the username of the user who is authenticating.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| SAML\_TENANT\_PROP\_NAME                              | `--set global.web.security.saml.tenantPropName`            | <p>If using multi-tenant mode and <code>SAML\_TENANT\_PROP\_FROM\_URL</code> is set to <code>false</code>, this is the variable in which the identity provider stores the tenant name of the user authenticating in the SAML response.</p><p>The default value is <code>tenant</code>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| SAML\_TENANT\_PROP\_FROM\_URL                         | `--set global.web.security.saml.tenantPropFromUrl`         | <p>If using multi-tenant mode, this property controls where the tenant is set to use for authentication.</p><p>Set to <code>true</code> to identify the tenant from the SAML <code>RelayState</code> parameter.</p><p>Set to <code>false</code> to identify the tenant using a SAML response attribute defined by the SAML\_TENANT\_PROP\_NAME property (default= <code>tenant</code>).</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| SAML\_KEYSTORE\_FILE                                  | `--set global.web.security.saml.keyStoreFile`              | <p>The path to the keystore file (p12 or jks format) for SAML SSO. The keystore manages the cryptographic keys and digital certificates used between the service provider (Data Quality & Observability (self-hosted)) and the IdP. For example: <code>file:///etc/ssl/server.p12</code></p><div data-gb-custom-block data-tag="hint" data-style="success" class="hint hint-success"><p>If an error occurs with the SAML\_KEYSTORE\_FILE value, ensure that you added <strong>file:</strong> to the file path in the owl\_env.sh file. For example: <code>SAML\_KEYSTORE\_FILE=file:/home/ec2-user/owl/config/collibraDQ-onelogin-keystore.p12</code></p></div>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SAML\_KEYSTORE\_PASS                                  | `--set global.web.security.saml.keyStorePass`              | The password for the keystore provided in `SAML_KEYSTORE_FILE`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| SAML\_KEYSTORE\_ALIAS                                 | `--set global.web.security.saml.keyStoreAlias`             | The alias of the keypair (private and public) in the keystore used for SAML SSO.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| SAML\_METADATA\_URL                                   | `--set global.web.security.saml.metaDataUrl`               | The URL of the identity provider metadata XML file.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| LOCAL\_REGISTRATION\_ENABLED                          | `--set global.web.security.localUserRegistration.enabled`  | <p>Allows you to display or hide the registration link for local users on the Collibra DQ sign-in page. Because the registration link is displayed on the sign-in page by default, this property is set to <code>true</code>.To display or hide the registration link from the owl-env.sh file, select from the following properties:</p><ul><li><strong>export LOCAL\_REGISTRATION\_ENABLED=true</strong>: Displays the registration link on the sign-in page for local users. This is set to <code>true</code> by default.</li><li><strong>export LOCAL\_REGISTRATION\_ENABLED=false</strong>: Hides the registration link on the sign-in page for local users.</li></ul><p>To display or hide the registration link from a K8s ConfigMap, select the from the following properties:</p><ul><li><strong>LOCAL\_REGISTRATION\_ENABLED:"true"</strong>: Displays the registration link on the sign-in page for local users. This is set to <code>true</code> by default.</li><li><strong>LOCAL\_REGISTRATION\_ENABLED:"false"</strong>: Hides the registration link on the sign-in page for local users.</li></ul><div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>This property must be set globally on deployment.</p></div> |
| CSRF\_TOKEN\_ENABLED                                  | `--set global.web.security.csrfToken.enabled`              | Enables the use of Spring CSRF token implementation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| CSRF\_TOKEN\_IGNORE\_URL\_PATTERN                     | `--set global.web.security.csrfToken.ignorePattern`        | Requests URL patterns to be ignored for CSRF token validation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| CSRF\_TOKEN\_IGNORE\_REFERER\_PATTERN                 | `--set global.web.security.csrfToken.ignoreRefererPattern` | Requests header referer patterns to be ignored for CSRF token validation.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

{% hint style="info" %}
While CORS is still an optional configuration, it is required if you have SAML configured in Collibra DQ, or if you have Collibra DQ behind a load balancer.CORS is also enforced for multi-tenancy.
{% endhint %}

### Optional properties: load balancer

When `SAML_LB_EXISTS` is set to `true`, the following additional properties are available.

<table><thead><tr><th width="152">Kubernetes ConfigMap Metadata Property</th><th>Helm Upgrade Command Argument</th><th>Configuration Description</th></tr></thead><tbody><tr><td>SAML_LB_PORT</td><td><code>--set global.web.security.saml.loadBalancerPort</code></td><td><p>The port number of the load balancer.</p><p>The default value is <code>443</code>.</p></td></tr><tr><td>SAML_LB_SCHEME</td><td><code>--set global.web.security.saml.loadBalancerSchema</code></td><td><p>The protocol of the load balancer.</p><p>The default value is <code>https</code>.</p></td></tr><tr><td>SAML_LB_SERVER_NAME</td><td><code>--set global.web.security.saml.loadBalancerServerName</code></td><td><p>The server or DNS name.</p><p>Usually, the same as <code>SAML_ENTITY_BASEURL</code> without specifying the protocol, for example without <em>https://</em>.</p><p>This property is required and has no default.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>Don't include a trailing slash at the end of this value. A trailing slash can cause the base URL and port number to be parsed incorrectly, which results in authentication failures.</p></div></td></tr></tbody></table>

### Example

Executing the following Helm upgrade command:

```
helm upgrade --namespace <CDQ_NAMESPACE> \
--set global.web.security.saml.enabled=true \
--set global.web.security.saml.entityId=cdq-prod \
--set 'global.web.security.saml.entityBaseUrl=https://cdq-env.domain.com' \
--set 'global.web.security.saml.keyStoreFile=file:///etc/ssl/dqkeystore.jks' \
--set global.web.security.saml.keyStoreAlias=<ALIAS_NAME> \--set global.web.security.saml.keyStorePass=<KEYSTORE_PASS> \--set global.web.security.saml.tenantPropName=tenant \--set global.web.security.saml.rolePropName=memberOf \--set global.web.security.saml.grantAllPublic=true \--set global.web.security.saml.userNamePropName=userName \
<HELM_RELEASE_NAME> /path/to/helm/chart
```

Will result in the web ConfigMap being generated with these corresponding key-value pairs:

```
#enable SAML & show the SAML SSO option on the login page
SAML_ENABLED: 'true'

#set the EntityId of the application to be supplied to the IDP
SAML_ENTITY_ID: cdq-prodSAML_ENTITY_BASEURL: https://cdq-env.domain.com

#set SSL communication properties for SAML
SAML_KEYSTORE_FILE: file:///etc/ssl/dqkeystore.jksSAML_KEYSTORE_PASS: <ALIAS_NAME>SAML_KEYSTORE_ALIAS: <KEYSTORE_PASS>

#in multi-tenant mode set the name of the IDP variable to hold the tenant name
SAML_TENANT_PROP_NAME: tenant

#set the name of the IDP variable to hold the user roles in the responseSAML_ROLES_PROP_NAME: memberOf

#allow login if authenticated to the IDPSAML_GRANT_ALL_PUBLIC: 'true'

#optinally set a property that contains the username in the responseSAML_USER_NAME_PROP: userName
```

{% hint style="success" %}
We recommend synchronizing the clocks of the Identity Provider (IdP) and Service Provider (Collibra DQ) using Network Time Protocol (NTP) to prevent authentication failures caused by significant clock skew.
{% endhint %}

## 2. Enable and configure the SAML SSO option

### Set up SSL for SAML

SSL is required by SAML. If using a custom SAML keystore, follow the instructions provided in [Migrating to a custom SAML keystore](/data-quality-self-hosted/security-configuration/saml-authentication/migrating-to-a-custom-saml-keystore.md).

Otherwise, if using the built-in keystore, configure the following variable:

* Standalone: `SAML_KEYSTORE_PASS`
* Cloud native: `global.web.security.saml.keyStorePass`

{% hint style="info" %}
You can find more information on setting up SSL in the topic, [Setting up SSL (HTTPS)](/data-quality-self-hosted/security-configuration/setting-up-ssl-https.md). In addition, example helm commands are provided in the section "Install with SAML enabled" in [Deploy on self-hosted Kubernetes](/data-quality-self-hosted/installation/installing-data-quality-observability-self-hosted-on-self-hosted-kubernetes/deploy-on-self-hosted-kubernetes.md).
{% endhint %}

### Update settings in Admin Console

When you are ready with your IdP settings, add the final configuration settings in the Admin Console:

{% stepper %}
{% step %}
Sign in to Data Quality & Observability (self-hosted) as an administrator with a username and password to the tenant you want to configure.
{% endstep %}

{% step %}
Click **Admin Console**.
{% endstep %}

{% step %}
Click **User Management**, then click **SAML Security**.\ <i class="fa-chevrons-right">:chevrons-right:</i> The SAML Security Settings page opens.
{% endstep %}

{% step %}
Click the **SAML Enabled** dropdown menu, then select **Enabled**.
{% endstep %}

{% step %}
Under the SAML Enabled dropdown menu, to the far right side of the page, click <img src="https://4121921244-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWCrP7Albs8DfJjIQxUxw%2Fuploads%2Fgit-blob-5d5a447dce86ff44cb212f6fa822c736f80b3704%2FPlusIcon.svg?alt=media" alt="Plus icon" data-size="line">.\ <i class="fa-chevrons-right">:chevrons-right:</i> The Add Meta Data Configuration dialog box appears.
{% endstep %}

{% step %}
Enter the required information.

| Option          | Description                                                                                                                                                                                                                                                                                                                                                             |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Meta-Data URL   | <p>The URL of the identity provider metadata XML file or the location of the downloaded XML file.</p><div data-gb-custom-block data-tag="hint" data-style="warning" class="hint hint-warning"><p>The name of the XML file must begin with the prefix <strong>file:</strong> and typically uses <strong>file:/opt/owl/config/idp-metadata.xml</strong> format.</p></div> |
| Meta-Data Label | The name for this specific configuration.                                                                                                                                                                                                                                                                                                                               |
| IDP URL         | The URL of the Collibra DQ application that is provisioned by the identity provider.                                                                                                                                                                                                                                                                                    |

{% hint style="info" %}
The IDP\_URL is the IdP Initiated SSO login URL. For Example, in Azure, it would be `https://myapps.microsoft.com/signin/<sp-app-id>?tenantId=<sp-tenant-id>`. In multi-tenant mode, this URL should contain a `RelayState` for DQ to set the tenant on completing the SSO.
{% endhint %}
{% endstep %}

{% step %}
Click **Add**.
{% endstep %}

{% step %}
Restart the application and sign in using the SAML SSO option.

{% hint style="info" %}
SAML SSO authentication via the /v3/auth/signin API is not supported.
{% endhint %}

{% hint style="info" %}
SAML authentication is only supported for IdP-initiated requests.
{% endhint %}
{% endstep %}

{% step %}
The user account has only public access. To map user roles from AD to DQ roles, follow the instructions provided in AD Group to Role Mapping.
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}
