SSO for Accounts
UDMG supports Single Sign-On (SSO) for Account authentication in the Web Transfer Client (WTC).
This feature enables centralized identity management, strengthens security, and provides a seamless login experience for Accounts. By allowing Accounts to authenticate through an external Identity Provider (IdP), UDMG acts as the Service Provider (SP) and integrates easily into your organization's existing identity infrastructure.
Each UDMG Domain supports a single SSO provider for Accounts. Upon SSO login, UDMG validates the IdP assertion/token, verifies authorization, issues its own session tokens, and performs Just-in-Time (JIT) provisioning of Accounts.
Before You Begin
Supported Protocols and IdPs
UDMG supports two widely adopted authentication protocols for SSO. These are open standards for exchanging authentication and authorization data between an Identity Provider (IdP) and a Service Provider (SP), such as UDMG:
- SAML (Security Assertion Markup Language) 2.0
- OIDC (OpenID Connect)/OAuth 2.0
UDMG supports any IdP that conforms to the SAML or OIDC/OAuth 2.0 specifications. The table below lists a selection of commonly used IdPs that have been tested and validated. If your IdP is not listed, it is still likely to work with UDMG, as unlisted providers may simply not have undergone our complete validation process.
| Identity Provider | SAML 2.0 | OIDC / OAuth 2.0 |
|---|---|---|
| Okta | ||
| Microsoft Entra ID (Azure AD) | ||
| Google Workspace | ||
| PingFederate | ||
| Auth0 |
Provisioning and Identity Management
UDMG supports automated Just-in-Time (JIT) provisioning for Accounts authenticated via SSO. When an Account successfully signs in to the Web Transfer Client (WTC) through a configured SSO provider for the very first time, their Username is automatically created within UDMG; no manual setup is required.
On First Login
When an Account signs in with SSO for the first time, UDMG processes the identity assertion or token returned by the IdP:
- If the Username Attribute or Username Claim is present and resolves to a unique username that does not already exist with a different Login Method, UDMG creates a new Account and populates the mapped Account Group associations.
- If the Username Attribute or Username Claim is missing, or if an Account with the same Username exists but has a different Login Method (e.g., Standard or LDAP), the login is denied.
- If an Account with the same Name already exists — regardless of its Login Method or letter case — SSO provisioning is rejected and the login fails with an error.
On Subsequent Logins
When an SSO-provisioned Account logs in again, UDMG re-evaluates authorization and:
- Updates mapped attributes (e.g., name, email, Account Group associations) if they differ from the IdP response.
- Refreshes the Updated timestamp and Version number whenever any Account data is modified.
The Username is immutable to preserve identity consistency. The Login Method (equal to SAML or OIDC) and the association with the originating SSO Provider are also immutable.
On Account or SSO Removal/Change
If an Account is removed from the IdP, or if the SSO provider is disabled or deleted in UDMG:
- The Account remains visible in the list but will no longer be able to log in.
- If the Account authenticates again after an SSO provider has been replaced, they may be re-provisioned as a new Account depending on whether the new IdP emits a different value for the configured Username Attribute or Username Claim.
Group Attribute and Account Group Assignment
After an Account is authenticated through SSO, UDMG determines their Account Group association based on the value returned by the IdP. This attribute contains one or more values, such as group names or role identifiers, which are compared against the Group Attribute or Group Claim defined in the SSO configuration.
For each Account Group, you can configure the exact IdP value (group or claim) that grants that Account Group association.
If an Account's IdP attributes contain multiple matching values, UDMG associates all of the Account Groups.
For SAML configurations, some IdPs return multiple values in a single <AttributeValue> element instead of multiple <AttributeValue> elements.
If you are unsure how values are represented in the SAML assertion, ask your IdP administrator:
- If values are returned as a single delimited string, configure the Role/Group Delimiter (For Single String Attributes) field with the delimiter character used to separate the values.
- If values are returned as multiple
<AttributeValue>elements, leave this field empty.
Account Group assignments are re-evaluated on every login. If an Account's group membership changes in the IdP, UDMG updates the Account's Account Group associations accordingly.
Login Experience
Once an SSO provider has been configured and enabled for a Domain, a button for that provider appears on the Domain's login page beneath the standard Username and Password fields.
When a user authenticates through SSO, UDMG establishes a session for the corresponding Account and redirects them to their requested page or the default landing page.
If the IdP is configured for IdP-initiated login, it can send a signed authentication response directly to the Full Redirect URI (the Assertion Consumer Service (ACS) endpoint for SAML or the redirect URI for OIDC).
Session Behavior
After a successful SSO login, UDMG establishes and manages its own application session; it does not reuse IdP tokens. When an Account signs out, only the UDMG session ends. Single Logout (SLO) across the IdP or other applications is not supported.
If an SSO provider is disabled or deleted, new logins are blocked but existing sessions remain active until they expire. When a session expires, Accounts are returned to the login page; if their IdP session is still valid, they may be signed back in without re-entering credentials; otherwise, the IdP prompts them to authenticate again.
SAML Request Signing and Assertion Decryption
UDMG supports two optional security enhancements for SAML authentication:
- Request signing: UDMG signs outbound SAML authentication requests using the certificate pair specified in Credentials Name (SP Signing and Encryption Key Pair). This allows the IdP to verify that requests originate from a trusted SP.
- Assertion decryption: UDMG decrypts encrypted assertions in the IdP's SAML response using the certificate pair specified in Credentials Name (SP Signing and Encryption Key Pair). This requires that the IdP be configured to encrypt assertions using the corresponding SP certificate.
Both features rely on the same TLS Certificate Pair credential and operate independently. Assertion decryption is available whenever an SP key pair is configured, regardless of whether request signing is enabled.
To use either feature, create a TLS Certificate Pair credential on the Credentials page before configuring the SSO provider.
Login Error Codes
When SSO authentication fails, UDMG redirects to the login page with three query parameters:
errorMessage: alwayslogin failederrorCode: one of the codes from the tables belowerrorDescription: a URL-encoded string with additional detail about the underlying error
For example:
<udmg-base-url>?errorMessage=login+failed&errorCode=SAML003&errorDescription=missing+SAMLResponse+or+RelayState
Each SSO authentication failure is also logged as an ERROR-level entry in the UDMG Server log. The messageCode field contains the error code and message contains a brief description of the stage that failed.
time=2026-08-27T17:16:14.485Z level=ERROR msg=unknown service=wtc wtc.requestId=e615ccee-cc7a-46d4-b0c9-408df2a5575e wtc.method=GET wtc.path=/workspace/primary/sso/callback wtc.messageCode=SAML010 wtc.message="insufficient permissions"
- SAML
- OIDC / OAuth 2.0
| Error Code | Description |
|---|---|
SAML001 | The Domain could not be resolved from the incoming request. Verify that the SSO URL contains a valid Domain name. |
SAML002 | The Domain configuration could not be loaded. Contact your administrator. |
SAML003 | The SSO callback is missing a required form value (SAMLResponse or RelayState). Verify your IdP's SAML assertion posting configuration. |
SAML004 | The relay state returned by the identity provider could not be decrypted (it may be invalid or tampered). Try logging in again; if the issue persists, check for browser session problems. |
SAML005 | The returned state value does not match the expected SAML flow. Try logging in again. |
SAML006 | The identity provider's SAML assertion could not be processed. Verify your IdP configuration, including the Entity ID, ACS URL, and assertion attributes. |
SAML007 | Account provisioning failed. UDMG could not create or update the Account record. Verify the Username Attribute, Email Attribute, and Account Group mapping configuration. |
SAML008 | A session token could not be generated for the authenticated Account. Contact your administrator. |
SAML009 | The login response could not be stored in the session cookie. Contact your administrator. |
SAML010 | The Account authenticated successfully but does not have the permissions required to access the workspace. Contact your administrator. |
| OIDC Code | OAuth 2.0 Code | Description |
|---|---|---|
OIDC001 | OAUTH001 | The Domain could not be resolved from the incoming request. Verify that the SSO URL contains a valid Domain name. |
OIDC002 | OAUTH002 | The Domain configuration could not be loaded. Contact your administrator. |
OIDC003 | OAUTH003 | The state parameter returned by the identity provider is missing, invalid, or could not be decrypted. Try logging in again; if the issue persists, verify your IdP's redirect URI configuration. |
OIDC004 | OAUTH004 | The returned state value does not match the expected flow. Try logging in again. |
OIDC005 | OAUTH005 | The identity provider's callback could not be processed. Verify your IdP configuration, including the redirect URI, Client ID, and Client Secret. |
OIDC006 | OAUTH006 | Account provisioning failed. UDMG could not create or update the Account record. Verify the Username Claim, Email Claim and Account Group claim configuration. |
OIDC007 | OAUTH007 | A session token could not be generated for the authenticated Account. Contact your administrator. |
OIDC008 | OAUTH008 | The login response could not be stored in the session cookie. Contact your administrator. |
OIDC009 | OAUTH009 | The Account authenticated successfully but does not have the permissions required to access the workspace. Contact your administrator. |
Configuring an SSO Provider
SSO is configured at the Domain level, meaning it can only be used to authenticate Accounts within that specific Domain. If you want to use the same SSO provider across multiple Domains, it must be configured separately in each Domain.
To configure an SSO provider for Accounts, follow these steps:
- From the Sidebar, click General > Settings.
- Click Single Sign-On (SSO) - Accounts.
- Fill out the fields for the new SSO settings using the Field Descriptions table, which includes separate tabs for SAML and OIDC / OAuth 2.0.
- Click Add.
Field Descriptions
- SAML
- OIDC / OAuth 2.0
| Name | Description | Specifications | Required |
|---|---|---|---|
| Name | The name of the SSO configuration. |
| Yes |
| Description | The description of the SSO configuration. | No | |
| Protocol | Select SAML. |
| Yes |
| Identity Provider (IdP) | The selected IdP's name and icon are displayed on the login page under the single sign-on section. If your IdP is not listed below, then it is displayed as "Other". Options:
| Yes | |
| UDMG Base URL | The base URL of your UDMG instance, prefixed by HTTPS. This should be the hostname where your UDMG application is accessible. |
| Yes |
| Full Redirect URI | The complete redirect URI that is automatically generated and should be configured in your IdP as the callback URL for SAML authentication. | No, it is automatically generated | |
| IdP SSO URL | The IdP's SSO endpoint URL that Users or Accounts are redirected to for login. | Must be a valid HTTPS URL. | Yes |
| Identity Provider (IdP) Entity ID (Issuer) | The unique identifier for your Service Provider (entity issuer) that the IdP recognizes. | Must be a valid HTTPS URL. | Yes |
| Audience URI (Service Provider Entity ID) | The URI that specifies which Service Provider the SAML assertion is intended for. Only change the field if your IdP sends a different audience value than your Service Provider Entity ID. | Must be a valid HTTPS URL. | Yes |
| Credentials Name (IdP Signing Certificate) | The X.509 Certificate that references the CA Certificate that is used to verify the signature on the SAML response from the Identity Provider. | Must reference an existing X.509 Certificate. | Yes |
| Credentials Name (SP Signing and Encryption Key Pair) | The TLS Certificate Pair used to sign SAML authentication requests and decrypt encrypted assertions from the Identity Provider. All credentials must first be created on the Credentials page before they can be selected here. | Must reference an already created TLS Certificate Pair. | No |
| Sign Requests | A toggle switch to enable or disable signing of outbound SAML authentication requests. When enabled, requests are signed using the SP signing certificate's private key. Disabled unless a Credentials Name (SP Signing and Encryption Key Pair) is selected. | Default value: Disabled. | No |
| Canonicalizer | The XML Canonicalization algorithm applied to the authentication request before signing. Options:
| Yes, if Sign Requests is Enabled. | |
| Signature Algorithm | The cryptographic algorithm used to compute the SAML request signature. Options:
| Yes, if Sign Requests is Enabled. | |
| Username Attribute | The name of the SAML attribute to use as the unique Account identifier. This value should be globally unique and not change over time (e.g., email, uid, userPrincipalName). | Yes | |
| Email Attribute | The name of the SAML attribute containing the Account's email address. | Yes | |
| Group Attribute | The name of the SAML attribute from which the Account's group will be derived. This may be an existing attribute or a custom one (e.g., mftGroup). | Yes | |
| Role/Group Delimiter (For Single String Attributes) | If the Group Attribute is returned as a single If the SAML assertion returns multiple | No | |
| Role/Group Attribute to Account Group Mapping | Map IdP group/role values to Account Groups. For each row, provide an IdP Role/Group and select its matching Account Group. For more information, see Group Attribute and Account Group Assignment. | No |
| Name | Description | Specifications | Required |
|---|---|---|---|
| Name | The name of the SSO configuration. |
| Yes |
| Description | The description of the SSO configuration. | No | |
| Protocol | Select OIDC / OAuth 2.0. |
| Yes |
| Identity Provider (IdP) | The selected IdP's name and icon are displayed on the login page under the single sign-on section. If your IdP is not listed below, then it is displayed as "Other". Options:
| Yes | |
| UDMG Base URL | The base URL of your UDMG instance, prefixed by HTTPS. This should be the hostname where your UDMG application is accessible. |
| Yes |
| Full Redirect URI | The complete redirect URI that is automatically generated and should be configured in your IdP as the callback URL for OIDC / OAuth 2.0 authentication. | No, it is automatically generated | |
| Issuer URL | The base URL of the OpenID Provider. Used to validate the issuer (iss) claim in the ID token returned by the IdP during authentication. | Must be a valid HTTPS URL. | Yes |
| Credentials Name (Client ID & Secret) | The Credential that contains the Client ID (unique identifier assigned to your application Service Provider by the IdP) and authentication password for OIDC/OAuth 2.0. | Must reference an existing Key Pair. | Yes |
| Authorization Endpoint | The endpoint for initiating the authentication flow. | Must be a valid HTTPS URL. | Yes |
| User Info Endpoint URL | The URL of the OIDC endpoint used to retrieve additional user or account profile information. | Yes | |
| Token Endpoint | The endpoint for exchanging the authorization code for tokens. | Must be a valid HTTPS URL. | Yes |
| Scopes | The permissions or identity data the Service Provider Client is requesting, such as "openid email profile" or 'openid'. | Must be a valid, space-separated string. | Yes |
| Username Claim | The name of the claim in the ID Token or Access Token to use as the unique Account identifier. This value should be globally unique and not change over time (e.g., sub, email, preferred_username). | Yes | |
| Email Claim | The name of the claim in the ID Token or Access Token containing the Account's email address. | Yes | |
| Group Claim | The name of the claim in the ID Token or Access Token from which the Account's group will be derived (e.g., roles, groups, mftGroup). | Yes | |
| Role/Group Attribute to Account Group Mapping | Map IdP group/role values to Account Groups. For each row, provide an IdP Role/Group and select its matching Account Group. For more information, see Group Attribute and Account Group Assignment. | No |
Managing an SSO Provider
Viewing SSO Provider Details
To view the details of an SSO provider, follow these steps:
- From the Sidebar, click General > Settings.
- Click Single Sign-On (SSO) - Accounts.
SSO Provider Metadata
SSO provider details include all parameters given in the Field Descriptions table above, plus the following read-only metadata:
| Name | Description |
|---|---|
| UUID | The universally unique identifier of this SSO provider. |
| Version | Version number of the latest configuration of the SSO provider. |
| Created | Date and time this SSO provider was created. |
| Updated | Date and time this SSO provider was last updated. |
Editing SSO Provider Details
To edit the details of an SSO provider, follow these steps:
- From the Sidebar, click General > Settings.
- Click Single Sign-On (SSO) - Accounts.
- Click the Edit button above the SSO provider details.
- Edit fields for the SSO settings using the Field Descriptions table, which includes separate tabs for SAML and OIDC / OAuth 2.0.
- Click Update.
Enabling/Disabling SSO
Before disabling an SSO provider, ensure that at least one Admin User with Standard authentication remains available. Otherwise, you may lose administrative access to UDMG.
SSO providers can be Enabled or Disabled to control whether they can be used for Account authentication. By default, new providers are Enabled, but their status can be changed at any time.
- Enabled (default): The provider is active and available for authenticating Accounts.
- Disabled: The provider is inactive, and Accounts associated with it will be unable to log in.
To enable or disable an SSO provider, follow these steps:
- From the Sidebar, click General > Settings.
- Click Single Sign-On (SSO) - Accounts.
- Click the Enable or Disable button above the SSO provider details, depending on the current status.
Disabling an SSO provider blocks new login attempts for associated Accounts. Existing Account sessions remain active until they expire or the Account holder logs out.
Deleting an SSO Provider
Before deleting an SSO provider, ensure that at least one Admin User with Standard authentication remains available. Otherwise, you may lose administrative access to UDMG.
Deleting an SSO provider configuration is straightforward. However, you must plan what to do with any orphaned Accounts that have already been provisioned via the provider. Those options include:
| Option | When to Choose | Result |
|---|---|---|
| Delete the Accounts | No plans to migrate to a new provider, or do not want to preserve Account records. | Accounts are removed from UDMG; if they authenticate later via an active SSO provider, they will be re-provisioned. |
| Retain as orphaned | You need the records for auditing but do not want Accounts to log in. | Accounts remain visible but cannot authenticate; even with a new provider configured, their Username values remain tied to the deprecated provider. |
To delete an SSO provider, follow these steps:
- From the Sidebar, click General > Settings.
- Click Single Sign-On (SSO) - Accounts.
- Click the Delete button above the SSO provider details.
- You will be asked to confirm the deletion. Click Continue.
Deleting an SSO provider blocks new login attempts for associated Accounts. Existing Account sessions remain active until they expire or the Account holder logs out.
Managing SSO-Provisioned Accounts
Editing SSO-Provisioned Accounts
To edit the details of an SSO-provisioned Account, follow these steps:
- From the Sidebar, click Configuration > Accounts.
- Click the Name of the SSO-provisioned Account you want to edit.
- Click the Edit button above the Account details.
- Edit details for the Account using the Field Descriptions table as a guide. The following fields are not editable for SSO-provisioned Accounts, as they are managed by the SSO system and must be updated there:
- Account Name
- Description
- Username
- Password
- Account Group
- Require Two-Factor Authentication (TOTP)
- Click Update.
Deleting SSO-Provisioned Accounts
To delete an SSO-provisioned Account, follow these steps:
- From the Sidebar, click Configuration > Accounts.
- Click the Name of the Account you want to delete.
- Click the Delete button above the Account details.
- You will be asked to confirm the deletion. Click Continue.
Deleting an SSO-provisioned Account removes them from the list, but they will reappear if they authenticate again. To permanently prevent access, first remove the corresponding identity from your IdP, and optionally delete them from the Accounts list.