• Stars
    star
    105
  • Rank 328,196 (Top 7 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

node.js webauthn framework

webauthn

Implementation of strong authentication with the webauthn standard and FIDO2. Strong authentication is an authentication method using a physical key.

For a more thorough introduction see these two nice articles:

Installation

npm install @webauthn/client
npm install @webauthn/server

usage

Webauthn is composed of two parts @webauthn/client and @webauthn/server

On the browser

import { 
    solveRegistrationChallenge,
    solveLoginChallenge
} from '@webauthn/client';
  • solveRegistrationChallenge: convert the challenge returned by the server on the register route into the response to be returned
  • solveLoginChallenge: convert the challenge returned by the server on the login route into the response to be returned

See an example in example/front

On the server

import {
    parseRegisterRequest,
    generateRegistrationChallenge,
    parseLoginRequest,
    generateLoginChallenge,
    verifyAuthenticatorAssertion,
} from '@webauthn/server';
  • parseRegisterRequest: Extract challenge and key from the register request body. The challenge allow to retrieve the user, and the key must be stored server side linked to the user.
  • generateRegistrationChallenge: Generate a challenge from a relying party and a user { relyingParty, user } to be sent back to the client, in order to register
  • parseLoginRequest: Extract challenge and KeyId from the login request.
  • generateLoginChallenge: Generate challengeResponse from the key sent by the client during login. challengeResponse.challenge should be stored serverside linked to the corresponding user
  • verifyAuthenticatorAssertion: Take the loginChallenge request body and the key stored with the user, and return true if it passes the authenticator assertion

See an example in example/server

Roadmap

For now only fido-u2f and packed format are implemented

  • Implement android-key format
  • Implement android-safetynet format
  • Implement tpm format

More Repositories

1

awless

A Mighty CLI for AWS
Go
4,979
star
2

PEPS

Innovative Open source Email + File sharing
Python
699
star
3

redemption

A GPL RDP proxy
C++
212
star
4

pylogsparser

Library for Log parsing in Python - get the documentation at http://wallix.github.com/pylogsparser/
Python
126
star
5

triplestore

Nifty library to manage, query and store RDF triples. Make RDF great again!
Go
114
star
6

awless-templates

Repository of examples for awless templates (see https://github.com/wallix/awless)
Shell
61
star
7

pylibssh2

python bindings for libssh2 library
C
38
star
8

datapeps-sdk-js

DataPeps SDK in TypeScript/JavaScript
JavaScript
26
star
9

notes

Notes is simple note-taking application, which serves as a demo for DataPeps
JavaScript
21
star
10

awless-scheduler

Schedule runs and reverts of awless templates
Go
12
star
11

WALLIX-PuTTY

PuTTY for the WALLIX Bastion
C
7
star
12

PEPS-chat

Real-time chat and group chat for PEPS
Opa
7
star
13

PEPS-source

Source code of MLstate/PEPS
Opa
7
star
14

vt-emulator

A headless VTXXX-compatible linux terminal emulator
C++
5
star
15

terraform-provider-wallix-bastion

Terraform provider for Wallix bastion
Go
5
star
16

Automation_Showroom

This repository present example of automation around WALLIX Products ( Terraform, python, etc.)
HCL
5
star
17

ppocr

Basic OCR.
C++
4
star
18

awless-reinvent

The full script for the awless demo at AWS ReInvent 2017
Shell
3
star
19

terraform-provider-waapm

Terraform provider for WALLIX Application-to-Application Password Manager (WAAPM)
Go
2
star
20

homebrew-awless

awless brew formula
Ruby
2
star
21

wbrest_samples

WALLIX Bastion REST API samples
Python
1
star
22

packager

Simple package generator
Python
1
star
23

myprivatenote

A sample application built with DataPeps
JavaScript
1
star