Skip to content

Passkey endpoints

Info

New in v5.3.0

The W3C Passkey Endpoints specification defines a well-known URL (/.well-known/passkey-endpoints) that allows passkey providers to discover where users can manage their passkeys on your application.

This enables password managers and platform authenticators to link directly to your passkey enrollment and management pages.

Configuration

Enable the passkey endpoints in your Symfony bundle configuration:

config/packages/webauthn.yaml
webauthn:
    passkey_endpoints:
        enabled: true
        enroll: 'https://example.com/passkeys/register'
        manage: 'https://example.com/passkeys/manage'
        prf_usage_details: 'https://example.com/passkeys/prf-info'

All URL fields are optional. You can enable only the endpoints relevant to your application:

config/packages/webauthn.yaml
webauthn:
    passkey_endpoints:
        enabled: true
        enroll: 'https://example.com/register'
        manage: 'https://example.com/settings/passkeys'

Configuration options

Option Type Required Description
enabled boolean Yes Enable the .well-known/passkey-endpoints route
enroll string No URL to the passkey enrollment/creation interface
manage string No URL to the passkey management interface
prf_usage_details string No URL to informational page about PRF extension usage

Response format

When enabled, a GET request to /.well-known/passkey-endpoints returns a JSON response:

{
    "enroll": "https://example.com/passkeys/register",
    "manage": "https://example.com/passkeys/manage",
    "prfUsageDetails": "https://example.com/passkeys/prf-info"
}

Warning

According to the specification, all URLs must be absolute HTTPS URLs.

How it works

When the passkey endpoints are enabled, the bundle automatically:

  1. Registers a PasskeyEndpointsController as a service
  2. Adds the /.well-known/passkey-endpoints route to the router
  3. Returns the configured URLs as a JSON response

No additional controller or route configuration is needed.

See also