Skip to main content

Application Settings

This guide explains how to configure an application from the ThunderID Console application details page.

Find Your Client ID

The Application ID and Client ID are shown on the application's General tab under Quick Copy. Use the copy button to grab them quickly.

  • Application ID - the internal ThunderID identifier for this application.
  • Client ID - the OAuth 2.0 identifier your SDK or client configuration needs.

Control Who Can Sign In

Under Access on the General tab, you can configure which users can register with this application and provide the application's URL and redirect URIs.

SettingDescription
Allowed User TypesRestricts self-service registration to users of the selected types. If none are selected, self-service registration is unavailable for this application. This setting does not block existing users from signing in.
Application URLThe homepage URL of your application.
Authorized Redirect URIsThe URLs ThunderID sends users back to after authentication. Register every URI your application uses.

Use Wildcard Redirect URIs

ThunderID supports wildcard patterns in redirect URIs, so you can register a single pattern that covers a range of valid callback URLs instead of listing every exact URI.

note

Wildcard redirect URI support is disabled by default. A ThunderID administrator must set oauth.allow_wildcard_redirect_uri: true in deployment.yaml to enable it. See Configuration for details.

You can use * to match a single path segment or part of a hostname label, and ** to match zero or more path segments. For example:

  • https://example.com/cb/*: matches https://example.com/cb/v1 but not https://example.com/cb/v1/extra
  • https://app-*.example.com/cb: matches https://app-prod.example.com/cb and https://app-staging.example.com/cb

When the authorization request included a redirect_uri, the token endpoint validates it with exact matching per RFC 6749 §4.1.3: wildcard expansion does not apply at the token endpoint.

Configure Sign-In, Registration, and Recovery Flows

On the Flows tab, choose the flows that drive sign-in, sign-up, and password recovery for this application.

Authentication Flow - select the flow users follow to sign in. You can assign a custom flow built with the Flow Designer or use the deployment default. Use the open the flow builder link to edit the selected flow directly.

Registration Flow - toggle the switch to enable or disable self-registration. When enabled, select a flow that defines what information users must provide to create an account.

Recovery Flow - toggle the switch to enable or disable password recovery. When enabled, select a flow that guides users through the password reset process.

Customize the Appearance

On the Customization tab, control how your application looks and what legal links users see.

SettingDescription
ThemeThe visual theme applied to authentication pages. Select Default Theme to use the shared deployment theme, or pick an application-specific theme.
Terms of Service URIDisplayed to users during consent, sign-in, sign-up, or recovery flows.
Privacy Policy URIDisplayed to users during consent, sign-in, sign-up, or recovery flows.
ContactsAdministrator email addresses for this application. Separate multiple addresses with commas.

Configure What Goes Into Tokens

note

This section applies to OAuth 2.0 / OIDC applications (Browser App, Full-stack App, Mobile App, and Backend Service). For applications that use the embedded sign-in approach, user attributes are configured in the assertion returned by the flow, not in tokens.

On the Token tab, choose which user attributes each token carries, how long tokens stay valid, and the response format for ID tokens and userinfo.

Access Token: select the user attributes to include in the access token payload. Default attributes (sub, iss, exp, and others) are always included and cannot be removed. Set Token Validity in seconds (for example, 3600 for one hour).

ID Token: select the user attributes to include. Only attributes covered by the requested scopes are returned. Set Token Validity in seconds.

You can also configure the ID token response format via the API. These settings are not available in the Console.

SettingDescription
Response TypeJWT (signed only, default), JWE (encrypted), or NESTED_JWT (signed then encrypted).
Encryption AlgorithmKey-management algorithm. Required for JWE and NESTED_JWT. Options: RSA-OAEP, RSA-OAEP-256. Requires an OAuth client certificate.
Encryption EncodingContent-encryption algorithm. Required when Encryption Algorithm is set. Options: A128CBC-HS256, A256GCM.

User Info: configure what the /userinfo endpoint returns. User attributes are configurable from the Console. Response format settings are available via the API only.

SettingDescription
User AttributesAttributes returned by the /userinfo endpoint. Enable Use same attributes as ID Token to mirror your ID token selection, or define a separate set.
Response TypeJSON (default), JWS (signed), JWE (encrypted), or NESTED_JWT (signed then encrypted).
Signing AlgorithmRequired for JWS and NESTED_JWT. Options: RS256, RS512, PS256, ES256, ES384, ES512, EdDSA. Requires an OAuth client certificate.
Encryption AlgorithmRequired for JWE and NESTED_JWT. Options: RSA-OAEP, RSA-OAEP-256. Requires an OAuth client certificate.
Encryption EncodingRequired when Encryption Algorithm is set. Options: A128CBC-HS256, A256GCM.

Rotate the Client Secret

note

Client secrets are only present on confidential clients, Full-stack App and Backend Service application types. This section does not apply to public clients such as Browser App or Mobile App.

If you need to invalidate the current client secret, open the General tab and click Regenerate Client Secret in the Danger Zone.

warning

The current client secret is immediately invalidated. Any running clients using the old secret will lose access. Update your application configuration right away.

Review OAuth 2.0 Configuration

note

This section applies to OAuth 2.0 / OIDC applications only.

The Advanced Settings tab shows the OAuth 2.0 settings configured at creation.

SettingDescription
Grant TypesThe OAuth 2.0 flows this application can use. Supported values: authorization_code, refresh_token, client_credentials, urn:ietf:params:oauth:grant-type:token-exchange. Applications configured with authorization_code cannot initiate new flows directly via POST /flow/execute. They must begin authentication through the Authorization endpoint (GET /oauth2/authorize), which initiates the flow internally.
Response TypesThe response types the application can request (for example, code).
Token Endpoint Auth MethodHow the application authenticates at the token endpoint: client_secret_basic (default), client_secret_post, private_key_jwt, or none (public clients).
Public ClientWhether this is a public client that cannot securely store a client secret.
PKCE RequiredWhether the application must send a code_challenge in every authorization request. Always Yes for public clients.

You can also attach a Certificate for client authentication (private_key_jwt) or token/userinfo encryption.

Certificate TypeDescription
NoneNo certificate configured.
JWKSProvide the JSON Web Key Set (JWKS) inline.
JWKS_URIProvide the URL of the application's JWKS endpoint. ThunderID fetches the public keys to verify signed requests. Must use HTTPS.

For full protocol-level details, including ACR values, scope-to-claims mapping, PAR enforcement, and token signing and encryption algorithms, see the OAuth & OIDC catalogue.

Configure Platform Attestation

Mobile applications cannot safely hold a Flow Secret, so they prove their identity a different way: by presenting a platform attestation token. ThunderID supports Google Play Integrity for Android clients and Apple App Attest for iOS clients. See Attestation for how this fits into the App-Native integration model. Attestation is optional; when enabled, an application configures exactly one platform, from its Advanced tab or via the top-level attestation block in a declarative resource.

Android (Google Play Integrity)

Configure the Android platform under the attestation.android block:

SettingDescription
Package NameThe Android application package name (for example, com.example.myapp) that must match the attested app.
Signing Certificate SHA-256 DigestsOne or more allowed signing certificate digests, in the URL-safe base64 form reported by Play Integrity. The attested app must match one of these.
Service Account CredentialsThe Google Cloud service account JSON used to call the Play Integrity API. It is write-only: ThunderID never returns it in responses, and leaving it blank when editing keeps the stored value.
note

The service account credentials are stored encrypted and never returned. For an app managed declaratively, set the serviceAccountCredentials field in the attestation.android block. On update, omit it to preserve the previously stored value.

iOS (Apple App Attest)

Configure the iOS platform under the attestation.apple block. Verification runs entirely on the server: ThunderID validates the attestation certificate chain against Apple's App Attest root certificate authority, then checks the attested app against the registered identity. This platform uses only non-secret identifiers, so nothing is stored write-only.

SettingDescription
Team IDThe Apple Developer Team ID (for example, ABCDE12345).
Bundle IDThe iOS application bundle identifier (for example, com.example.myapp) that must match the attested app.

The trust anchor used to validate the attestation certificate chain is a server-level setting, shared by every application, rather than a per-application one. It is configured under the attestation.apple.root_certificate key in deployment.yaml and holds the PEM-encoded Apple App Attestation Root CA certificate. ThunderID ships the public Apple root as the default in config/default.json, valid until 2045, so no configuration is required to verify iOS attestations out of the box.

note

Override this only if Apple publishes a new App Attestation Root CA. To do so, add the replacement certificate to deployment.yaml, which takes precedence over the shipped default:

attestation:
apple:
root_certificate: |
-----BEGIN CERTIFICATE-----
<your PEM-encoded certificate>
-----END CERTIFICATE-----
  • Manage Applications - Create, update, and delete applications
  • OAuth & OIDC - Protocol-by-protocol reference for OAuth 2.1 and OpenID Connect features
  • Flows - Build and assign custom authentication and registration flows

Explore with AI

ThunderID LogoThunderID Logo

Product

DocsAPIsSDKs
© Copyright Linux Foundation Europe.For web site terms of use, trademark policy and other project policies please see https://linuxfoundation.eu/en/policies.