# SAML configuration

#### SAML provides secure single sign-on by integrating an identity provider (IdP) with GitProtect, allowing users to authenticate with centralized credentials while ensuring controlled access and compliance.

***

## Overview

**GitProtect** integration works via the **SAML** 2.0 protocol, meaning any platform supporting this protocol can be integrated with **GitProtect**.

The configuration process is straightforward and requires only the entity ID, metadata URL, reply URL, and logout URL (the names may vary depending on the naming conventions used by specific platforms). In some cases, a certificate and a private key are also required.

***

## Configuration

{% hint style="danger" %}
Do not test the integration in the IdP panel (for example, the **Azure Portal**) as it will initiate login from the IdP panel.
{% endhint %}

Below table illustrates **SAML** integration configuration for selected platforms, including [Auth0](#auth0), [Azure AD](#azure-a-d), [CyberArk](#cyberark), [Google](#google), [JumpCloud](#jumpcloud), [Okta](#okta), and [OneLogin](#onelogin).

{% tabs %}
{% tab title="Auth0" %}

<p align="center"><a href="#configuration-in-auth0" class="button primary" data-icon="circle-1">Configuration in Auth0</a> <a href="#xop-auth" class="button primary" data-icon="circle-2">Configuration in GitProtect</a></p>

### Configuration in Auth0

1. Open your **Auth0** admin dashboard, go to **Dashboard** > **Applications** > **Applications**, and hit **Create Application button** in the top-right corner of the screen.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-9c9d470b36738a68430c99189f44ed2869da81ab%2Fimage%20(854).png?alt=media" alt=""><figcaption></figcaption></figure>

2. In **Create application** window enter a unique, custom application name (in this example we'll be using **XoperoAuth0**), select **Regular Web Applications** option, and click **Create**:

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-05a5b6fea0117e8764cb26f6e91e1921c9564a80%2Fimage%20(855).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

3. In the newly created application window go to **Settings** tab, scroll down to the very bottom, and click **Advanced Settings** collapsible to expand it.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-14888aa36314928161b50f6d991480ca0d953771%2Fimage%20(856).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

4. Go to the **Endpoints** tab and locate **SAML** section. Copy the **SAML Metadata URL** and save it for later— it will be needed for **GitProtect** configuration.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-d6746e2e2fc8d4667e5631a32499d28a6e4b4611%2Fimage%20(857).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

5. Scroll back to top and open the **Addons** tab, then toggle the **SAML2 WEB APP** button.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-ae3cd7b0327167f147ab435abf2e5c5047d47ee4%2Fimage%20(858).png?alt=media" alt="" width="522"><figcaption></figcaption></figure>

6. In the window that opens up open the **Settings** tab and enter the **Application Callback URL** as follows:

> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FXtqqVgdwwCltpFvfIUUi%2Fimage.png?alt=media&#x26;token=c9d7cc84-bd42-4ebc-b4d3-d0fc1fab1722" alt=""><figcaption></figcaption></figure>

7. In the same tab, scroll down inside the code input field and uncomment 31st, 32nd and 33rd line, then edit line 32 as follows:

{% code overflow="wrap" %}

```
“callback”: "https://GitProtectManagementServiceURL/auth/SAMLLogoutResponse"
```

{% endcode %}

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FPbPerloeRCAJVZHMZL43%2Fimage.png?alt=media&#x26;token=c119ea68-04f1-4054-aae3-de720b3f416c" alt=""><figcaption></figcaption></figure>

8. Once done, scroll down to the bottom of the addon window and click **Enable** button, then close the window to finish app configuration.

***

### Configuration in GitProtect <a href="#xop-auth" id="xop-auth"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **Auth0**
>
> **Entity ID:** should be the same name you've set as application name in **Auth0** (in this example it's **XoperoAuth0**)

3. Next, paste the previously copied **SAML Metadata URL** in the **Metadata URL** field.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FWVgfQcEhBC8qrlZD5nRt%2Fimage.png?alt=media&#x26;token=365e5f39-196a-4896-892e-c098ea3c0501" alt=""><figcaption></figcaption></figure>

4. Add certificate and password if required.
5. Set up a default **Language** and **Role** for users with **Auth0** **SAML** authentication permissions.
6. Double-check the settings and hit **Save** at the bottom of **Add identity provider tab**.
7. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.
   {% endtab %}

{% tab title="Azure AD" %}

<p align="center"><a href="#configuration" class="button primary" data-icon="circle-1">Configuration in Azure</a> <a href="#xop-azure" class="button primary" data-icon="circle-2">Configuration in GitProtect</a></p>

### Configuration in Azure

1. Login to [portal.azure.com](http://portal.azure.com/), select **Azure Active Directory** and click **Enterprise applications**.
2. Hit the **New application** button and then **Create your own application**.
3. Enter a custom name for the app and select **Integrate any other application you don’t find in the gallery (Non-gallery)**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-6fdd4444d5cc78fa7435d2fe6740b5ab6e1a25d8%2Fimage%20(737).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

4. Confirm the configuration and hit **Create** button.
5. Open the **Single sign-on** tab and select **SAML** method.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-f6868d2d7e84d002e3939e336e4a907729e8cf0f%2Fimage%20(510).png?alt=media" alt=""><figcaption></figcaption></figure>

6. Click the **Edit** button in ① **Basic SAML Configuration** section to edit it.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-ea73e551efa5118ac359464e1c3c240418f021e6%2Fimage%20(609).png?alt=media" alt=""><figcaption></figcaption></figure>

7. Set up a unique **Identifier (Entity ID)** i.e., **SAMLTestAzure**
8. Enter the following URL in **Reply URL (Assertion Consumer Service URL)** section:

> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService

9. Change the **Logout Url (Optional)** to the following address:

> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/auth/SAMLLogoutResponse

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

10. Double-check if the info you have entered is correct and click the **Save** button.
11. Next, click the **Edit** button in ② **Attributes & Claims** section and hit ➕**Add a group claim** button.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-97df8e1c4be0a82112357c7aae4969794daf931d%2Fimage%20(532).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

12. Select **All groups** and go to **Advanced options**. Check the **Filter group** box and fill in the fields as follows:

> **Attribute to match**: Display name\
> **Match with**: Prefix\
> **String**: XONE

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-1115c36f831b27751157ca0ce0fbbd24105daf81%2Fimage%20(527).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

13. Check the **Customize the name of the group claim** checkbox. Enter **xoperogroup** in the **Name** field and save your settings.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-ea5c463ef77c262817d5651479ca1bdef415adc5%2Fimage%20(753).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

14. Go back to **SAML-based Sign-on** page and copy the **App Federation Metadata Url**.
15. Save your settings.
16. Open the **Users and groups** tab and click ➕ **Add user/group** button. Select users you want to be able to login to **GitProtect** and save your settings.

***

### Configuration in GitProtect <a href="#xop-azure" id="xop-azure"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **Azure AD**
>
> **Entity ID:** should be the same name you've set in **Identifier (Entity ID)** in **Azure** (in this example it's **SAMLTestAzure**)

3. Next, paste the previously copied **App Federation Metadata Url** in the **Metadata URL** field.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F6MKO3XbzmdUimuykqYRl%2Fimage.png?alt=media&#x26;token=56238f62-b7a1-4c93-85d6-6553c5c5635d" alt=""><figcaption></figcaption></figure>

4. Add certificate and password if required.
5. Set up a default **Language** and **Role** for users with **Azure** **SAML** authentication permissions.
6. Double-check the settings and hit **Save** at the bottom of **Add identity provider tab**.
7. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.
   {% endtab %}

{% tab title="CyberArk" %}

<p align="center"><a href="#cyberark-side" class="button primary" data-icon="circle-1">Configuration in CyberArk</a> <a href="#xop-cyber" class="button primary" data-icon="circle-2">Configuration in GitProtect</a></p>

### Configuration in CyberArk

1. Log in to your **CyberArk** account. Expand **Apps & Widgets** dropdown menu and select **Web Apps**.
2. Click **Add Web Apps** button in the top-right corner.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FKeWVyPKPWC3Y1odfuHwp%2Fimage9.png?alt=media&#x26;token=b1ffbbda-fa1b-4b3a-9a36-181911d9f5f7" alt=""><figcaption></figcaption></figure>

3. Go to **Custom** tab, find **SAML** on the list, and click the **Add** button next to it.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fqs7JwTmScoyHz4BA0UtK%2Fimage5.png?alt=media&#x26;token=1691f9f2-7771-4ef0-8737-1d7aca8a6a31" alt=""><figcaption></figcaption></figure>

4. Confirm adding **SAML** as a web app.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FK4RUFsJclb8nr4LdQwuH%2Fimage3.png?alt=media&#x26;token=2483f145-ea2e-4619-8ac5-27f201779411" alt=""><figcaption></figcaption></figure>

5. You’ll be redirected to **SAML** web app settings. Start with setting up a custom name for the app (i.e., **XONESAML**).

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-649ecd42d7a56c6777e900160f92eee80c1bd4ce%2Fimage%20(863).png?alt=media" alt=""><figcaption></figcaption></figure>

6. Next, set up a unique **Application ID** in **Advanced** section and **Save** your settings (in this example we will be using **XONESAMLID**).

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-e1e116ac45799821383b7684ed646a3c83785b28%2Fimage%20(864).png?alt=media" alt=""><figcaption></figcaption></figure>

7. Open the **Trust** tab and copy **Metadata URL** in **Identity Provider Configuration** section (it will be needed later for **GitProtect** configuration).

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-56cffe17e402a0dde0062dc640f17742c9a67db7%2Fimage%20(865).png?alt=media" alt=""><figcaption></figcaption></figure>

8. Next, scroll down to **Service Provider Configuration** section, set it to **Manual Configuration**, and enter the following data:

> In **SP Entity ID / Issuer / Audience** type your previously defined **Application ID** (in this example it is **XONESAMLID**)
>
> In **Assertion Consumer Service (ACS) URL** enter:
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService
>
> In **Single Logout URL** enter:
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/auth/SAMLLogoutResponse

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-64b907ef48d905789472b873c0a3dc43c9d1a205%2Fimage%20(461).png?alt=media" alt="" width="563"><figcaption><p><em>Manual configuration overview.</em></p></figcaption></figure>

9. Go to **SAML Response** tab and scroll down to **Script to set custom claims** section. Enter the following script and press the **Save** button:

{% code overflow="wrap" lineNumbers="true" %}

```xml
setFilteredAttributeArray("xoperogroup", LoginUser.RoleNames, "XONE.*");
setFilteredAttributeArray("xoperogroup", LoginUser.GroupNames, "XONE.*");
```

{% endcode %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-f023b1c8b9d7fca010e4712a1a7eac1ff5ffde0b%2Fimage%20(866).png?alt=media" alt=""><figcaption></figcaption></figure>

10. Head over to **Permissions** tab, click **Add** button, select all users you want to authorize to use SAML integration, and **Save** your settings.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-2d1538edc6bd081a4c1ea1519001f16783c694a4%2Fimage%20(867).png?alt=media" alt=""><figcaption></figcaption></figure>

***

### Configuration in GitProtect <a href="#xop-cyber" id="xop-cyber"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **CyberArk**
>
> **Entity ID:** should be the same name you've set in **Application ID** in **CyberArk** (in this example it's **XONESAMLID**)

3. Next, paste the previously copied **Metadata URL** in the **Metadata URL** field.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FhSnzsSYSAL9SWZcZzaZh%2Fimage.png?alt=media&#x26;token=badc240d-6962-43af-ba32-fd8f1b8d65cf" alt=""><figcaption></figcaption></figure>

4. Add certificate and password if required.
5. Set up a default **Language** and **Role** for the users with **CyberArk** **SAML** authentication permissions.
6. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-5072d750e3820b462d0c609ae1a79fc83a3cdc2d%2Fimage%20(459).png?alt=media" alt="" width="554"><figcaption><p><em><strong>XMS</strong> login page with <strong>CyberArk</strong> SAML integrity set up.</em></p></figcaption></figure>
{% endtab %}

{% tab title="Google" %}

<p align="center"><a href="#configuration-in-google" class="button primary" data-icon="circle-1">Configuration in Google</a> <a href="#xop-google" class="button primary" data-icon="circle-2">Configuration in GitProtect</a></p>

### Configuration in Google

1. Login to your **Google** admin console. Next, click the burger menu icon ![](https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-694411babd57fec63f89d79fa43ab1257cfed862%2Fimage%20\(423\).png?alt=media) in the top-left corner of the screen and go to ![](https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-3fae63fb4a797c02564b51bf448de912e6a537b6%2Ficon%20\(3\).png?alt=media)**Apps** > **Web and mobile apps**. Click **Add app** and select **Add custom SAML app** from the drop-down menu.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-02841791951a7ffdef57fafa1c47585caebc267a%2Fimage%20(425).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

2. In the app details page create a custom name for your app and type it in **App name** field, then click **Continue**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-485ec058c0824e1afb8338f21a114fbfc79058f2%2Fimage%20(426).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

3. Next, click **DOWNLOAD METADATA** button under **Option 1: Download IdP metadata**. Upload the downloaded file to your web server and save its URL (it will be needed later for **GitProtect** configuration).

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-e70af299c023d8ef0c78d2b5973e8b40357190c3%2Fimage%20(427).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

4. Click **Continue** and in the next window screen fill the **Service provider details** as follows:

> **ACS URL:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService
>
> **Entity ID:** custom, globally unique name (in this example we'll be using **SAMLGOOGLE**)
>
> **Start URL (optional):** your <mark style="color:red;">**GitProtectManagementServiceURL**</mark>

{% hint style="info" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-4eb54c41441c392e75f7017063773eafd8f8c8e1%2Fimage%20(428).png?alt=media" alt=""><figcaption></figcaption></figure>

5. Once done, click **Continue** and on the next page hit **Finish**.
6. Back on the admin console main page, click the burger menu in the top-left corner, go to **Apps** > **Web and mobile apps**, then select your newly created SAML app.
7. Click **User access** and select either **On for everyone** or **Off for everyone** based on your organization's needs.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-cf5812d4e200ef08afd6d1b29fdeb01467733111%2Fimage%20(429).png?alt=media" alt=""><figcaption></figcaption></figure>

8. Once done, hit **Save** to finish the configuration process.

***

### Configuration in GitProtect <a href="#xop-google" id="xop-google"></a>

1. Login to your XMS web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **Google**
>
> **Entity ID:** should be the same name you've set in Google (in this example it's **SAMLGOOGLE**)

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FF3O3VB2B18gmjCnb9ENh%2Fimage.png?alt=media&#x26;token=f4c9dc5b-3c68-44ac-b56f-a8e090d6edd6" alt=""><figcaption></figcaption></figure>

3. Next, paste the previously copied metadata URL in the **Metadata URL** field.
4. Add certificate and password if required.
5. Set up a default **Language** and **Role** for the users with **Google** **SAML** authentication permissions.
6. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.
   {% endtab %}

{% tab title="JumpCloud" %}

<p align="center"><a href="#configuration-in-jumpcloud" class="button primary" data-icon="circle-1">Configuration in JumpCloud</a> <a href="#xop-jump" class="button primary" data-icon="circle-2">Configuration in GitProtect</a></p>

### Configuration in JumpCloud

1. Log in to the **JumpCloud Admin Portal**, navigate to **USER AUTHENTICATION** > **SSO Applications**, and then click **+ Add New Application**.
2. In **Create New Application Integration** window search for **Custom Application**, select it, and hit **Next**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-5ffe5ce51baea292b1ae53f4ad7f14bfd9f53445%2Fimage%20(435).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

3. Check **Manage Single Sign-On (SSO)** checkbox and select **Configure SSO with SAML** option., then hit **Next**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-774dce92061547da057ce539e9e65fec0736391b%2Fimage%20(436).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

4. In **Enter general info** set a unique custom application name (in this example we'll be using **XONE**), type it in **Display Label** field, and click **Save Application**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-6077f640e91229dc1a53c558554188ee7d64398a%2Fimage%20(437).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

5. In your new application settings go to **SSO** tab and fill the fields as follows:

> **IdP Entity ID:** your unique application name (in this example it's **XONE**)
>
> **SP Entity ID:** your unique application name (in this example it's **XONE**)

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-059ac63448c3ba30fa4c4d8b06bfec65c1c9fdd8%2Fimage%20(438).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

6. Click the **Copy Metadata URL** button under **JumpCloud Metadata** at the top and save it for later— it will be needed for **GitProtect** configuration in **XMS**.
7. Scroll down, set **SAMLSubject NameID** to **email**, and for **SAML Subject NameID Format** select **urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress** from the drop down menu.

{% hint style="warning" %}
The **Signature Algorithm** by default is `RSA-SHA256`— leave it as is.
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-8c504e54c39012b32b259e3db00e95d943f15a22%2Fimage%20(853).png?alt=media" alt=""><figcaption></figcaption></figure>

8. In **Sign** section select **Assertion**. The IDP URL should read:

> <kbd><https://sso.jumpcloud.com/saml2/xone></kbd>

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-a2374e82bfc4e5c053bc0996840b48d08261dac6%2Fimage%20(439).png?alt=media" alt="" width="442"><figcaption></figcaption></figure>

{% hint style="danger" %}
If you also want to login to GitProtect from the JumpCloud panel, additionally, add your **XoperoONEManagementServiceURL** in **Login URL** field.
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-fe39b85da942dc9c1688ccae028cea159654469b%2Fimage%20(366).png?alt=media" alt="" width="495"><figcaption><p><em>Correctly filled <strong>Login URL</strong> example.</em></p></figcaption></figure>

9. In **Attributes** section add a new logout response by filling the fields as follows:

> **Service Provider Attribute Name:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/auth/SAMLLogoutResponse
>
> **JumpCloud Attribute Name:** select **email** from the drop-down menu

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-ece53e64a8a0b140357de1b73c10605f567b64c3%2Fimage%20(440).png?alt=media" alt=""><figcaption></figcaption></figure>

10. Click **Save** to update the connector and move to the **User Groups** tab. Select the groups/users you want to enable JumpCloud SAML authorization for GitProtect login to.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-f0585d7fa670045744d46140b103667b01507190%2Fimage%20(441).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

11. Double-check if the data you entered is correct and save your configuration.

***

### Configuration in GitProtect <a href="#xop-jump" id="xop-jump"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

   <figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>
2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **JumpCloud**
>
> **Entity ID:** should be the same name you've set in **SSO IDP Entity ID** in **JumpCloud** (in this example it's **XONE**)

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fu54mr2bkYmWUvjq4gUIB%2Fimage.png?alt=media&#x26;token=aed8c0a7-0e41-4518-9dd5-575a72e530df" alt=""><figcaption></figcaption></figure>

3. Next, paste the previously copied **Metadata URL** in the **Metadata URL** field.
4. Add certificate and password if required.
5. Set up a default **Language** and **Role** for the users with **JumpCloud** **SAML** authentication permissions.
6. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.
   {% endtab %}

{% tab title="Okta" %}

<p align="center"><a href="#general-requirements-and-limitations" class="button primary" data-icon="circle-1">Requirements and limitations</a> <a href="#configuration" class="button primary" data-icon="circle-2">Configuration in Okta</a> <a href="#xop-okta" class="button primary" data-icon="circle-3">Configuration in GitProtect</a></p>

### Requirements and limitations

**PKCS #12** file with **X.509** certificate and private key (usually a .pfx file; can be password protected) <mark style="color:red;">**must be included**</mark> in IdP configuration in **GitProtect**. **X.509** certificate file (usually a .crt file) for signature verification on IdP side <mark style="color:red;">**must be included**</mark> in application configuration defined in **Okta** panel.

Both files contain the same certificate. The **PKCS #12** file also contains a private key to this certificate.

{% hint style="warning" %}
If the **PKCS #12** file is password protected, add this password to the IdP configuration in **GitProtect** web panel.
{% endhint %}

***

### Configuration in Okta

1. In **Admin** dashboard (in the right-top corner of the window) expand the **Applications** tab and select the **Applications** option.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-852bd303508f1440f2f783f22065c5bed373df80%2Fimage%20(878).png?alt=media" alt=""><figcaption></figcaption></figure>

2. Hit **Create App Integration** button and select **SAML 2.0**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-373fe334bc079ff4772887c6e9ec7373b5932a3a%2Fimage%20(716).png?alt=media" alt=""><figcaption></figcaption></figure>

3. In **General Settings** enter a unique application name and move to **Configure SAML** section.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-7c9fea70e367fef3054d2df3cdf976e2ae77e929%2Fimage%20(717).png?alt=media" alt=""><figcaption></figcaption></figure>

4. In **Configure SAML** tab set the **Single sign-on URL** parameter as follows:

> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

5. In **Audience URL** type your unique application name that you've previously set in **General Settings** tab.
6. Click **Show advanced settings** and upload the certificate file to **Signature Certificate** field. Check **Allow application to initiate Single Logout** checkbox in the **Enable Single Logout** section— <mark style="color:red;">**it's necessary**</mark>.
7. You will now see two additional fields under **Enable Single Logout**— fill them as follows:

> **Single Logout URL:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/auth/SAMLLogoutResponse
>
> **SP Issuer:** your unique application name that you've previously set in **General Settings** tab (in this example it's **MyOktaApp**)

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-0a7ade8e4945d426ea9f41f01aaebadc1eda9b03%2Fimage%20(505).png?alt=media" alt=""><figcaption></figcaption></figure>

8. Next, go to **Group Attribute Statements** section and fill it as follows:

> **Name:** xoperogroup
>
> **Starts with:** XONE

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-a7e000f6c38ea8144e9634eca569abe9fd59a483%2Fimage%20(536).png?alt=media" alt=""><figcaption></figcaption></figure>

9. Double-check if the data you've entered is correct and click **Next**. In the next window select **I'm an Okta customer adding an internal app** optio&#x6E;*,* then hit **Finish**.
10. Open the created application and go to **Sign On** tab.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-c8cbcbb0c7a825c1af831a0d0aa44d031925854d%2Fimage%20(620).png?alt=media" alt=""><figcaption></figcaption></figure>

11. In **SAML Signing Certificates** section select your uploaded certificate and click **Actions** > **View IdP metadata**. Copy the URL of the opened page— it will be required later in **GitProtect** configuration.
12. Once done, go to the **Assignments** tab.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-351695b855252e417c1da4d399da29679562c4f2%2Fimage%20(736).png?alt=media" alt=""><figcaption><p><em><strong>Assignments</strong> tab view.</em></p></figcaption></figure>

13. Assign the application to a selected user, or group. Hit **Done** to finish the configuration.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-1d86c2bda2ffb8aa3a3a11d98b3fe614c60dea6c%2Fimage%20(698).png?alt=media" alt=""><figcaption></figcaption></figure>

***

### Configuration in GitProtect <a href="#xop-okta" id="xop-okta"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **Okta**
>
> **Entity ID:** should be the same name you've set in **General Settings** in Okta (in this example it's **MyOktaApp**)

3. Next, paste the previously copied **IdP metadata URL** in the **Metadata URL** field.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F2RJSz3LDoCq2pPvyiyb0%2Fimage.png?alt=media&#x26;token=9318598a-91b0-4e5e-828a-00bd6061fb4b" alt=""><figcaption></figcaption></figure>

4. Add the required **certificate** and a **password** to the **Password Manager**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FjRTAWElKHjbkbmABrf9s%2Fimage.png?alt=media&#x26;token=70d6bcde-2ab9-4270-b9f6-37996dbc5108" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You can read more about adding a new password to the **Password Manager** in [Adding a new password](https://github.com/axurban/kb_gitprot/blob/kb_gitprot_en/login-and-password/security-assertion-markup-language-saml/broken-reference/README.md) KB article.
{% endhint %}

5. Set up a default **Language** and **Role** for the users with **Okta SAML** authentication permissions.

{% hint style="info" %}
Learn more about roles in [Roles and permissions](https://helpcenter.gitprotect.io/management/user-accounts/roles-and-permissions) KB article.
{% endhint %}

6. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.
   {% endtab %}

{% tab title="OneLogin" %}

<p align="center"><a href="#configuration-in-onelogin" class="button primary" data-icon="circle-1">Configuration in OneLogin</a> <a href="#xop-onelog" class="button primary" data-icon="circle-2">Configuration in GitProtect</a> <a href="#group-mapping" class="button primary" data-icon="circle-3">Group mapping</a></p>

### Configuration in OneLogin

1. Login to your **OneLogin** admin console and go to **Applications** > **Applications** > **Add App**.
2. Search for **SAML Custom Connector (Advanced)** and select the first result from the search results.
3. Next, enter a unique, custom name for the app in **Display Name** field and hit **Save**.
4. Open the **Configuration** settings of your custom app, fill the displayed fields as follows and hit **Save** to save the configuration:

> **Audience (EntityID):** a unique, custom name to identify the app on the IdP side (in this example we'll be using **XOPEROSAML**)
>
> **ACS (Consumer) URL Validator\*:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService
>
> **ACS (Consumer) URL\*:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/Auth/AssertionConsumerService
>
> **Single Logout URL:**
>
> <mark style="color:red;">**<https://GitProtectManagementServiceURL>**</mark>/auth/SAMLLogoutResponse

{% hint style="warning" %}
In the above address, change <mark style="color:red;">**GitProtectManagementServiceURL**</mark> to your unique **Management Service** URL. You can find it in your login URL— it's the first part of the address (i.e., in <mark style="color:red;">**<https://12a345bc-67de-8901-2345-f6gh78901i2j.ada.xopero.com>**</mark>**/authorization/login** the part highlighted in <mark style="color:red;">**red**</mark> is the URL you need to copy).
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-4d699457cf3d0a8e215f777c432561de9c24c6a8%2Fimage%20(430).png?alt=media" alt="" width="532"><figcaption></figcaption></figure>

5. Click the **SSO** menu option on the left. Change **SAML Signature Algorithm** to **SHA-256**. Copy the **Issuer URL** value and save it for later— it will be needed for **GitProtect** configuration.

{% hint style="warning" %}
To properly configure logout, the private key of the entity that receives the logout request is <mark style="color:red;">**required**</mark>. You <mark style="color:red;">**must**</mark> upload a file with the .pfx extension to **GitProtect** for **OneLogin** integration to work properly. Unfortunately, the .pfx file cannot be downloaded directly from **OneLogin**— you have to use your own certificate or generate it for implementation.
{% endhint %}

{% hint style="success" %}
**OneLogin** offers a form where you can generate a self-signed certificate: <https://developers.onelogin.com/saml/online-tools/x509-certs/obtain-self-signed-certs>
{% endhint %}

6. Save all your settings. Open **Users** settings in the left-hand side menu, select user(s) you want to have permission to use **OneLogin** for **GitProtect** authentication, then in the window that pops-up, check the **Allow user to sign in** checkbox and hit **Save**.

{% hint style="danger" %}
Manually edited login details <mark style="color:red;">**always**</mark> override those set by rules or with provisioned attributes.
{% endhint %}

7. In the **Applications** tab, use the **(+)** button to add proper permissions to your custom application.

***

### Configuration in GitProtect <a href="#xop-onelog" id="xop-onelog"></a>

1. Login to your **Management Service** web panel, go to **Settings** (bottom-left corner in the left-hand side menu) and select **External Identity Providers**.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fx1k68FJfLE7ZyTjjRdSu%2Fimage.png?alt=media&#x26;token=ca10c020-7d21-4dcc-824a-c5e30a9ad8ba" alt=""><figcaption></figcaption></figure>

2. Click **Add new provider** button and fill in the details:

> **Name:** your own custom name, i.e., **OneLogin**
>
> **Entity ID:** should be the same name you've set in **Configuration** (**Audience (EntityID)**) in OneLogin (in this example it's **XOPEROSAML**)

3. Next, paste the previously copied **Issuer URL** in the **Metadata URL** field.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2FrpgSLWDJhRaMGBtmYaiw%2Fimage.png?alt=media&#x26;token=587122b4-e150-41ce-8822-792e2afc0edd" alt=""><figcaption></figcaption></figure>

4. Upload the previously downloaded **OneLogin** .pfx certificate file and add a password to it if required.
5. Set up a default **Language** and **Role** for the users with **OneLogin** **SAML** authentication permissions.
6. Click **Save** to finish the setup. You can now log out and test your configured **SAML** login integration.

{% hint style="warning" %}
It's important to understand that with this integration method, you <mark style="color:red;">**cannot**</mark> initiate the login from the **OneLogin** application page. Instead, the login <mark style="color:red;">**must always**</mark> be triggered directly from the **GitProtect** side.
{% endhint %}

***

### Group mapping

{% hint style="success" %}
You can use group mapping if you have many users whom you want to assign different permissions to.
{% endhint %}

{% hint style="danger" %}
Each new login to **GitProtect** resets permissions to default— if you change permissions for a user it will only apply <mark style="color:red;">**during the active session**</mark>. Relogging the user will make permissions return to default.
{% endhint %}

{% hint style="warning" %}
Group mapping configuration <mark style="color:red;">**must**</mark> be done both in **OneLogin** and **GitProtect**— start by configuring the **OneLogin** side.
{% endhint %}

1. Go to **User** > **Roles** and create roles you would like to use (i.e., **XONE viewers**, **XONE admins**, etc.). Assign these roles to different users.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-19d4b2db7526004f1bfb126a9959ae8823bc1514%2Fimage%20(431).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

2. Next, in **Applications** tab, edit the SAML application. Go to **Parameters** and use the **(+)** icon to create a new parameter. In **Name** field enter <kbd><http://schemas.xmlsoap.org/claims/Group></kbd>. Check both **Flags** (**Include in SAML assertion** and **Multi-value parameter**) and save your settings.
3. In **Default if no value selected** section select **User Roles** and **Semicolon Delimited input (Multi-value output)** from the drop-down menu, and save the parameter.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-857bda7ae87cc8a45ce7d584666a8113d7a44912%2Fimage%20(432).png?alt=media" alt="" width="539"><figcaption></figcaption></figure>

4. In your **GitProtect** console go to ⚙️ **Settings** > **External Identity Providers** and select the IdP you want to edit.
5. Click the **Group mapping** button in the bottom left. In **Claim type** field enter <kbd><http://schemas.xmlsoap.org/claims/Group></kbd>, and in **Claim value** field enter the name of the role, e.g., **XONE viewers**. Select roles and permissions you want this group to have, then save. Repeat this step for each role/permission you want to create.

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fgit-blob-a222ebe2d1bdd1e25e1fe0e516a4e99af7e45b2a%2Fimage%20(433).png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

***

## Using IdP authentication method

To log in to **GitProtect** using a SAML-integrated identity provider, always start from the **GitProtect** panel. Do not log in from the IdP panel (for example, the **Okta** panel) to the application configured for **GitProtect** — the only exception is **JumpCloud**, which provides a built-in option to log in directly from its panel.

To enable an existing **GitProtect** user to log in via an identity provider (IdP), you must turn on the IdP login toggle for that account (⚙️ **Settings** > **Accounts** > **Edit**). Once an account is set to use an identity provider (IdP) for authentication, it cannot be switched back. To change the authentication method, **you must delete the account and add it again**.

{% hint style="danger" %}
Enabling IdP login for the root admin account will prevent logging into the system when an external provider is unavailable.
{% endhint %}

<figure><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2Fbxj6c7crGtsq59nuOkEq%2Fimage.png?alt=media&#x26;token=96efa656-fdd2-4488-a85b-19d15d65194d" alt=""><figcaption></figcaption></figure>
