> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# SAML SSO

> Integrate your SAML 2.0 identity provider to manage organization membership.

Simplify organization membership by integrating your organization's identity provider (IdP) with VESSL Cloud through Security Assertion Markup Language (SAML) Single Sign-On (SSO). Once configured, members sign in to VESSL Cloud with the accounts they already use in your IdP.

## Prerequisites

VESSL Cloud integrates with any identity provider that supports the SAML 2.0 protocol. Commonly used providers include:

* [Microsoft Entra](https://www.microsoft.com/en-us/security/business/microsoft-entra) (formerly Azure Active Directory)
* [AWS IAM Identity Center](https://aws.amazon.com/iam/identity-center/)
* [Okta](https://okta.com)

Before you start, make sure that:

* You are an organization admin. Only admins can configure SAML SSO.
* SAML SSO is enabled for your organization. If the **SAML SSO** menu does not appear under **Settings**, contact [support@vessl.ai](mailto:support@vessl.ai).

<Note>
  - The Assertion Consumer Service (ACS) endpoint supports HTTP-POST bindings only.
  - IdP-initiated SSO and Single Logout (SLO) are not supported.
</Note>

## Find your SP configuration

In the sidebar, select **Settings**, then select **SAML SSO** under **Organization**.

<Frame>
  <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/vessl-saml-sso-settings.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=acbb68a92eb6084e09eb7d38c90867a2" alt="SAML SSO settings page with SP Configuration URLs and an Add SAML SSO button" width="1920" height="590" data-path="images/saml-sso/vessl-saml-sso-settings.png" />
</Frame>

The **SP Configuration** section shows the two service provider (SP) URLs your identity provider needs. Both URLs are unique to your organization, so copy them directly from this page:

* **VESSL Cloud's metadata**: the SAML Entity ID, also called the metadata URL. Opening this URL serves the raw metadata XML, which some identity providers require during configuration.
* **SAML ACS URL**: the endpoint that receives SAML responses from your identity provider.

## Configure your identity provider

Choose the setup instructions that match your identity provider.

<Tabs>
  <Tab title="Microsoft Entra">
    <Steps>
      <Step title="Sign in to Microsoft Entra">
        Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com).
      </Step>

      <Step title="Create the VESSL Cloud application">
        Navigate to **Enterprise applications** using the search bar.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-enterprise-apps.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=171075f0408cd20c217d5786a7e233a3" alt="Microsoft Entra search bar showing the Enterprise applications service" width="709" height="281" data-path="images/saml-sso/entra-enterprise-apps.png" />
        </Frame>

        Click **+ New Application**, then select **+ Create your own application**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-create-application.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=38ab53c85c334a8230d437c1dd2ae0b0" alt="Enterprise applications page with the New application button highlighted" width="612" height="256" data-path="images/saml-sso/entra-create-application.png" />
        </Frame>

        Enter an application name like `VESSL Cloud`, select **Non-gallery** application, and click **Create**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-name-app.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=a714f19c6a31083824725b55dfc05306" alt="Create your own application panel with the non-gallery option selected" width="576" height="499" data-path="images/saml-sso/entra-name-app.png" />
        </Frame>
      </Step>

      <Step title="Add users">
        After creating the application, you land on the **Overview** page. Click **1. Assign users and groups**, then select **+ Add user**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-assign-users.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=a24c527f57ca3733c0b8216da480dae4" alt="Entra application overview page with the assign users and groups step" width="780" height="412" data-path="images/saml-sso/entra-assign-users.png" />
        </Frame>

        Add the users who will use VESSL Cloud, then click **Assign**.
      </Step>

      <Step title="Set up SAML SSO">
        Return to the **Overview** page and click **2. Set up single sign-on**. Select **SAML** as the sign-on method.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-select-saml.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=70935a10dfe22ec09769c08e2160e51d" alt="Single sign-on method selection page with SAML highlighted" width="751" height="448" data-path="images/saml-sso/entra-select-saml.png" />
        </Frame>

        In **Basic SAML Configuration** (Section 1), set **Identifier (Entity ID)** to the **VESSL Cloud's metadata** URL and **Reply URL** to the **SAML ACS URL** from [Find your SP configuration](#find-your-sp-configuration), then click **Save**.
      </Step>

      <Step title="Copy the metadata URL">
        Copy the **App Federation Metadata URL** from Section 3. You will paste it into VESSL Cloud in the next section.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/entra-metadata-url.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=70cc0ed9f7455cc6035110568e3c5c0a" alt="SAML certificates section showing the app federation metadata URL" width="764" height="273" data-path="images/saml-sso/entra-metadata-url.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="AWS IAM Identity Center">
    <Steps>
      <Step title="Open Applications">
        In the AWS console, go to **IAM Identity Center** → **Applications**, then click **Add application**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/aws-add-application.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=0ddb0a3ce958489e324c05eaedd347f9" alt="IAM Identity Center applications page with the add application button" width="1517" height="484" data-path="images/saml-sso/aws-add-application.png" />
        </Frame>
      </Step>

      <Step title="Choose the application type">
        Select **I have an application I want to set up**, then choose **SAML 2.0**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/aws-choose-saml.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=cbe67bdff19d224dad35a9275e805465" alt="Application type selection with SAML 2.0 chosen" width="1517" height="1065" data-path="images/saml-sso/aws-choose-saml.png" />
        </Frame>
      </Step>

      <Step title="Configure the application">
        On the configuration page, set a recognizable **Display name** (for example, `VESSL Cloud`). **Download** the **IAM Identity Center SAML metadata file**; you will paste its contents into VESSL Cloud later.

        In **Application metadata**, choose **Manually type your metadata values** and fill in the fields using the URLs from [Find your SP configuration](#find-your-sp-configuration):

        | Field                     | Value                              |
        | ------------------------- | ---------------------------------- |
        | Application ACS URL       | The **SAML ACS URL**               |
        | Application SAML audience | The **VESSL Cloud's metadata** URL |

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/aws-configure-app.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=b69831c3464f6bea6b95a0f5369ad2ec" alt="Application configuration page with display name and metadata sections" width="1517" height="966" data-path="images/saml-sso/aws-configure-app.png" />
        </Frame>
      </Step>

      <Step title="Edit attribute mappings">
        From the application detail page, go to **Actions** → **Edit attribute mappings**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/aws-edit-attribute-mappings.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=bb6c6d293eaf179141614e4af674bb26" alt="Application actions menu with edit attribute mappings selected" width="981" height="455" data-path="images/saml-sso/aws-edit-attribute-mappings.png" />
        </Frame>

        Enter the mappings as follows:

        | User attribute | Maps to this string value | Format    |
        | -------------- | ------------------------- | --------- |
        | `Subject`      | `${user:email}`           | transient |
        | `email`        | `${user:email}`           | basic     |
        | `username`     | `${user:email}`           | basic     |

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/aws-attribute-mappings.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=b1979bf2521b75fea9e78fc3e0648e36" alt="Attribute mappings table with subject, email, and username rows" width="1004" height="455" data-path="images/saml-sso/aws-attribute-mappings.png" />
        </Frame>
      </Step>
    </Steps>

    <Tip>
      After finishing the IdP setup, use `username` for **IdP User ID** and `email` for **IdP User email attribute** in VESSL Cloud. See [IdP attribute reference](#idp-attribute-reference).
    </Tip>
  </Tab>

  <Tab title="Okta">
    <Steps>
      <Step title="Sign in to Okta">
        Sign in to your Okta organization with an administrator account.
      </Step>

      <Step title="Create the VESSL Cloud application">
        In the admin console, go to **Applications** → **Applications**, then click **Create App Integration**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/okta-create-app-integration.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=f47086ed17f1c1508f3f1bba743ad11e" alt="Okta applications page with the create app integration button" width="746" height="306" data-path="images/saml-sso/okta-create-app-integration.png" />
        </Frame>

        Choose **SAML 2.0** as the sign-on method, then click **Next**. Enter an app name like `VESSL Cloud`, then click **Next**.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/okta-app-name.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=048c3c7de2e654c3370e960f70780805" alt="Okta app integration wizard with the SAML 2.0 option selected" width="783" height="559" data-path="images/saml-sso/okta-app-name.png" />
        </Frame>
      </Step>

      <Step title="Set up SAML SSO">
        Fill in the required fields using the URLs from [Find your SP configuration](#find-your-sp-configuration):

        | Field                       | Value                              |
        | --------------------------- | ---------------------------------- |
        | Single sign-on URL          | The **SAML ACS URL**               |
        | Audience URI (SP Entity ID) | The **VESSL Cloud's metadata** URL |

        Under **Attribute Statements**, configure the following attributes:

        | Name         | Name format   | Value        |
        | ------------ | ------------- | ------------ |
        | `user.email` | `Unspecified` | `user.email` |
        | `user.login` | `Unspecified` | `user.login` |

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/okta-attribute-statements.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=d23f3d133766ca1cbe279bef83b0e76d" alt="Okta attribute statements table with user email and user login rows" width="740" height="341" data-path="images/saml-sso/okta-attribute-statements.png" />
        </Frame>

        Click **Next**, then click **Finish** to create the application.
      </Step>

      <Step title="Add users">
        On the app settings page, go to **Assignments**. Select **Assign** → **Assign to People** to add the users who will use VESSL Cloud.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/okta-assign-users.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=b082e1a8622a6f43b3e9adff175a50b0" alt="Okta assignments tab with the assign to people option" width="833" height="357" data-path="images/saml-sso/okta-assign-users.png" />
        </Frame>
      </Step>

      <Step title="Copy the metadata URL">
        Navigate to the **Sign On** tab. In the **SAML 2.0** section, copy the **Metadata URL**. You will paste it into VESSL Cloud in the next section.

        <Frame>
          <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/okta-metadata-url.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=96e2136998414d6a397b6132776507ac" alt="Okta sign on tab showing the SAML metadata URL" width="703" height="515" data-path="images/saml-sso/okta-metadata-url.png" />
        </Frame>
      </Step>
    </Steps>
  </Tab>

  <Tab title="Custom identity provider">
    <Steps>
      <Step title="Provide the required information">
        Access your identity provider's admin console and register VESSL Cloud using the URLs from [Find your SP configuration](#find-your-sp-configuration).
      </Step>

      <Step title="Copy the metadata URL or XML">
        After completing the setup, copy the metadata URL or XML provided by your identity provider. You will paste it into VESSL Cloud in the next section.
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Configure VESSL Cloud

After setting up your identity provider, register its metadata in VESSL Cloud.

<Steps>
  <Step title="Open SAML SSO settings">
    In the sidebar, select **Settings**, then select **SAML SSO** under **Organization**.
  </Step>

  <Step title="Add SAML SSO">
    In the **IdP Configuration** section, click **Add SAML SSO**.
  </Step>

  <Step title="Enter the IdP metadata">
    In **Metadata XML**, choose **XML** to paste the metadata XML, or choose **URL** to enter the metadata URL you copied from your identity provider.

    <Frame>
      <img src="https://mintcdn.com/dora/gX3T8CXa13Bm4fHt/images/saml-sso/vessl-add-saml-sso.png?fit=max&auto=format&n=gX3T8CXa13Bm4fHt&q=85&s=b56340f85cb6002bd992a8f869a13063" alt="IdP Configuration form with metadata XML, IdP user ID, and IdP user email attribute fields" width="960" height="515" data-path="images/saml-sso/vessl-add-saml-sso.png" />
    </Frame>
  </Step>

  <Step title="Enter the attribute names">
    Fill in **IdP User ID** and **IdP User email attribute** with the attribute names your identity provider uses in its SAML response. The correct values depend on your provider; see [IdP attribute reference](#idp-attribute-reference).
  </Step>

  <Step title="Save the configuration">
    Click **Save**. A confirmation appears when SAML SSO is configured. If saving fails with a `Failed to configure SAML SSO` error that mentions `invalid IdP metadata`, the metadata could not be parsed. Check that you pasted the complete metadata XML or entered the correct metadata URL, then try again.
  </Step>
</Steps>

<Warning>
  Saving enforces SAML SSO for the organization: members must sign in through your identity provider to access it, and sessions signed in with other methods lose access. The session you used to save the configuration switches to an SSO session automatically, so you stay signed in.
</Warning>

## Sign in with SAML SSO

Once SAML SSO is configured, members sign in to the organization through your identity provider:

<Steps>
  <Step title="Start SSO sign-in">
    On the VESSL Cloud sign-in page, click **Continue with SAML SSO**.
  </Step>

  <Step title="Enter your organization name">
    Enter your organization name in **Organization name** and submit. You are redirected to your identity provider.
  </Step>

  <Step title="Authenticate with your identity provider">
    Complete the sign-in at your identity provider. You are then redirected back to your organization.
  </Step>
</Steps>

SSO sign-in resolves organization membership as follows:

* A user without a VESSL Cloud account gets an account created and joins your organization automatically on their first SSO sign-in.
* An existing member of your organization signs in as usual.
* A user who already has a VESSL Cloud account but is not a member of your organization cannot sign in with SSO. Invite them to the organization first; see [Invite a member](/admin/teams/invite-member).

<Tip>
  SSO works for CLI sign-in too: `vesslctl auth login` signs in through the browser by default, where members can continue with SAML SSO.
</Tip>

## IdP attribute reference

Identity providers use attributes in the SAML response to pass each user's ID and email. VESSL Cloud looks up these values using the attribute names you enter in **IdP User ID** and **IdP User email attribute**, so the names must match your identity provider's configuration exactly.

Refer to the values below for your provider:

<Tabs>
  <Tab title="Microsoft Entra">
    | Field                    | Attribute name                                                       |
    | ------------------------ | -------------------------------------------------------------------- |
    | IdP User ID              | `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`         |
    | IdP User email attribute | `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` |
  </Tab>

  <Tab title="AWS IAM Identity Center">
    | Field                    | Attribute name |
    | ------------------------ | -------------- |
    | IdP User ID              | `username`     |
    | IdP User email attribute | `email`        |
  </Tab>

  <Tab title="Okta">
    The values below assume you followed the Okta setup guide on this page. If you use a custom configuration, adapt them accordingly.

    | Field                    | Attribute name |
    | ------------------------ | -------------- |
    | IdP User ID              | `user.login`   |
    | IdP User email attribute | `user.email`   |
  </Tab>

  <Tab title="Custom identity provider">
    Refer to your identity provider's documentation to identify the attribute names for user ID and user email. If needed, consult your IdP administrator to confirm the configuration.
  </Tab>
</Tabs>

## See also

* [Organization overview](/admin/organization/overview)
* [Invite a member](/admin/teams/invite-member)
