Companies that want to own passwordless authentication internally, or are looking to implement a turnkey solution for passkeys, will likely look for libraries or vendors. When selecting a library to implement passkeys, what should
Relying Party developers keep an eye on?
Note: A small set of these criteria are not specific to passkeys, but are useful
to keep in mind when selecting an open-source solution.
WebAuthn versions and capabilities
Version: Check which version of the spec the library supports (
Level 2,
Level 3…)
Features and capabilities: Check whether the library includes key features and capabilities for your use case.
Does the library help with generating registration and authentication options? Does it help with verification of the registration and authentication response? From a Relying Party perspective, these are the key steps of your implementation; make sure the library you select provides useful functions for these steps.
If you’re thinking of using attestation features:
Does the library help leverage
FIDO MDS in some way?
Can it verify all attestation statement formats?
Verification steps
Check whether the library follows the necessary verification steps:
Clear language: Instructions using plain language are critical for broader user understanding. Prioritize solutions aligned with the
FIDO UX guidelines.
Full-stack coverage: A library that offers tightly-integrated frontend and backend components, like in
SimpleWebAuthn, can streamline your integration.
Developer documentation: Check that the library has a maintained docs website to ease the integration process.
Developer involvement and maintenance
Open-source maintenance: For open-source options, investigate their community activity. A few active issues, or many issues with up-to-date labels (assuming these require manual assignment), and comments by contributors, are all signals of an active community.
Note that standards can be slow-moving! As a result, WebAuthn/passkey libraries can go a long time between updates if there aren’t any real issues with it—but it doesn’t mean they’re unmaintained.
Licensing
Review the solution’s licensing model (e.g., MIT, Apache, commercial) in the
context of your project.