2021-10-06 11:57:42 +00:00
|
|
|
## WebAuthn - authenticating users to services using public key cryptography
|
|
|
|
|
|
|
|
WebAuthn is a web standard published by the W3C. Its goal is to
|
2021-11-20 19:39:15 +00:00
|
|
|
standardize an interface for authenticating users to web-based
|
2021-10-06 11:57:42 +00:00
|
|
|
applications and services using public key cryptography. Modern web
|
|
|
|
browsers support WebAuthn functionality.
|
|
|
|
|
2023-10-02 02:53:37 +00:00
|
|
|
WebAuthn provides two functions: register and authenticate. Usually the
|
|
|
|
public-private keypair is stored on an external device, called a security key
|
2021-11-20 19:39:15 +00:00
|
|
|
(Yubikey, Trustkey etc.) or inside a platform(OS) authenticator. Platform
|
|
|
|
authenticators are available on all modern platforms, such as Windows, Mac,
|
|
|
|
Android and iOS. After the public key is registered, it can
|
2021-10-06 11:57:42 +00:00
|
|
|
be used to authenticate to the same service.
|
|
|
|
|
|
|
|
This module does not preserve a database of registered public keys, their
|
|
|
|
credential ID, usernames and pending challenges - instead this data must
|
|
|
|
be stored by a client of this API in a database or other persistent
|
|
|
|
storage.
|
|
|
|
|
|
|
|
[WebAuthn specification at W3C](https://w3c.github.io/webauthn/)
|
|
|
|
|
|
|
|
A basic demonstration server is provided (`bin/webauthn_demo`),
|
|
|
|
running at [webauthn-demo.robur.coop](https://webauthn-demo.robur.coop).
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
2023-09-09 09:58:47 +00:00
|
|
|
[API documentation](https://robur-coop.github.io/webauthn/doc) is available online.
|
2021-10-06 11:57:42 +00:00
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
`opam install webauthn` will install this library.
|