Add Credential Manager support and improve WebAuthnLinux authenticator functionality - #3
Add Credential Manager support and improve WebAuthnLinux authenticator functionality#3Karloss1234 wants to merge 7 commits into
Conversation
|
This PR is a huge progress. The installation is currently still very cumbersome though. I had to upload under addons.mozilla.org and change the ID (because of duplicate ID error) and also change the ID in the installer script and download the signed XPI. Any other attempt to make the temporary addon permanent failed (tried the Firefox Developer Version, disabled signature verification in about:config, yada yada - to no avail). But this will hopefully be better when there is an official version on addons.mozilla.org. Now, I have a permanent addon in the browser and a popup window appears with a button. But unfortunately, the fingerprint doesnt verify: fprintd-verify on the command-line works. But no matter how often I try, always verify-no-match with the add-on. |
|
Good to see someone testing it. Thanks for trying the fork. I did make one small change in
Would you mind testing these two commands in your terminal and letting me know if there is any difference?
and:
The extension error you posted is identical to what I get if I intentionally use the wrong finger, so I want to confirm whether the command behaves differently on your system. If you like, you can also temporarily edit Could you also let me know: Linux distribution and version Yes, the installation procedure still needs a lot of work. For my setup, setting: I am using the latest Firefox installed from the Kubuntu APT repository (not Snap or Flatpak), and I also test with LibreWolf. It would be useful to know whether this behaves differently on other Firefox builds or distributions. Can you let me know your Firefox Install environment? Thanks!` |
|
I have been playing around with Flatpack Firefox. |
|
@Karloss1234 : My coworker took that laptop home, so I can only check next week. A few things I can already say though:
|
|
Okay, I'll look to making an install of Manjaro and see if I get the same. Let me know about Does It appears that some distros allow |
|
Updated the installer and tested the new installation flow. See fork README for install instructions. Changes:
Testing completed:
The installer is now intended to make the correct branch and browser-family setup clearer for normal users rather than only developers. |
This started off as a solution to exactly one problem I was facing. I truthfully did not expect a 2nd user for this plugin 😅 . I'll work on pipelining the project to firefox addons.
Others have pointed out the issue too, where only the first enrolled fingerprint is being tested. Let me merge that, once I have the responses from the contributor. |
|
Thank you for your contribution 🥇 . I'll work on reviewing, merging and releasing this, but please bear with me a tiny bit more.
|
|
@Karloss1234 That's an awesome update. Does a lot of required fixes. I do have a couple of requests:
|
|
I went through the branch and cleaned up the diff: -restored upstream explanatory comments There is still debugging in webauthn-authenticator.js. I was of the mind that I would have another go at improving the extension at some point, and the existing debugging may be useful for myself or other contributors. But I can clear it out if you want. It can always be removed with later efforts. The install wizard is a little backwards for Chrome install (it asks for Extension ID before asking for desired install browser), but at least it works and is a big improvement. The updated commit is now pushed. |
|
Okay, thanks for all the changes. The problem with the unrecognized fingerprint was my fault. A bit embarassing. fprintd --verify did in fact also show verify-no-match on the command line, but because it immediately returned I didn't notice this as an error, didnt notice the word "no" and thought it had verified. The main problem was that my coworker swiped over the sensor but apparently this sensor just requires a single touch. When we re-enrolled the fingerprint with single touch it worked. I still don't understand why there isn't much more interest of a wider audience in this. Linux on a laptop used to be an absolute nightmare (no audio, no keyboard backlight, sometimes even no graphics) just a few years ago. Now, with various laptops I have zero problems except this one. It's really great that I can now use the fingerprint for web authentication. Thank you so much for making this. The only part missing now is an updated extension on the addon store so we don't have to jump through all these hoops to install it :-) And very minor, the dialog that appears could perhaps one day need an UI designer ;-) And the additional necessary click on the button is of course unnecessary, but I don't know whether there's a way to avoid that. But that's nitpicking of course. This is otherwise just brilliant and a major step forward to bring the Linux laptop experience on par with The Evil OS. Thanks again for making this! |
|
I used Windows Hello Finger scan all the time. I'm surprised of the lack of demand for this as well. Yes, I'd like to do some updates for the UI. Some ideas:
|
Perfect.
@Karloss1234 no no no no. Please put all that beautiful debug info back in there 🙏 . This was almost perfect, as-was. Maybe add a
We want and love debug information. Expand and extent it as much as you want.
I'll work on registering a release against the chrome store as well. And see if I can integrate the deployment process into the repository via release tagging.
Windows and Mac have the advantage (and disadvantage) of centralized control and policy, so its easy to implement a platform framework. Linux is about freedom, and that comes at the cost of freedom to not conform to a unified platform architecture, if you see issues with the architecture. that said, there are major efforts to standardize the authn layer for linux, but it'll take time to spread wide. Till then, we have this (which also explains why I put linux in the name 😆 )
Keep that for the next PR. Just put back the debug info, and I'll proceed with version update, new firefox version release, and investigating and releasing via chrome+chromium store. |
|
I'm unable to merge this as-is, as the commits are unsigned: I'll pull the changes on my end, squash them into a single commit, and push a signed commit into the repo via a new PR. including the required fixes to the indentation and comment restoration. Additionally, I will create 2 ticket:
In the mean time, please look into signing your commits with GPG at https://git-scm.com/book/ms/v2/Git-Tools-Signing-Your-Work, so that:
|
|
GPG signing is now configured locally. Future commits from me will be signed and verified by GitHub. Thanks for the guidance. Restored the background.js debug logging as requested. The additional logging is useful for diagnosing message flow between the content script, background script, and authenticator popup. I have kept the existing behaviour changes (such as forwarding responses only to the requesting tab) while restoring the diagnostic information. Future improvements could move this behind a debug flag as discussed. As much as I am not a fan of Chrome, it would be great if it were added to the Chrome extension library to get more user feedback. |
|
Tested and fixed the Firefox/LibreWolf native messaging directory handling. I did a fresh install of Manjaro and found that the messaging host fall back installation directory was wrong. The installer now consistently uses only The previous fallback incorrectly created/used Fix committed and pushed as |

Core authenticator improvements (
webauthn-authenticator.js)Major improvements have been made to the WebAuthn authenticator implementation. It is now a functional Linux software Passkey authenticator with built-in credential management capabilities.
Summary
This PR improves WebAuthnLinux by adding Credential Manager functionality, improving credential persistence, and strengthening browser/native messaging integration.
The main areas changed are:
Testing has successfully verified Passkey registration and login with:
Specific changes
Credential management
system_credentialsthrough browser storage.Authenticator reliability
WebAuthn compatibility
]- Improved authenticator metadata handling, including AAGUID management.
Native messaging installation improvements
Debugging and development
Breaking changes
Installing over Previous developments produces errors. Delete all traces of previous installs.