I'm using a Token2 Bio3 with FreeIPA passkey auth on Rocky 10. The setup is --require-user-verification=off in FreeIPA and alwaysUv=true on the key, so the key enforces UV locally via fingerprint. When the fingerprint reads correctly, auth works.
When the fingerprint doesn't read, the prompt just loops back to "Insert your passkey device, then press ENTER" and there's no way to enter a PIN. The only recovery is to unplug the key and try again.
From /var/log/sssd/passkey_child.log:
[passkey_child] [get_assert_data] (0x0400): Getting assert.
[passkey_child] [request_assert] (0x0040): fido_dev_get_assert failed [54]: FIDO_ERR_PIN_REQUIRED.
The device returns FIDO_ERR_PIN_REQUIRED to indicate PIN should be used. passkey_child logs it correctly then exits with status 1 instead of prompting for the PIN.
The same key handles this correctly in Chromium WebAuthn: fingerprint failure falls through to a PIN prompt within the same flow.
To reproduce:
- Biometric FIDO2 key with
alwaysUv=true (Token2 PIN+ Bio3, AAGUID eabb46cce24180bfae9e96fa6d2975cf)
ipa user-add-passkey <user> --register
ipa passkeyconfig-mod --require-user-verification=off
- Trigger any PAM auth, fail or skip the fingerprint
- Expected: PIN prompt
- Actual: loops on "press ENTER",
FIDO_ERR_PIN_REQUIRED in passkey_child.log
Environment:
- Rocky Linux 10
- sssd-2.11.1-2.el10_1.1
- ipa client 4.12.2
- libfido2 1.14.0
I'm using a Token2 Bio3 with FreeIPA passkey auth on Rocky 10. The setup is
--require-user-verification=offin FreeIPA andalwaysUv=trueon the key, so the key enforces UV locally via fingerprint. When the fingerprint reads correctly, auth works.When the fingerprint doesn't read, the prompt just loops back to "Insert your passkey device, then press ENTER" and there's no way to enter a PIN. The only recovery is to unplug the key and try again.
From
/var/log/sssd/passkey_child.log:The device returns
FIDO_ERR_PIN_REQUIREDto indicate PIN should be used. passkey_child logs it correctly then exits with status 1 instead of prompting for the PIN.The same key handles this correctly in Chromium WebAuthn: fingerprint failure falls through to a PIN prompt within the same flow.
To reproduce:
alwaysUv=true(Token2 PIN+ Bio3, AAGUIDeabb46cce24180bfae9e96fa6d2975cf)ipa user-add-passkey <user> --registeripa passkeyconfig-mod --require-user-verification=offFIDO_ERR_PIN_REQUIREDin passkey_child.logEnvironment: