Skip to main content

Configure passkeys

SecureAuth Connect passkey authentication enables passwordless sign-in using FIDO2 discoverable credentials or standard WebAuthn. You can configure one of two modes per workspace:

ModeHow it works
SmartThe user signs in with a single tap, no username required. The authenticator presents available passkeys automatically using discoverable credentials. Works with platform authenticators (Touch ID, Windows Hello) and modern FIDO2 hardware keys (YubiKey 5, Titan).
ClassicThe user enters a username first, then confirms with a passkey. The server provides the authenticator with the registered credential IDs for that user. Works with all FIDO2 authenticator types.
note

Both modes support hardware security keys. Smart mode does not work with legacy U2F keys (pre-FIDO2) because they do not support discoverable credentials.

Where passkey settings live

You configure passkeys in two locations in the admin console:

LocationWhat it controls
Authentication > Settings > MethodsWhich passkey mode is active for the workspace (Smart or Classic). This is a workspace-level setting. Different workspaces on the same tenant can use different modes.
Users > [identity pool] > Sign-in and Sign-upRelying Party ID and Origins (Passkey Settings section), credential limits (Pool Limits section), and whether passkey is available as a first or second factor (Sign-in section). These are pool-level settings.

Step 1: Enable passkeys at the workspace level

  1. Go to Authentication > Settings > Methods.

  2. Under Allowed Authentication Methods, enable Passkey.

  3. Select a mode:

    • Smart: Users sign in without entering a username. The authenticator presents available passkeys automatically.
    • Classic: Users enter a username first, then verify with a passkey.

    Allowed Authentication Methods page showing Passkey enabled with Smart and Classic mode options

tip

You can switch between Smart and Classic at any time. Switching in either direction requires existing users to re-enroll if they only have credentials registered under the previous mode.

Step 2: Add passkeys to the identity pool

  1. Go to Users > your identity pool > Sign-in and Sign-up.

  2. Expand the Sign-in section.

  3. Under First-Factor Authentication Methods or Second-Factor Authentication Methods, select + Add method and choose Passkey.

  4. To set Passkey as the preferred method, click the three-dot menu and choose Change to Preferred. The preferred method appears first at sign-in.

    Sign-in and Sign-up settings showing Passkey as the preferred first-factor authentication method

  5. Save your changes.

Step 3: Configure passkey settings

Passkey settings define the domain and origins that your passkeys are bound to. A passkey registered for one domain only works on that domain.

  1. Go to Users > your identity pool > Sign-in and Sign-up.

  2. Scroll to the bottom and expand the Passkey Settings section.

    Passkey Settings section with Relying Party ID and Relying Party Origins fields

  3. Configure the following fields:

FieldDescriptionExample
Relying Party IDThe domain your passkeys are bound to. Must not contain a scheme, port, or path. If left blank, the server domain is used.yourcompany.com
Relying Party OriginsThe full URL(s) of pages where users register or sign in with passkeys. Must include a scheme and host, and must match or be subdomains of the Relying Party ID. If left blank, the server origin is used.https://app.yourcompany.com
  1. Save your changes.

Step 4: Set passkey credential limits

Users can register multiple passkeys, for example a work laptop, a personal phone, and a hardware security key.

  1. Go to Users > your identity pool > Sign-in and Sign-up.

  2. Expand the Pool Limits section.

    Pool Limits section showing WebAuthn Credentials Capacity set to 10

  3. Update WebAuthn Credentials Capacity to your preferred maximum. The default is 10. The maximum is 100. The value must be less than or equal to Max Credentials.

  4. Save your changes.

User self-enrollment

Users can manage their own passkeys from the self-service portal without admin action:

  • Register a new passkey.
  • Give each passkey a name (for example, "Work MacBook" or "iPhone 16").
  • Delete passkeys they no longer use (users cannot delete their last remaining passkey).

The enrollment flow automatically matches the active mode. If Smart mode is active, new enrollments create discoverable credentials. If Classic mode is active, new enrollments create standard credentials.

Developer reference

You can manage passkeys through both self-service and system API endpoints.

Self-service endpoints

The user must be authenticated within the last 5 minutes with the manage_ss_profile scope. See the Identity Self-Service API reference.

EndpointModeDescription
POST /v2/self/webauthn/create/beginClassicStart Classic passkey enrollment
POST /v2/self/webauthn/create/completeClassicComplete Classic passkey enrollment
POST /v2/self/usernameless-webauthn/create/beginSmartStart Smart passkey enrollment
POST /v2/self/usernameless-webauthn/create/completeSmartComplete Smart passkey enrollment
DELETE /v2/self/webauthn/{credentialID}BothDelete a passkey
PUT /v2/self/webauthn/{credentialID}/nameBothName a passkey

System endpoints

These endpoints require the identity scope. See the Identity System API reference.

EndpointModeDescription
POST /system/pools/{ipID}/users/{userID}/webauthn/create/beginClassicAdmin starts Classic enrollment for a user
POST /system/pools/{ipID}/users/{userID}/webauthn/create/completeClassicAdmin completes Classic enrollment
POST /system/pools/{ipID}/users/{userID}/usernameless-webauthn/create/beginSmartAdmin starts Smart enrollment for a user
POST /system/pools/{ipID}/users/{userID}/usernameless-webauthn/create/completeSmartAdmin completes Smart enrollment
POST /system/pools/{ipID}/user/webauthn/add/requestClassicSend OTP to user before adding passkey
POST /system/pools/{ipID}/user/webauthn/add/completeClassicValidate OTP and add passkey
DELETE /system/pools/{ipID}/users/{userID}/webauthn/{credentialID}BothAdmin deletes a user's passkey
PUT /system/pools/{ipID}/users/{userID}/webauthn/{credentialID}/nameBothAdmin names a user's passkey

Listing a user's passkeys

Passkeys are stored as user credentials with type webauthn. To retrieve a user's enrolled passkeys, call the Get User Details endpoint and filter the credentials array for entries where type is webauthn:

GET /system/pools/{ipID}/users/{userID}

The discoverable_id field in each credential distinguishes Smart credentials (populated) from Classic credentials (empty).

Key difference between modes

The Smart enrollment endpoints set ResidentKeyRequirement: required in the WebAuthn creation options, which tells the authenticator to create a discoverable credential. The Classic endpoints use standard WebAuthn registration without this requirement. All other request and response shapes are identical.

Pool authentication mechanism values

The mechanism in the authentication_mechanisms configuration controls the passkey mode:

ModeMechanism value
Smartusernameless_webauthn
Classicwebauthn

These values are mutually exclusive per workspace. Only one can be active at a time.

See also