Applications

Overview

A FusionAuth Application is simply something a user can log into. When you use the Login API, you will provide an applicationId to indicate what resource you’re attempting to obtain authorization.

When you use one of the OAuth2 / OpenID Connect authorization grants you will provide a client_id in some fashion. This client identifier will be unique to a single FusionAuth application which allows FusionAuth to to verify the User is registered for the requested Application and subsequently return the correct roles.

The applicationId and client_id can be considered synonymous, both concepts leverage the same "Id" value.

Add an Application

Before you start your integration with FusionAuth you need to setup at least one Application. Click on Applications from the left navigation to begin.

Create an Application
Table 1. Form Fields

Id Optional

An optional UUID. When this value is omitted a unique Id will be generated automatically.

Name Required

The name of the application. This value is for display purposes only and can be changed at any time.

Tenant Required

The tenant in which to create this application.

This field is only displayed once multiple tenants exist in FusionAuth. When only a single tenant exists the application will always be created in the default tenant.

Roles

The Roles tab will only be available on the Add Application form. To manage roles after the Application has been created you will use the Manage Roles action.

Table 2. Table columns

Name Required

The name of the role. This value should be short and descriptive. Roles can only be crated and deleted, only the role description may be modified.

Default Optional

One or more roles may be marked as default. A default role will be automatically added to new user registrations when no roles are explicitly provided on the API request.

Super Role Optional

A role may be optionally marked as a super user role. This indicator is just a marker to indicate to you that this role encompasses all other roles. It has not affect on the usage of the role.

Description Optional

An optional description to better describe the intended use of this role.

To manage Application Roles after you have added an Application, click the Manage Roles button on the index page.

Applications

OAuth

The OAuth tab allows you to configure the OAuth2 and OpenID Connect settings specific to this Application.

Application OAuth configuration
Table 3. Table columns

Client Id Read-only

The read only client Id for this application. The client Id is used by OAuth2 / OpenID Connect to authenticate the grant request.

Client secret Read-only

The read only client secret used for client authentication. When you enable Require authentication, this client secret will be required to obtain an access token from the Token endpoint.

You may optionally regenerate the client secret if you think the secret has been compromised.

Require authentication Optional

When enabled access to the Token endpoint will require the use of the client_secret parameter. In most cases you will not want to disable this setting.

There may be scenarios where you have a requirement to make a request to the Token endpoint where you cannot safely secure a client secret. In these scenarios you may need to disable client authentication.

Generate refresh tokens Optional

When enabled, FusionAuth will return a refresh token when the offline_access scope has been requested. When this setting is disabled refresh tokens will not be generated even if the offline_access scope is requested.

Authorized redirect URLs Optional

In order to utilize grants that require a browser redirect using the redirect_uri parameter, the URLs need to be added to this list. URLs that are not authorized may not be utilized in the redirect_uri.

Authorized request origin URLs Optional

This optional configuration allows you to restrict the origin of an OAuth2 / OpenID Connect grant request. If no origins are registered for this application, all origins are allowed.

By default FusionAuth will add the X-Frame-Deny HTTP response header to the login pages to keep these pages from being rendered in an IFRAME. If the request comes from an authorized origin, FusionAuth will not add this header to the response. If you wish to load FusionAuth login pages in an IFRAME you will need to add the request origin to this configuration.

Logout URL Optional

The optional logout URL for this application. When provided this logout URL should handle the logout of a user in your application.

If you need to end an HTTP session, or delete cookies to logout a user from your application, these operations should be handled by this URL. When the /oauth2/logout endpoint is utilized, each Logout URL registered for applications in this tenant will be called within an IFRAME to complete the SSO logout.

If the OAuth2 logout endpoint is used with this Client Id this configured Logout URL will be also utilized as the redirect URL if the post_logout_redirect_uri parameter was not provided.

If this application has not defined a Logout URL, the value configured at the Tenant level will be utilized. If no Logout URL has been configured a redirect to / will occur. A specific redirect URL may also be provided by using the post_logout_redirect_uri request parameter.

See the Logout endpoint for more information.

Logout behavior Optional

This selector allows you to modify the behavior when using the Logout endpoint with this Client Id.

  • All applications - This is the default behavior. Logout out of the FusionAuth SSO, call each registered Logout URLs for the entire tenant and then redirect to the Logout URL registered for this application.

  • Redirect only - Do not call each registered Logout URL in the tenant, instead logout out of the FusionAuth SSO and then only redirect to the Logout URL registered for this application.

See the Logout endpoint for more information.

Enabled grants Optional

The enabled OAuth2 grants. If a grant is not enabled and a client requests this grant during authentication an error will be returned to the caller indicating the grant is not enabled.

  • Authorization Code

  • Device

  • Implicit

  • Password

  • Refresh Token

See The OAuth 2.0 & OpenID Connect Overview for additional information on each of these grants.

When you enable the Device grant you will be shown one additional configuration field.

