Link
HID Global
DPAM Web Enrollment 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 Enrollment API allows you to strengthen your web application security with multifactor authentication (MFA) seamlesly working with various authentication devices like fingerprint readers, card readers, cameras for face recognition, FIDO tokens, OTP tokens, as well as with traditional credentials like password, PIN or security questions.

This library provides an API for enrollment of user credentials from a web browser.

Dependencies

The library depends on

  • DigitalPersona Web Services API
  • DigitalPersona Core API

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

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

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: