You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an 'Advanced configuration' section under the dedicated passkey
strategy that documents:
- authenticator_selection (attachment, require_resident_key, user_verification)
- attestation (preference, allow_none, allow_self, allow_untrusted)
- timeouts (registration, login)
Include a warning admonition explaining that disabling
attestation.allow_none rejects most consumer passkeys, and add a
three-tab example (Ory CLI, Ory Network, self-hosted Kratos) showing
cross-platform attachment with required user verification.
|`authenticator_selection.attachment`| string |`"platform"`| Which authenticators are eligible: `"platform"` (Touch ID, Windows Hello), `"cross-platform"` (security keys), or `""` for no preference. |
123
+
|`authenticator_selection.require_resident_key`| boolean |`true`| Whether the authenticator must create a client-side discoverable credential. |
124
+
|`authenticator_selection.user_verification`| string |`"preferred"`| Whether biometrics or a PIN are required: `"required"`, `"preferred"`, or `"discouraged"`. |
125
+
|`attestation.preference`| string |`"none"`| Attestation conveyance preference sent to the authenticator: `"none"`, `"indirect"`, `"direct"`, or `"enterprise"`. |
126
+
|`attestation.allow_none`| boolean |`true`| Accept passkeys that provide no attestation statement. Most consumer passkeys, including iOS, use none attestation. |
127
+
|`attestation.allow_self`| boolean |`true`| Accept passkeys that provide a self-signed attestation statement with no external certificate authority. |
128
+
|`attestation.allow_untrusted`| boolean |`true`| Accept passkeys whose attestation certificate chain has no trusted root. |
129
+
|`timeouts.registration`| duration | library default (5m) | Timeout for the registration ceremony. Use Go duration format, for example `"60s"` or `"5m"`. |
130
+
|`timeouts.login`| duration | library default (5m) | Timeout for the login ceremony. Use Go duration format. |
131
+
132
+
:::warning
133
+
134
+
Disabling `attestation.allow_none` rejects most consumer passkeys. iOS does not support attestation at all, and Android and
135
+
Windows support it inconsistently. Only restrict attestation if your deployment requires attested authenticators, such as
136
+
FIDO-certified security keys in a regulated environment. The default configuration allows all attestation types so that any
137
+
standards-compliant passkey can register.
138
+
139
+
:::
140
+
141
+
The following example configures cross-platform authenticators (such as a HID token or YubiKey) with required user verification:
0 commit comments