Application OAuth configuration Device URL
Table 4. Table columns

Device verification URL Required

The URL to be returned during the Device Authorization request to be displayed to the end user. This URL will be where the end user navigates in order to complete the device authentication workflow.

Required when the Device grant has been enabled.

Webhooks

The Webhooks tab allows you to select one or more webhooks to be used for this Application. In this example screenshot either not webhooks have been configured, or no application specific webhooks are configured.

In most cases you will not need to configure this panel. Only a few specific events are considered application specific, and when a webhook is configured to be application specific, only those events will be sent to the webhook.

In a future release this configuration tab will be removed.

No Application Webhooks

This example screenshot shows one Application specific webhook selected. This option will be visible if at least one webhook is configured as application specific.

Application Webhooks Selected

CleanSpeak

The CleanSpeak configuration panel allows you to optionally configure username filtering through the use of a CleanSpeak integration. See CleanSpeak Integration for additional configuration details.

The use of this feature requires a licensed instanced of CleanSpeak. See https://cleanspeak.com for additional information.

No Application Webhooks

JWT

The JWT configuration allow you to provide application specific JWT configuration. When this panel is left in the default state as in shown in this screenshot without the enable toggle turned on, the JWT configuration provided by the Tenant will be utilized.

Application JWT disabled
Table 5. JWT Settings disabled

Enable Required

When enabled you may configure Application specific JWT configuration including signing keys, durations, etc.

Access token populate lambda Optional

The lambda to be invoked during the generation of an Access Token (JWT) when a user authenticates against this Application.

Id token populate lambda Optional

The lambda to be invoked during the generation of an Id Token (JWT) when a user authenticates against this Application.

Once you have enabled JWT configuration for this Application you will be provided with additional configuration options.

Application JWT enabled
Table 6. JWT Settings enabled

Issuer Read-only

The issuer used when building the Access Token and Id Token in the iss claim. This value is displayed for read-only purposes, it can be modified in the Tenant configuration.

Refresh token duration Required

The duration in minutes the refresh token will be valid after creation. After this time has passed the refresh token will no longer be able to be used to receive a new Access Token (JWT).

JWT duration Required

The duration in seconds a JWT will be valid after creation. After this time has passed the JWT will expire and can no longer be used.

Access token signing key Optional

The signing key used to sign the Access Token (JWT) when a user authenticates against this Application. When this value is not selected the default selection will cause FusionAuth to generate a new key pair and assign it to this configuration.

Id token signing key Optional

The signing key used to sign the Id Token (JWT) when a user authenticates against this Application. When this value is not selected the default selection will cause FusionAuth to generate a new key pair and assign it to this configuration.

SAML

The SAML configuration allows you to reveal FusionAuth as a SAML v2 Identity Provider (IdP).

Application SAML
Table 7. SAML Settings disabled

Enabled Required

When enabled you may configure FusionAuth to reveal this application as a SAML v2 Identity Provider (IdP).

Once you have enabled SAML for this Application you will be provided with additional configurations options.

Application SAML disabled
Table 8. SAML Settings enabled

Issuer Required

Audience Optional

Callback URL (ACS) Required

Logout URL Optional

Signing key Optional

The signing key used to sign the SAML request. When this value is not selected the default selection will cause FusionAuth to generate a new key pair and assign it to this configuration.

XML signature canonicalization method Optional

Response populate lambda Optional

Debug enabled Optional

Registration

The registrations configuration allows you to provided Application specific registration configuration. Primarily registration verification and self service registration options.

Application Registration
Table 9. Registration settings

Verify registrations Optional

When enabled a registration can be verified using an email workflow. This is very similar to the email verification process but instead it allows you to send an email to an end user for them to confirm they registered for the application.

Verification template Required

The email template to be used when sending the Registration Verification email to the end user. This field is required when Verify registrations field toggle has been enabled.

Delete unverified registrations Optional

When enabled, users who have not verified their registration for this application after a configurable duration since the registration was created will have the registration deleted.

Delete after Required

The duration that a user’s registration to this application must exist before being deleted for being an unverified. This field is required when Delete unverified registrations field toggle has been enabled.

Application Self Service Registration
Table 10. Self service registration

Enabled Optional

Confirm password Optional

Toggle this field if you want FusionAuth to require a password confirmation when setting a new password during registration.

Login type Optional

This field indicates if the email address or username should be collected as the user’s unique identifier.

Registration fields Optional

The optional fields to be displayed on the registration form.

 
 

Column Description

Field Read-only

The user attribute that can be shown on the registration form.

Enabled Optional

When enabled this field will be shown on the registration form.

Required Optional

When enabled this field will be set as required and the user will be unable to complete registration unless the field is provided.

Security

Application Security
Table 11. Login API Settings

Require an API key Optional

Generate refresh tokens Optional

Allow token refresh Optional

Table 12. Passwordless Login

Enabled Optional

Table 13. Authentication Tokens

Enabled Optional