Deployment Overview

This section covers deployment options for the Arculus FIDO2 Server. The server can be deployed in various environments, from local development to production cloud platforms.

All components shown in the Cloud Infrastructure box (Load Balancer, Customer Backend Services, PyFIDO Server) are deployed and managed by the customer within their infrastructure. Customer backend services are typically deployed in a servlet container (e.g., Tomcat) and handle application logic while proxying FIDO2 requests to the PyFIDO Server. The identity provider may be external or part of the customer's internal infrastructure.

The core FIDO2 authentication engine, the PyFIDO Server, runs in a container platform (e.g., AWS ECS Fargate, Azure Container Instances, Google Cloud Run) and handles all FIDO2 protocol operations including credential registration, authentication challenges, and attestation verification. Customer backend services are deployed in a servlet container (e.g., Tomcat) and handle application-specific logic while optionally proxying FIDO2 requests to the PyFIDO Server in server-side deployments. All services are deployed in a scalable, containerized environment that can be hosted in any cloud provider or on-premises infrastructure.

Deployment Options

The PyFIDO Server supports multiple deployment approaches:

  • Local Docker Deployment: For development and testing

  • Cloud Container Platform: For production deployments (AWS ECS Fargate example provided)

  • On-Premises: Docker or container orchestration platforms

Deployment Architecture

Cloud Container Platform Deployment (Example: AWS ECS Fargate)

spinner

Components (AWS example shown):

Component
Description
Port
AWS Example

Load Balancer

SSL/TLS termination, traffic routing

443, 5001, 8080

Application Load Balancer (ALB)

PyFIDO Service

FIDO2 authentication engine

5001

ECS Fargate Task

Tomcat Service

Web/desktop application portal

8080

ECS Fargate Task

MongoDB

Credential and user storage

27017

MongoDB Atlas or DocumentDB

Secrets Manager

Encrypted credential storage

-

AWS Secrets Manager

Container Registry

Container image storage

-

Amazon ECR

Monitoring Service

Logging and metrics

-

CloudWatch

Local Docker Deployment

For development and testing:

For production Docker deployment, see 3.2 Docker Configuration.

For local development setup, see 3.3 Local Development.

Configuration Options

Environment Variables

Variable
Default
Description

PORT

5001

Server listening port

PROTOCOL

wsgi

Server protocol (wsgi, http, cert)

THREADS

12

Number of worker threads

MONGOURL

mongodb://...

MongoDB connection string

LOGLEVEL

5

Logging verbosity (1-5)

AUTH

off

Enable JWT authentication

SESSION

60

Session timeout in seconds

EXCLUDE

on

Enable credential exclusion

REPLACE

on

Allow credential replacement

METADATA

off

Enable MDS verification

AAGUID

off

Enable AAGUID whitelist

SERVERID

SERV-notset

Server identifier for logging

Command Line Arguments

Health Monitoring

Health Check Endpoint

The PyFIDO Server provides a health check endpoint:

Returns 200 OK when the server is healthy.

Docker Health Check

Built-in health check for Docker containers:

  • 30-second interval

  • 10-second timeout

  • 10-second start period

  • 3 retries before unhealthy

Monitoring Service Integration

Container logs and metrics collection with container insights for performance monitoring. Configurable log retention.

Example (AWS CloudWatch):

  • Container logs at /ecs/arculus-auth/ENVIRONMENT/pyfido

  • CloudWatch Container Insights for metrics

For platform-specific monitoring configuration, see the relevant deployment guide:

Security Considerations

For deployment-specific security configurations, see:

Multi-Tenant Deployment

The PyFIDO Server supports multi-tenant deployments. For multi-tenant configuration in production environments, see the relevant deployment guide for your platform.

Last updated