Link
HID Global
Web Authentication API for DigitalPersona Access Management

Overview

DigitalPersona Access Management (DPAM) is a suite of services and APIs helping you to accomplish typical access management tasks like user credential enrollment, identification, authentication, identity claims issuance, access policy management etc.

As a part of DPAM, the DigitalPersona Web Authentication API allows you to strengthen your web application security with multifactor authentication (MFA), working seamlessly with various authentication such as fingerprint readers, card readers, cameras for face recognition, FIDO tokens, OTP tokens, as well as with traditional credentials like passwords, PINs and Security Questions.

Dependencies

The library depends on the:

  • DigitalPersona Web Services API
  • DigitalPersona Core API

It also requires the DigitalPersona Web Components and DigitalPersona Authentication Server running in your security domain.

Some authentication tokens (fingerprints, cards, U2F, Integrated Windows Authentication) require the DigitalPersona Device Access API to read authentication data from a device and pass it to the Web Authentication API.

Requirements

  • Evergreen browsers:
    • Chromium-based
    • Firefox
    • Edge
  • Legacy browsers (shims required):
    • IE11
  • Node JS (shims required).

The library is distributed in following forms:

  • TypeScript (code and typings)
  • transpiled ES5 (unbundled and bundled UMD module)
  • transpiled ES6 (unbundled and bundled UMD module)

Browser support

The library uses ES6 Promise API for asynchronous calls. If it is used in older browsers, you have to provide a “shim” adding the Promise API to your target browser.

The library uses ES6 fetch API for HTTP connection. If it is used in older browsers, you have to provide a “shim” adding the fetch API to your target browser.

Node JS support

Node JS requires a “shim” for atob and btoa functions, for example:

const base64 = require('base-64');
global.btoa = function(s) { return base64.encode(s); }
global.atob = function(s) { return base64.decode(s); }

The library uses ES6 fetch API for HTTP connection. If it is used in Node JS, you have to provide a “shim” adding the fetch API to NodeJS, for example a node-fetch by David Frank:

global.fetch = require('node-fetch');

Additional documentation: