This repo contains services and tools for using biometric fingerprint authentication with the aries-key-guardian.
Specifically, the main contents are a Bioanalyzer Service, Identity Service, Fingerprint Desktop Tool, and scripts for
the two databases that are used by Identity Service - identity_intelligence_db
and identity_template_db
.
The job of this service is to perform common analyses on biometric images. At the moment, it only supports fingerprint images. The main job it performs is to determine the quality of the image provided, returning a score from 0 to 100, as defined by ISO/IEC 29794-1:2016.
For more information, please take a look at Bioanalyzer Service's README.
The job of this service is to manage access to generified biometric information. At the moment, that means fingerprint
templates. Given a fingerprint image (or several images), Bio Auth Service will generate templates based on those images
and store them in identity_template_db
. If provided ANSI-378, ISO-19794-2, or SourceAFIS v3 templates, Bio Auth Service
will convert them into a SourceAFIS v3 template and store it in identity_template_db
. Later, when presented with a
candidate fingerprint template, Bio Auth Service can verify that it does or does not match some fingerprint template that
it has previously stored.
For more information, please take a look at Identity Service's README.
The job of this tool is to provide a CLI for generating fingerprint templates based on a provided image.
For more information, please take a look at Fingerprint Desktop Tool's README.
-
Make sure you have the Gradle installed. The easiest way to do this if you're on mac is to use homebrew:
brew install gradle
. But if homebrew isn't an option, or you'd just prefer an alternate approach, check out their installation page. -
Make sure you have docker-compose installed. If you're running on a Mac, it should already be installed. But for full installation instructions for all environments, see Docker's documentation.
-
Generate
.env
files for each repository. You can execute./scripts/useDummyEnvFiles.sh
to use the default dummy values we provide, or manually create.env
files with custom values. If you choose to take the manual approach, check out thedummy.env
files in each sub-project for the list of required environment variables. -
Build Identity Service. From the identity_service directory, execute:
./gradlew build
-
Build Bioanalyzer Service. From the bioanalyzer_service directory, execute:
./gradlew build
-
Run the docker-compose. This will spin up a local network that the services and databases can communicate with each other on. From the top-level guardian-bio-auth directory, execute:
docker-compose up
.
Bioanalyzer Service and Identity Service both have public images available in the kivaprotocol Dockerhub account. They are called bioanalyzer and identity, respectively. Feel free to pull them down and use them in your own deployments as you see fit.
Assuming you have gradle installed, running the tests is as simple as:
cd identity_service
./gradlew test
and
cd bioanalyzer_service
./gradlew test