Skip to content

You can manage clients using Application APIs (with an access token of the relevant app or with an admin access token) or Client APIs (with an access token of the relevant app), or from the Admin Portal (as described below).

Understand client protocols

Depending on your business needs, Mosaic allows creating OIDC and SAML clients.

  • OIDC clients are designed for apps relying on the OIDC protocol for authentication and authorization.
  • SAML clients are designed to support identity federation with external IDPs using the SAML protocol.

OIDC clients are versatile and are considered to be default for Mosaic integrations—you can build any identity experience (authentication, fraud prevention, identity verification, etc.) with an OIDC client. SAML clients can only be used with SSO Service and Hosted login.

Note

Unless stated otherwise, Mosaic documentation refers to OIDC clients simply as clients.

Manage clients

You can manage clients from the Application page:

  • Create a client by clicking + Add client and configuring its settings.
  • Edit a client by clicking and then Edit.
  • Delete a client by clicking and then Delete.
Note

To set up the SSO Service, create clients right from the SSO Service client group page. See Configure SSO Service

OIDC client settings

Complete the wizard by configuring client settings. Some of these settings are common for all client types and configurations, while others are specific to the protocol (OIDC in this case) and derive from other settings.

Protocol and naming settings

  • Protocol: Setting to OIDC defines that this client is OIDC-based.
  • Third-party client: Enabling the toggle marks the client as third-party. With the right consent, third-party clients that represent external services can request access to your protected resources on behalf of the user.
  • Client name: Client name to display when needed.
  • Client description: Short description of your client.

