Skip to main content
Enterprise Feature - SSO is available on superglue Enterprise plans. Contact us to learn more.
superglue supports Single Sign-On through any OpenID Connect (OIDC) provider. This guide covers Okta and Microsoft Entra ID (formerly Azure AD). When SSO is enabled:
  • A provider button (e.g. Okta or Microsoft) appears on the login page.
  • Users are provisioned just-in-time — their superglue account is created on first login, with no manual invitation step.
  • Each user is placed directly into your shared organization with a base role (Admin or Member) derived from a claim in their ID token.
  • Roles are re-synced on every login, so changes in your identity provider take effect the next time the user signs in.

How role assignment works

superglue reads a base-role claim from the ID token and maps it directly to a superglue base role:
Claim valuesuperglue base role
adminAdmin
memberMember
anything else / missingAccess denied
If the claim is missing or holds any other value, the login is denied — the user is not provisioned and cannot sign in.
  • Okta sends this as a userType claim (both userType and user_type claim names are accepted).
  • Entra ID sends this via an app role (roles claim) or an optional claim — see the Entra section below.

Okta

Configuration

1. Create the Okta application

In the Okta admin console, create an OIDC - Web Application:
  • Sign-in redirect URI: https://<your-superglue-domain>/api/auth/oauth2/callback/okta
  • Grant type: Authorization Code (PKCE is used automatically)
Note the Client ID and Client Secret.

2. Send the userType claim

superglue derives the base role from the ID token, so Okta must include the claim:
  1. Go to Applications → your app → Sign On tab.
  2. Under OpenID Connect ID Token, click Edit.
  3. Add a claim:
    • Name: userType
    • Include in token type: ID Token, Always
    • Value: map it to the Okta attribute that holds admin / member for each user (for example a custom user profile attribute, or a group-based expression).
  4. Save.
The claim must be present in the ID token — superglue verifies and decodes the ID token JWT directly. A claim that only appears in the access token or the userinfo endpoint will not be read.

3. Set environment variables

VariableRequiredDescription
OKTA_CLIENT_IDYesOIDC application client ID. Presence of all three OKTA_* values enables the Okta button.
OKTA_CLIENT_SECRETYesOIDC application client secret.
OKTA_ISSUERYesYour Okta org URL, e.g. https://your-domain.okta.com (the Org Authorization Server).
OKTA_ORG_IDYesThe superglue organization ID all Okta users are placed into.
AUTH_EXCLUSIVE_PROVIDERNoSet to okta to hide email/Google/GitHub and show only the Okta button (see below).

Microsoft Entra ID

Microsoft Entra ID (formerly Azure Active Directory) is supported through the same OIDC flow as Okta.

How role assignment works (Entra)

Entra ID does not have a built-in userType token claim like Okta. Instead, the base role is driven by an app role assignment that surfaces in the roles claim of the ID token:
roles claim containssuperglue base role
adminAdmin
memberMember
neither / missingAccess denied
Admin wins if a user is assigned both. If the roles claim is empty or absent, the login is denied.

Configuration

1. Register the application

In the Entra admin centerApp registrationsNew registration:
  • Supported account types: choose single-tenant (your directory only) unless you need guests.
  • Redirect URI (type Web): https://<your-superglue-domain>/api/auth/oauth2/callback/entra
From the app’s Overview, note the Application (client) ID and the Directory (tenant) ID. Under Certificates & secrets, create a client secret and note its value.

2. Define and assign app roles

  1. Go to App rolesCreate app role.
  2. Create two roles with these Values (the value is what lands in the token, not the display name):
    • admin
    • member
    • Allowed member types: Users/Groups.
  3. Go to Enterprise applications → your app → Users and groups and assign each user (or a group) to either the admin or member app role.
The assigned role’s Value is emitted in the roles claim of the ID token.
The claim must be present in the ID token — superglue verifies and decodes the ID token JWT directly. App-role values flow into the ID token automatically once roles are assigned.

3. Set environment variables

VariableRequiredDescription
ENTRA_CLIENT_IDYesApplication (client) ID. Presence of all required ENTRA_* values enables the Microsoft button.
ENTRA_CLIENT_SECRETYesClient secret value.
ENTRA_TENANT_IDYesDirectory (tenant) ID. The issuer is derived as https://login.microsoftonline.com/<tenant>/v2.0.
ENTRA_ORG_IDYesThe superglue organization ID all Entra users are placed into.
AUTH_EXCLUSIVE_PROVIDERNoSet to entra to hide email/Google/GitHub and show only the Microsoft button (see below).

Shared behavior

The following applies to both Okta and Entra ID.

Make SSO the only login method

To require everyone to sign in through a single provider, set AUTH_EXCLUSIVE_PROVIDER to that provider’s id:
AUTH_EXCLUSIVE_PROVIDER=okta    # or: entra
This hides the email form and any other OAuth buttons on the login page. Internal operators can still reach all sign-in methods by appending ?providers=all to the login URL (https://<your-superglue-domain>/login?providers=all) — useful for break-glass access.

Provisioning details

  • No personal organization. SSO-provisioned users are added straight to the configured org (OKTA_ORG_ID / ENTRA_ORG_ID). They do not get the personal org that email/Google/GitHub signups receive.
  • Signup-disabled bypass. Even when NEXT_PUBLIC_DISABLE_SIGNUP=true, valid SSO logins are provisioned — the disabled-signup gate only applies to other providers.
  • Existing users are unaffected. Email, Google, and GitHub accounts continue to work exactly as before. Enabling SSO only adds a login option.

Deprovisioning

When a user is deactivated in your identity provider, it stops issuing tokens for them, so they can no longer sign in to superglue. Their existing superglue account and any active sessions are not automatically revoked — remove the user from Control Panel → Organization if you need to terminate access immediately.