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

# Entra ID SSO setup

export const Alert = ({type, title, children}) => {
  const getIcon = () => {
    switch (type) {
      case 'info':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      case 'success':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm4.293 6.293L9 11.586 5.707 8.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414l4 4c.391.391 1.024.391 1.414 0l6-6c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%230CC26D'/%3E%3C/svg%3E";
      case 'warning':
        return "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHdpZHRoPScxMDgwJyBoZWlnaHQ9JzEwODAnPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3RyYW5zcGFyZW50Jy8+PHBhdGggZD0nTTEzLjc5NCAxMC43NSA4LjMgMS4yNWExLjUgMS41IDAgMCAwLTIuNiAwbC01LjQ5NCA5LjVBMS40OTQgMS40OTQgMCAwIDAgMS41IDEzaDExYTEuNDkzIDEuNDkzIDAgMCAwIDEuMjk0LTIuMjVNNi41IDUuNWEuNS41IDAgMCAxIDEgMFY4YS41LjUgMCAwIDEtMSAwek03IDExYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNScgc3R5bGU9J3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbDojZmY5ZjM1O2ZpbGwtcnVsZTpub256ZXJvO29wYWNpdHk6MScgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLjAyIDE5LjMwNSlzY2FsZSg3Ny4xNCknLz48L3N2Zz4=";
      case 'danger':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm5.707 4.293L10 9.586 4.293 4.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414L8.586 11l-5.707 5.293c-.391.391-.391 1.024 0 1.414s1.024.391 1.414 0L10 12.414l5.707 5.293c.391.391 1.024.391 1.414 0s.391-1.024 0-1.414L11.414 11l5.707-5.293c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%23F45252'/%3E%3C/svg%3E";
      case 'note':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      default:
        return "";
    }
  };
  return <div className={`alert alert--${type}`}>
      <div className="alert-icon" style={{
    backgroundImage: `url("${getIcon()}")`,
    backgroundRepeat: 'no-repeat',
    backgroundPosition: 'center center',
    backgroundSize: '20px',
    width: '24px',
    height: '24px',
    position: 'absolute',
    left: '16px',
    top: '16px'
  }} />
      <div className="alert-content">
        {title && <div className="alert-title">{title}</div>}
        <div className="alert-body">{children}</div>
      </div>
    </div>;
};

Superblocks single sign-on (SSO) with Entra (formerly Azure AD) lets your team seamlessly authentication and access Superblocks using their Entra credentials. This guide walks trhough how to configure single sign-on for Superblocks.

## Prerequisites

To setup SSO for your organization, you'll need:

* An Entra tenant
* A user account with, at a minimum, [Cloud application administrator](https://learn.microsoft.com/en-us/azure/active-directory/roles/permissions-reference#cloud-application-administrator) access
* A Superblocks organization on the **[Enterprise](https://www.superblocks.com/pricing)** plan

## Setup

Set up single sign-on for Entra by registering an application in the Entra portal. See Microsoft's [Quickstart: Register an application with the Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app) for full details.

### Register an application

1. Sign in to the [Microsoft Entra admin center](https://entra.microsoft.com/)
2. Navigate to **Identity** → **Applications** → **Enterprise applications**
3. Click **+ New application**
4. Select **+ Create your own application**
5. Name the application
   <img src="https://mintcdn.com/superblocks/bKXJZ0WLJtmaDm_J/images/administration/scim/azure_ad.png?fit=max&auto=format&n=bKXJZ0WLJtmaDm_J&q=85&s=99f118a649b422c734202fc3a7fbb92a" alt="Create Entra Application" width="1932" height="1242" data-path="images/administration/scim/azure_ad.png" />
6. Set **Supported account types** to **Accounts in this organizational directory only**
7. Under **Redirect URI** select **Web** and enter `https://login.superblocks.com/login/callback`
8. Click **Register**

### Setup authentication

After your app has been registered, configure authentication for the application.

1. In **App registrations** select your new application
2. Under **Manage**, select **Authentication**
3. Set the **Front-channel logout URL** to `https://app.superblocks.com/logout`
4. Under **Implicit grant and hybrid flows** check the boxes for both **Access tokens** and **ID tokens**
5. **Save** your configuration

<Alert type="info">
  For customers on Superblocks EU set the logout URL to{" "}
  <code>[https://eu.superblocks.com/logout](https://eu.superblocks.com/logout)</code>
</Alert>

<img src="https://mintcdn.com/superblocks/bKXJZ0WLJtmaDm_J/images/administration/sso/azure-ad-setup.png?fit=max&auto=format&n=bKXJZ0WLJtmaDm_J&q=85&s=8f6d548fb4135f8c1488723a234f9a01" alt="Entra Enterprise Application Setup" width="1806" height="1536" data-path="images/administration/sso/azure-ad-setup.png" />

### Add a client secret

Superblocks uses a client secret to authenticate with Entra when requesting user access tokens. To create a client secret for your application:

1. Under **Manage**, select **Certificates & secrets**
2. On the **Client secrets** tab, click **+ New client secret**
3. Enter a description and select an expiration date for your secret
4. Click **Add**
5. Copy the secret **value**

<Alert type="warning">
  The secret value will never be shown again after you leave this page. Be sure
  to copy and save it to a safe place like your password manager.
</Alert>

### Configure IdP-initiated login (optional)

To allow users to log in to Superblocks directly from Entra instead of initiating the login from Superblocks, follow the steps below to update the login URL for the Entra application.

1. Under **Manage**, select **Manifest**
2. Scroll down to the `signInURL` property and set its value to `https://app.superblocks.com?connection={MyCompanyName}-AzureAD`

<Alert type="warning">
  Replace `{MyCompanyName}` with your company's name. Remove all spaces
  and special characters from the name. If your company name is multiple words,
  capitalize the first letter of each word. For example, the company River Bank
  Technologies would become `RiverBankTechnologies`
</Alert>

3. Click **Save**

<img src="https://mintcdn.com/superblocks/bKXJZ0WLJtmaDm_J/images/administration/sso/azure_signinurl.png?fit=max&auto=format&n=bKXJZ0WLJtmaDm_J&q=85&s=0b0d9e5317f74c10d9c3c58a5be2b194" alt="Update signInURL for IdP-initiated login" width="2134" height="1840" data-path="images/administration/sso/azure_signinurl.png" />

## Send IdP info to Superblocks

Once you've configured your Entra application, send the following information to [support@superblocks.com](mailto:support@superblocks.com)

<table>
  <tr>
    <th>Client ID</th>

    <td>
      The <strong>Application (client) ID</strong> for your Entra tenant. You can
      find this value on your app's <strong>Overview</strong> screen.
    </td>
  </tr>

  <tr>
    <th>Client Secret</th>

    <td>
      The secret <strong>value</strong> you copied when you{" "}
      <a href="#add-a-client-secret">added a client secret</a>. Note: we
      recommend using a secure transfer mechanism such as
      `https://onetimesecret.com` or similar to send the secret.
    </td>
  </tr>

  <tr>
    <th style={{ width: 150 }}>Entra Tenant Domain</th>

    <td>
      Your Entra domain name. You can find this on your Entra tenant
      overview page in the Microsoft portal.
    </td>
  </tr>

  <tr>
    <th>Other domains</th>

    <td>
      The list of domain and domain aliases your employees should be able to use
      when logging into Superblocks.
    </td>
  </tr>
</table>