Basic settings

  • Client type: Whether the client is a web app (default) or a native app (e.g., mobile). This is used to adapt validations and configuration according to client type when relevant (such as validations for redirect URIs).
  • Redirect URIs: List of URIs approved for redirects for your application (e.g., URI to redirect to when an authentication is completed). The required format of the redirect URI depends upon client type: web clients must use HTTPS unless using a local environment, while native apps must use HTTPS unless using a local environment or custom scheme. Custom schemes are only allowed in the format of reverse domain schemes ([domain]://[scheme]).

Advanced settings

Note

For highly-regulated industries, consider enabling "Enforce FAPI 2.0 compliance". This will automatically disable client settings that aren't FAPI 2.0-compliant and prompt you to configure your client in accordance with FAPI principles, for example by enforcing mTLS, PKCE, and PAR. See FAPI 2.0

  • Authentication method: Enforces client authentication using a specific method:

    • Client Secret: (default) Allows authenticating using Client ID and Client Secret. For security purposes, the secret can be rotated later without changing the client ID. See Rotate client secrets.
    • Private key JWT: Allows authenticating using client JWT assertion signed by your private key. If selected, provide JWKS.
    • mTLS (self-signed): Allows leveraging an mTLS handshake for authentication. If selected, provide the self-signed certificate in the JWKS format.
    • mTLS (CA-signed): Allows leveraging an mTLS handshake for authentication. If selected, provide the certificate chain in the PEM format. For requirements, see Authenticate using mutual TLS. Optionally, define Subject DN attributes (Common name (CN), Organization (O), and others) to enforce certificate validation against these values.
  • Enforce token binding: Enabling this ensures that tokens are cryptographically bound to client certificate in the mTLS and private key JWT flows.

  • Enforce PAR: Enforces the usage of the PAR endpoint for auth requests. For implementation details, see Integrate login using PAR.

  • PKCE support: Whether the client requires the proof key of code exchange (PKCE) for authentication. For implementation details, see Secure login with PKCE.

    • Allow PKCE alongside client credentials: (default) Allows auth requests with and without PKCE, provided that they use client credentials.
    • Enforce PKCE alongside client credentials: Requires all authentication requests to include PKCE in addition to client credentials.
    • Enforce PKCE instead of client credentials: Retrieves user access tokens only. For security reasons, Mosaic doesn't recommend using PKCE as a standalone method for authenticating users without the Client Secret.
  • SameSite: Defines the client cookie policy for requests made from a different site (cross-site).

    • LAX: Allows Mosaic session cookies to be sent during standard navigation flows while blocking most cross-site requests (iframes and POSTs). This provides strong CSRF protection with minimal impact on typical sign-in experiences.
    • None: Allows sharing Mosaic session cookies. This option can only be used for HTTPS redirect URIs.
  • Resources: List of URIs the client can explicitly request access to. This allows the client to manage dedicated access for a resource, including the token expiration. For example, a website can have a shorter lifetime for the page used to manage the user's payment methods. Before a resource can be added to a client, it must first be created from the Resources tab of the Applications page (see Resources).

Note

Your client can request access to a single resource in each request. If you'd like to customize the default expiration of tokens, create a resource that corresponds to your application URL.

  • ID Token - Pre-defined Custom Claims: Dropdown for selecting the claim values that Mosaic should return by default in the user's ID token. These claims do not need to be explicitly requested in the OIDC authorization request.

    See the available claims list
    ClaimDescription
    tidID of the Mosaic tenant
    fnameUser's first name
    lnameUser's last name
    mnameUser's middle name
    emailUser's primary email
    email_verifiedIndicates if the user's primary email is verified
    phone_numberUser's primary phone number
    phone_number_verifiedIndicates if the user's primary phone number is verified
    groupsGroups to which the user belongs
    new_userIndicates if a new user was created as part of the authentication flow
    birthdayUser's birthday as YYYY-MM-DD
    languageThe language of the user
    cityUser's city of residence
    addressUser's address
    countryUser's country of residence
    street_addressUser's street address
    address_typeType of user's address
    webauthnReturned only if WebAuthn was used
    rolesList of role IDs assigned to the user
    ts_rolesTransmit Security platform roles assigned to the user through Transmit Security RBAC. These are distinct from the application-level roles in the roles claim
    role_valuesMain and custom roles assigned to the user
    ts_permissionsTransmit Security platform permissions assigned to the user through Transmit Security RBAC. These are distinct from the application-level permissions in the permissions claim
    permissionsList of permissions delegated to the user
    approval_dataReturned only in transaction signing flows. Contains approval-related transaction data
    custom_group_dataCustom data object for group info
    usernameUsername used to identify the user for password login
    secondary_phone_numbersList of user's secondary phone numbers
    secondary_emailsList of user's secondary emails
    pictureThe picture of user, specified as a URL
    created_atDate user was created in the tenant
    last_authDate user last authenticated
    auth_timeTime the user was authenticated
    external_account_idUser identifier in an app, set by the app
    external_user_idA unique identifier in a tenant
    app_nameName of the app the user is associated with
    custom_dataCustom data object for tenant user info
    custom_app_dataCustom data object for app-related user info
  • Return ID token claims on UserInfo as well: Checkbox that makes the UserInfo endpoint return the same default claims selected in ID Token - Pre-defined Custom Claims. When selected, User info - Pre-defined Custom Claims is disabled because UserInfo uses the ID token claim selection.

  • User info - Pre-defined Custom Claims: Dropdown for selecting the claim values that Mosaic should return by default from the UserInfo endpoint. These claims do not need to be explicitly requested during the OIDC flow.

    See the available claims list
    ClaimDescription
    tidID of the Mosaic tenant
    fnameUser's first name
    lnameUser's last name
    mnameUser's middle name
    emailUser's primary email
    email_verifiedIndicates if the user's primary email is verified
    phone_numberUser's primary phone number
    phone_number_verifiedIndicates if the user's primary phone number is verified
    groupsGroups to which the user belongs
    new_userIndicates if a new user was created as part of the authentication flow
    birthdayUser's birthday as YYYY-MM-DD
    languageThe language of the user
    cityUser's city of residence
    addressUser's address
    countryUser's country of residence
    street_addressUser's street address
    address_typeType of user's address
    webauthnReturned only if WebAuthn was used
    rolesList of role IDs assigned to the user
    ts_rolesTransmit Security platform roles assigned to the user through Transmit Security RBAC. These are distinct from the application-level roles in the roles claim
    role_valuesMain and custom roles assigned to the user
    ts_permissionsTransmit Security platform permissions assigned to the user through Transmit Security RBAC. These are distinct from the application-level permissions in the permissions claim
    permissionsList of permissions delegated to the user
    approval_dataReturned only in transaction signing flows. Contains approval-related transaction data
    custom_group_dataCustom data object for group info
    usernameUsername used to identify the user for password login
    secondary_phone_numbersList of user's secondary phone numbers
    secondary_emailsList of user's secondary emails
    pictureThe picture of user, specified as a URL
    created_atDate user was created in the tenant
    last_authDate user last authenticated
    auth_timeTime the user was authenticated
    external_account_idUser identifier in an app, set by the app
    external_user_idA unique identifier in a tenant
    app_nameName of the app the user is associated with
    custom_dataCustom data object for tenant user info
    custom_app_dataCustom data object for app-related user info
Note

Claims such as org_id do not appear in these dropdowns. When authentication runs in the context of an organization, Mosaic adds org_id automatically to the ID token and UserInfo response.

To add custom key/value claims in journey flows, configure Enrich Access and ID Token or Enrich SSO Token in your journey.

  • ID token encryption: Allows encrypting ID tokens using the customer-provided key. Upload a JWKS containing an RSA public key (RSA-OAEP) and rotate it as necessary. Encrypted tokens will be returned in a JWE form.

  • Supported prompt values: List of OIDC prompt values to be enforced by the OIDC authorization server. Note that only selected prompt values can be included in the authorization requests, requests containing unselected prompt values will be rejected.

    • Login: Forces the user to authenticate.
    • Consent: Obtains user's consent. Required to obtain a refresh token.
    • None: Checks for an existing session.
  • Token timeout configuration: Allows modifying default token expiration times:

    • Access token expiration: The access token time-to-live. By default, 60 minutes.
    • Refresh token expiration: The refresh token time-to-live. By default, 2 weeks.
    • Max refresh time: The maximum period of time when the refresh token can be rotated. By default, 2 weeks.
    • Session expiration: The validity period during which you can silently authenticate the session. By default, 2 weeks, and can be configured up to 1 year.
  • Third-party client settings: Defines configuration settings for external services (if third-party client is toggled):

    • Consent redirect URL: List of URIs for obtaining user consent (e.g., URI to redirect to when a third-party client requests access to user data). These pages should be managed by the first-party client.
    • Access validity period: Currently, set to 30 days.
    • Scopes / permissions: List of resources the third-party client is allowed to access on behalf of the user in the app. Third-party clients typically have limited control over user data.

Client roles

Grant granular access to Mosaic by assigning roles to a client. Pick one or more roles from the list or create a new role. If you don't specify a role, the client will be assigned an implicit role that grants global access to Mosaic APIs. For details, see Manage client roles.

Important

Upon the OIDC client creation, Mosaic will autogenerate a unique Client ID and Client Secret.

  • Client ID: Client identifier for API requests, automatically generated when the app is created. It cannot be edited.
  • Client Secret: Client secret used to authorize API requests on behalf of the client (either directly or by using it to generate client access tokens). It is automatically generated when the client is created, and you can rotate it later without changing the Client ID. During rotation, Mosaic can keep up to two active secrets so you can update your backend before revoking the old one. For details, see Rotate client secrets.

SAML client settings

Complete the wizard by configuring client settings. Some of these settings are common for all client types and configurations, while others are specific to the protocol (SAML in this case).

Protocol and naming settings

  • Protocol: Setting to SAML defines that this client is SAML-based.
  • Client name: Client name to display when needed.
  • Client description: Short description of your client.

Basic settings

  • Service provider (SP) ACR URL: The endpoint where SAML responses containing authentication assertions are sent after the user successfully logs in. This URL must be configured accurately to ensure that the authentication data is received and processed by the intended application.
  • Service Provider (SP) Entity ID: ID that uniquely identifies the service provider within the SAML framework. This is crucial for ensuring that the SAML responses are directed to the correct client application, maintaining the integrity and security of the authentication process.

Advanced settings

  • NameID: The type of primary identifier to be used. Can be one of the following: email, phone number, username, or external user ID.
  • Sign SAML assertion: Enable signing the SAML assertions in addition to signing the SAML response.
  • Allow the ACS URL to be optional in SAML requests: Make ACS URL not mandatory.
Important

Upon the SAML client creation, Mosaic will autogenerate the following parameters, which are required on the Service Provider side:

  • SAML SSO URL: The URL acts as the gateway for routing login requests through the correct SSO mechanism. This URL must be set within the relying party (RP).
  • Transmit Entity ID: ID that uniquely identifies the Mosaic IDP in the SAML exchange, ensuring that SAML requests are routed to the Mosaic.
  • X.509 Certificate: The certificate used to sign SAML assertions, securing communication between the application and the identity provider.
  • IDP metadata URL: The Mosaic endpoint that contains structured metadata about the IDP's configuration.