Skip to content

Conversation

@phsmadja
Copy link

Initial Revision - support of Passkey User Verification device (fingerprint). Fallback to PIN if the verification fails or the device does not support user verification. Adding command to obtain device information of the device supporting key handle (passkey mapping).

Initial Revision - support of Passkey User Veification device
(fingerprint).  Fallback to PIN if the verification fails or the device
does not support user verification.
@alexey-tikhonov
Copy link
Member

Unit tests are failing:

[ RUN      ] test_select_authenticator
[  ERROR   ] --- No entries for symbol __wrap_fido_dev_has_pin.
src/tests/cmocka/test_passkey_child.c:276: error: Could not get value to mock function __wrap_fido_dev_has_pin
src/tests/cmocka/test_passkey_child.c:942: note: Previously returned mock value was declared here
[  FAILED  ] test_select_authenticator

[ RUN      ] test_request_assert
[  ERROR   ] --- 0x36 != 0
[   LINE   ] --- src/tests/cmocka/test_passkey_child.c:1157: error: Failure!
[  FAILED  ] test_request_assert

[ RUN      ] test_authenticate_integration
[  ERROR   ] --- Test failed with exception: Segmentation fault(11)
[  FAILED  ] test_authenticate_integration
[ RUN      ] test_get_assert_data_integration
[  ERROR   ] --- Test failed with exception: Segmentation fault(11)
[  FAILED  ] test_get_assert_data_integration

see, for example, https://download.copr.fedorainfracloud.org/results/@sssd/pr7997/fedora-41-x86_64/09156446-sssd/builder-live.log.gz

@alexey-tikhonov
Copy link
Member

Diff (https://github.com/SSSD/sssd/pull/7997/files) looks very weird. Is this because of newline character change?

@phsmadja
Copy link
Author

phsmadja commented Jun 12, 2025 via email

@alexey-tikhonov alexey-tikhonov requested a review from ikerexxe June 12, 2025 17:09
Copy link
Contributor

@ikerexxe ikerexxe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the IDE has played a trick on you because it has changed the indentation in all passkey related files and made it very difficult to review the changes.

In addition, SSSD understands the user-verification as any additional authentication factor (either be it the fingerprint or the PIN), so if it is enabled it will always request them and the fallback will be handled by SSSD silently. What is it exactly you are trying to achieve with this PR?

@phsmadja
Copy link
Author

phsmadja commented Jun 13, 2025 via email

@phsmadja
Copy link
Author

phsmadja commented Jun 13, 2025 via email

@phsmadja
Copy link
Author

Hello,
The build of my passkeyuv branch tagged "fix passkey integration tests" (21 jun 2025) is fully successfull.
Could you tell me what is the next step to have an external revue of the code ?
Of course, all remarks, suggestions, updates, fixes, propositions are welcome !
The best. Philippe.

@ikerexxe
Copy link
Contributor

This concept seems to align well with a preflight mode for FIDO2 authentication, where the system first assesses the environment and available device configuration options, such as user-verification. If the system already possesses validated user-verification information, it should be possible to omit the PIN request during the authentication stage. Am I understanding this correctly?

If so, we're already working on a similar pattern in #7631 and #7983. However, these PRs don't yet incorporate the omission of the PIN request when user-verification has been validated by other means, as our current focus is on establishing a robust passkey/FIDO2 authentication workflow within the GUI.

@phsmadja
Copy link
Author

Hello Ike,
my proposition is an implementation of a preflight mode. According the device capabilities, the user interface omits th presentation PIN request. On user verification failure, it fallbacks to PIN request.
What is missing:

  1. Display of the remaining PIN retries.
  2. Translation of the UI messages according the language.
    What I do not like in my implementation (but I do not know how to fix):
  3. Usage of file indicators as communication means between different sss-client process.
  4. Performance of the User Interface.
  5. The fact that the "connect your passkey device" message is still displayed during the finalisation of the login (after valid user verification).

The best
Philippe

@phsmadja
Copy link
Author

Please find attached a document .ods describing the use cases that have been implemented. Of course, the use cases shall be properly described using professional tool used by the community. Hoping this document is explicit enough.
Passkeyuv - use cases.ods

Cheers
Philippe

@ikerexxe
Copy link
Contributor

Hi @phsmadja,

Thanks for this PR! I really like the changes and the UX improvement it brings.

However, this work collides a bit with what we're currently doing in #7983. That PR is setting up the basic infrastructure to communicate preflight options from the passkey child to the SSSD process. Once it's merged, it should be quite straightforward to integrate the user-verification data and implement this improved UX workflow.

Would you be open to holding off on merging this until #7983 is in? We can then build on top of that foundational work.

@phsmadja
Copy link
Author

Hi Ike. Thanks for you for liking it. My work is more or less a prove of concept and i'm pretty sure it can be implemented in a nicer way.
You can get my work and fusion it with #7953. Sure we will have a very good result according the UI and fonctionnalities '(adding number of retries, lock user interface). I do not have more bandwidth to propose a merging to the community, hoping you can do the work.
The best. Philippe

@pbrezina pbrezina force-pushed the master branch 2 times, most recently from f5d64b3 to b854636 Compare November 4, 2025 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants