Integration Workflow

This page provides a step-by-step workflow for integrating Arculus FIDO2 authentication into your application as a third-level authentication factor or for transactional authorization (e.g., approving financial transactions in a banking app).

Overview

The integration process involves several key steps:

  1. Planning and Architecture - Understand requirements and choose deployment pattern

  2. Environment Setup - Set up local development environment

  3. SDK Integration - Add SDK to your application

  4. Implementation - Implement registration and authentication flows

  5. Testing - Test with local FIDO2 server

  6. Production Deployment - Deploy to production environment

Step 1: Planning and Architecture

Understand Your Requirements

Before starting, clarify:

  • Use case: Third-level authentication, transactional authorization, or passwordless login?

  • Platform: iOS, Android, Desktop, or Web?

  • Existing authentication: What authentication system are you integrating with? (OAuth2/OIDC provider, custom IAM, etc.)

  • Security requirements: What level of security isolation is needed? (See 1.2 Development Options (Security) for guidance)

  • User experience: When should FIDO2 be triggered? (After primary/secondary auth? During transactions?)

Choose Deployment Pattern

Decide between client-direct and backend-proxied patterns. See 1.2 Development Options (Security) for:

  • Detailed comparison of both approaches

  • Security implications of each pattern

  • Decision criteria to help you choose

  • Architecture diagrams and characteristics

Review Architecture

  • Review 1.1 System Architecture to understand component interactions and deployment patterns

  • Understand how FIDO2 fits into your existing authentication flow

  • Identify integration points with your OAuth2/OIDC provider or IAM system

  • Review 1.4 FIDO2 Core Concepts for essential terminology

Step 2: Environment Setup

Obtain Required Files

SDK Files:

  • Contact your Arculus representative to obtain the SDK for your platform:

    • iOS: ArculusFidoSDKFramework.zip (XCFramework)

    • Android: ArculusFidoSDK.aar (AAR library)

    • Desktop: ArculusFidoSDK-1.0.0.jar (JAR file)

    • Web: arculusfido.js (JavaScript SDK)

FIDO2 Server Distribution Package:

  • Contact your Arculus representative to obtain the FIDO2 Server distribution package (ZIP file)

  • Required for local development and testing

Set Up Local Development Environment

Follow 3.3 Local Development for complete setup instructions, including:

  • Obtaining the distribution package

  • Docker Compose setup

  • Python direct execution options

  • Verification steps

  • Development tips and troubleshooting

Step 3: SDK Integration

Install SDK in Your Application

Follow the platform-specific installation guide:

Basic SDK Setup

For platform-specific installation and setup instructions, see:

Each guide includes complete installation steps, dependencies, and initial setup code.

Step 4: Implementation

Understand FIDO2 Concepts

Before implementing, review:

Start with Minimal Examples

Review the minimal examples in the appendix for your platform:

These show the essential code flow without UI scaffolding or error handling.

Implement Registration Flow

For Client-Direct Pattern:

Follow your platform SDK guide:

For Backend-Proxied Pattern:

Follow your platform SDK guide:

Note: Web SDK only supports client-direct pattern.

Implement Authentication Flow

For Client-Direct Pattern:

Follow your platform SDK guide:

For Backend-Proxied Pattern:

Follow your platform SDK guide:

Review Sequence Diagrams

For detailed flow understanding, review sequence diagrams in your platform SDK guide:

Implement Error Handling

  • Review 2.7 Error Codes for error code meanings

  • Implement appropriate error handling based on your platform's error handling patterns

  • Check sample applications for error handling examples

Integrate with Existing Authentication

For Third-Level Authentication:

  1. User completes primary authentication (username/password, OAuth2, etc.)

  2. User completes secondary authentication (if required)

  3. Trigger FIDO2 authentication when third-level is needed

  4. Validate FIDO2 authentication result

  5. Grant access or approve transaction

For Transactional Authorization:

  1. User initiates transaction (e.g., transfer funds)

  2. User completes primary authentication if not already authenticated

  3. Trigger FIDO2 authentication for transaction approval

  4. Validate FIDO2 authentication result

  5. Execute transaction if authentication succeeds

Step 5: Testing

Test with Local FIDO2 Server

  1. Verify server is running: See 3.3 Local Development for verification steps

  2. Test registration: Register a test user with your application

  3. Test authentication: Authenticate the registered user

  4. Verify in database: Check Mongo Express to see stored credentials

Test Scenarios

Test these scenarios to ensure robust error handling:

  • Successful registration: User registers with valid PIN and card

  • Successful authentication: User authenticates with registered credential

  • Invalid PIN: Test error handling for wrong PIN

  • Card not present: Test error handling when card is not detected

  • Network errors: Test error handling for server connectivity issues

  • Session expiration: Test handling of expired sessions (backend-proxied only)

Debugging

For debugging help, see:

Step 6: Production Deployment

Deploy FIDO2 Server

Choose your deployment option:

Configure Production Settings

Update Application Configuration

  • Update FIDO2 server URLs from localhost to production endpoints

  • Configure production relying party IDs

  • Update any environment-specific settings

  • Test with production FIDO2 server before going live

Common Integration Patterns

Pattern 1: OAuth2/OIDC Integration

Flow:

  1. User authenticates with OAuth2/OIDC provider (primary auth)

  2. Provider returns access token and ID token

  3. Application triggers FIDO2 authentication (third-level)

  4. Application validates both OAuth2 and FIDO2 authentication

  5. Grant access to protected resource

Implementation:

  • Use OAuth2 access token for API calls

  • Trigger FIDO2 authentication after OAuth2 success

  • Store FIDO2 credential ID with user session

  • Validate FIDO2 on sensitive operations

Pattern 2: Transactional Authorization

Flow:

  1. User initiates transaction (e.g., transfer $10,000)

  2. Application checks if user is authenticated

  3. Application triggers FIDO2 authentication for transaction approval

  4. Application validates FIDO2 authentication

  5. Execute transaction if authentication succeeds

Implementation:

  • Trigger FIDO2 authentication before executing transaction

  • Include transaction details in authentication context (if needed)

  • Validate FIDO2 result before committing transaction

  • Log transaction with FIDO2 authentication timestamp

Pattern 3: Step-Up Authentication

Flow:

  1. User accesses low-security resource (basic auth sufficient)

  2. User attempts to access high-security resource

  3. Application triggers FIDO2 authentication (step-up)

  4. Application validates FIDO2 authentication

  5. Grant access to high-security resource

Implementation:

  • Check user's current authentication level

  • Trigger FIDO2 when accessing high-security resources

  • Cache FIDO2 authentication result for session

  • Re-authenticate with FIDO2 if session expires

Timeline Estimate

Typical Integration Timeline:

  • Planning and Architecture: 1-2 days

  • Environment Setup: 1 day

  • SDK Integration: 1 day

  • Implementation (Registration + Authentication): 3-5 days

  • Testing: 2-3 days

  • Production Deployment: 2-3 days

Total: 10-15 days (depending on complexity and team experience)

Next Steps

After completing the integration workflow:

Last updated