MFA Implementation
Multi-Factor Authentication (MFA) Implementation Documentation
For ONC Certification – §170.315(d)(13)
1. Overview of MFA Implementation
Our application enforces Multi-Factor Authentication (MFA) for both internal and external accounts.
Internal Users (Providers, Staff)
- Authenticated via Azure Active Directory (AAD) under the woundtech.net domain.
- MFA is managed via corporate AAD Conditional Access Policies.
- After entering their password, users must verify identity via one of the following:
- SMS verification code to registered mobile device
- Microsoft Authenticator app push notification or code
- Voice call verification code
External Users (Patients, External Partners)
- Authenticated via Amazon Cognito.
- MFA requires a password plus a one-time code from:
- An authenticator app (TOTP)
- An SMS message
MFA is triggered at:
- Every login from an unrecognized device or browser
- Password reset events
- Sensitive operations, such as:
- Exporting PHI
- Changing security settings
2. MFA Factors Used
Internal (AAD):
- Knowledge – Password (username + password combination)
- Possession – Mobile phone receiving:
- SMS code
- Microsoft Authenticator push notification/code
- Voice call verification
External (Cognito):
- Knowledge – Password
- Possession –
- TOTP code from an authenticator app
- SMS one-time password (OTP)
3. Standards / Protocols Used
Azure Active Directory:
- Supports OAuth 2.0, OpenID Connect, SAML 2.0
- MFA uses TOTP (RFC 6238) for app-based codes
- SMS/voice MFA uses numeric OTPs
- Security:
- MFA codes expire after a short validity period
- All secrets/tokens encrypted at rest using AES-256
- All transmissions secured with TLS 1.2+
Amazon Cognito:
- Supports OAuth 2.0, OpenID Connect
- MFA via TOTP (RFC 6238) or SMS OTP
- Security:
- Codes expire quickly to mitigate replay attacks
- All secrets/tokens encrypted at rest using AES-256
- All transmissions secured with TLS 1.2+
4. User Workflow Description
Internal (AAD) Login Workflow:
- User enters @woundtech.net email + password on Microsoft login page
- Password verified by Azure AD
- MFA triggered:
- SMS/voice → code sent to registered mobile
- Authenticator app → push notification or TOTP code
- User enters/approves MFA challenge
- On success, Azure AD issues a token and user is redirected to the application
External (Cognito) Login Workflow:
- User enters username/email and password on Cognito login page
2. Credentials verified by Cognito
- MFA challenge triggered (TOTP app or SMS)
- User enters MFA code
- On success, Cognito issues an ID token to the application
5. Security & Privacy Considerations
- Encryption: All MFA-related secrets/tokens encrypted at rest (AES-256) and in transit (TLS 1.2+)
- Short Lifespan: Codes expire quickly to reduce replay risk
- No Storage of Codes: MFA codes are never stored after validation
- Minimal Logging: Only status (success/failure) logged — actual codes are never recorded
Relied Upon Software Disclosure
Relied Upon Software / Services
Azure Active Directory (AAD)
- Vendor: Microsoft Corporation
- Function in Certified Capability:
- Provides identity management and MFA enforcement for internal users (providers, staff). Validates user credentials and triggers MFA challenges via SMS, Microsoft Authenticator, or voice call.
- Licensing Requirements:
- Requires an active Microsoft 365 or Azure AD Premium subscription. Licensing is managed by Woundtech as the health IT implementer.
Amazon Cognito
- Vendor: Amazon Web Services (AWS)
- Function in Certified Capability:
- Provides identity management and MFA enforcement for external users (patients, external partners). Validates user credentials and triggers MFA challenges via TOTP or SMS OTP.
- Licensing Requirements:
- Requires an AWS account with Amazon Cognito service enabled.
