Skip to main content

OIDC Federation Setup Guide (SSO)

OIDC Federation Setup Guide

This document describes the requirements for setting up Single Sign-On (SSO) via OpenID Connect (OIDC) between your Identity Provider (IdP) and the Adhese platform.


1. Overview

We use OIDC-based identity federation to allow your users to log in to the Adhese platform using your organization's Identity Provider. Our platform acts as the Service Provider (SP) / Relying Party (RP), and your IdP handles user authentication.


2. Information We Need From You

To configure the connection on our side, we need the following from your IdP:

ItemDescription
Discovery URLYour OIDC discovery endpoint, typically https://<your-idp>/.well-known/openid-configuration. If not available, provide the individual endpoints below.
Authorization endpointURL where we redirect users to authenticate
Token endpointURL where we exchange the authorization code for tokens
UserInfo endpointURL where we can retrieve additional user claims (if not all included in the ID token)
JWKS URIURL to your public signing keys for token validation
Client IDThe client identifier registered for Adhese in your IdP
Client SecretThe client secret associated with the Client ID
Supported scopesConfirmation that the required scopes (see section 4) are available

If your IdP supports a discovery endpoint, most of the above can be derived automatically. In that case, providing the discovery URL, Client ID, and Client Secret is sufficient.


3. Information We Provide To You

You will need the following from us to configure your IdP:

ItemDescription
Redirect URI (Callback URL)We will provide the exact redirect URI that must be registered as an allowed callback in your IdP.
Required scopesSee section 4
Required claimsSee section 4

4. Required Scopes and Claims

Required Scopes

ScopePurpose
openidMandatory for OIDC. Returns the sub (subject) claim.
emailRequired. Must return the email and email_verified claims.

Required Claims

ClaimScopeRequiredExpected ValueDescription
subopenidYesUnique user IDUnique identifier for the user
emailemailYesValid email addressThe user's email address
email_verifiedemailYestrueMust be true. Users with email_verified: false or a missing email_verified claim will be denied access.

Important: The email_verified claim is an optional claim per the OIDC specification, meaning IdPs are not required to include it by default. Please verify that your IdP is configured to include this claim in the ID token when the email scope is requested. Additionally, the value must be true — users whose email address has not been verified at the IdP level will not be able to log in.

Optional Scopes and Claims

The profile scope is not required but recommended. It enables us to display user-friendly names in the Adhese UI.

ClaimScopeRequiredDescription
nameprofileNoFull display name
given_nameprofileNoFirst name
family_nameprofileNoLast name
preferred_usernameprofileNoUsername

5. Role Mapping (Optional)

User roles can be managed directly within the Adhese platform. However, if you prefer to manage roles centrally from your IdP, we support automatic role assignment based on a custom claim in the ID token.

How It Works

  • You choose the claim name (e.g., adhese_role) — let us know which name you use so we can configure the mapping on our side.
  • The claim value can be a single role (string) or multiple roles (array).
  • Roles are mapped automatically on each login, so changes in your IdP are reflected immediately.

Single role example:

{
  "adhese_role": "admin"
}

Multiple roles example:

{
  "adhese_role": ["viewer", "creative_approver"]
}

Available Roles — Classic UI

RoleDescription
classic_adminFull admin. Has full permissions in the Classic UI.
classic_read_onlyRead-only access to the Classic UI.

Available Roles — New UI

RoleDescription
adminFull administrator
creative_approverCan approve creatives
creative_masterFull creative management
managed_ad_masterManaged advertising management
self_service_ad_masterSelf-service advertising management
viewerRead-only access
access_all_advertisers_debtors_brandsAccess across all advertisers, debtors, and brands

If you do not configure role mapping, roles will be managed manually within the Adhese platform by an administrator.


6. Setup Checklist

Your side (IdP)

  •  Register a new OIDC client/application for Adhese
  •  Configure the redirect URI provided by us as an allowed callback URL
  •  Ensure the openid and email scopes are enabled
  •  Verify that the email_verified claim is included in the ID token with a value of true
  •  (Optional) Enable the profile scope
  •  (Optional) Configure a custom claim for role mapping
  •  Share the Client ID, Client Secret, and discovery URL (or individual endpoints) with us

Our side (Adhese)

  •  Provide the redirect URI
  •  Configure the IdP connection with the provided endpoints and credentials
  •  Configure scope requests (openid, email, and optionally profile)
  •  Configure essential claim validation for email_verified
  •  (Optional) Configure role mapping based on the agreed custom claim
  •  Perform a test login together

7. Testing

Once both sides are configured, we recommend performing a joint test:

  1. Initiate a login on the Adhese platform
  2. Verify that the redirect to your IdP works correctly
  3. Authenticate with a test user
  4. Verify that the callback to Adhese succeeds
  5. Confirm that the user's email and profile information are correctly displayed
  6. (If applicable) Confirm that role mapping is applied correctly

If the login fails with an error related to the essential claim, the most common causes are:

  • The email scope is not enabled on the IdP
  • The email_verified claim is not included in the ID token
  • The user's email is not verified at the IdP level (email_verified: false)