Single Sign-On (SSO)
superglue supports Okta through OpenID Connect (OIDC). Okta authenticates the user, while superglue creates the account on first sign-in, adds it to one configured organization, and synchronizes its base role from the signed ID token.
Before you begin
Section titled “Before you begin”You need:
- An existing superglue organization and its organization ID.
- An Okta administrator who can create an OIDC application and token claim.
- A public superglue app URL that Okta can redirect users back to.
- A role rule that maps every assigned Okta user to either
adminormember.
Configure Okta
Section titled “Configure Okta”- Create an application: In Applications → Applications, create an OIDC - OpenID Connect integration with Web Application as its type.
- Enable the flow: Enable the Authorization Code grant and client-secret authentication. superglue also uses PKCE for the authorization flow.
- Register the callback: Add
https://<your-superglue-domain>/api/auth/oauth2/callback/oktaas a sign-in redirect URI. - Assign access: Assign the users or groups that should be able to sign in.
- Add the role claim: Configure an ID-token claim named
userTypeoruser_type. It must always return exactlyadminormemberfor every assigned user.
Use a custom Okta authorization server so the role claim is included in the ID token issued during the authorization-code flow. Configure the claim as an ID Token claim, include it Always, and derive its value from the user profile or group policy used by your organization. Then use that authorization server’s issuer for OKTA_ISSUER, for example:
https://your-domain.okta.com/oauth2/defaultOkta’s custom-claim guide explains how to add and preview an ID-token claim. Custom authorization servers may require Okta API Access Management in production.
Configure superglue
Section titled “Configure superglue”Set the following deployment variables:
| Variable | Value |
|---|---|
AUTH_PROVIDERS |
Include okta; use okta alone for an SSO-only login page |
OKTA_CLIENT_ID |
Client ID from the Okta application |
OKTA_CLIENT_SECRET |
Client secret from the Okta application |
OKTA_ISSUER |
Exact issuer of the authorization server that adds the role claim |
OKTA_ORG_ID |
Existing superglue organization that receives provisioned users |
AUTH_DISABLE_SIGNUP |
Required boolean controlling non-Okta self-service registration |
AUTH_DISABLE_INVITES |
Required boolean controlling organization invitations |
For an SSO-only deployment:
AUTH_PROVIDERS=oktaOKTA_CLIENT_ID=...OKTA_CLIENT_SECRET=...OKTA_ISSUER=https://your-domain.okta.com/oauth2/defaultOKTA_ORG_ID=...AUTH_DISABLE_SIGNUP=trueAUTH_DISABLE_INVITES=trueBoth account-creation flags must be set explicitly. Setting both to true is valid when Okta is configured because Okta just-in-time provisioning remains available. The deployment rejects that combination when no Okta provider is configured, as it would leave no account-creation path.
Provisioning and role sync
Section titled “Provisioning and role sync”On each successful Okta login, superglue:
- Verifies the ID token against the configured issuer, client ID, and Okta signing keys.
- Requires the
emailclaim and a validuserTypeoruser_typerole claim. - Creates the superglue account on first login without requiring an invitation.
- Adds or updates membership in the organization specified by
OKTA_ORG_ID. - Assigns the
adminormemberbase role from the token claim.
Existing users can also sign in with Okta. Other login methods remain available only when they are listed in AUTH_PROVIDERS.
Deprovisioning
Section titled “Deprovisioning”The current integration provides just-in-time provisioning and role synchronization, not SCIM deprovisioning or Okta-driven session revocation.
Deactivating a user in Okta prevents future Okta sign-ins, but an existing superglue session is not revoked automatically. To terminate access immediately, remove the user’s organization membership in Control Panel → Organization. Reassign or disable any schedules, API keys, or other resources owned by that user as part of the same offboarding process.