Security & Authentication
Enterprise security architecture — OAuth 2.0, SMART on FHIR, RBAC, MFA, encryption, audit logging
Authentication Methods
OAuth 2.0 (Client Credentials)
Machine-to-machine. client_id + client_secret → access_token. Used by CMS partners and service integrations.
cms.fhir.r4.readcms.fhir.bundle.pushSMART on FHIR
SMART App Launch Framework. Standalone + EHR launch. Patient and user scopes.
patient/Patient.readuser/*.writeBearer Token (JWT)
RS256-signed JWT. Contains tenant_id, org_id, roles, and scopes. 1-hour expiry.
system/*dashboard:readService Key
Internal service-to-service auth via X-Apex-Service-Key header.
identity.resolveidentity.mergeID.me OAuth 2.0
Identity verification for patient portal. OIDC-compliant with openid scope.
openidAPI Key
Simple API key for rate-limited public endpoints.
npi.searchnpi.lookupMulti-Factor Authentication
TOTP
Google Authenticator / Authy
Email Verification
6-digit verification code
WebAuthn / FIDO2
Hardware security keys (YubiKey)
Backup Codes
Single-use recovery codes
Role-Based Access Control
Enforcement
@role_required@permission_required@provider_required@scope_requiredEncryption
Session Security
Security Headers
Compliance Frameworks
HIPAA
Business Associate Agreements, PHI encryption, audit logging
SOC 2 Type II
Security, Availability, Processing Integrity, Confidentiality, Privacy
HITRUST CSF
14 control categories, 49 objectives, 156 control specifications
ISO 27001
Information security management system (ISMS)
GDPR
Data subject rights, consent management, DPO appointment
OAuth 2.0 Client Credentials Flow
1. Request Token
POST /oauth/token HTTP/1.1 Host: api.parkerapex.com Content-Type: application/x-www-form-urlencoded grant_type=client_credentials &client_id=clt_abc123 &client_secret=your_secret &scope=cms.fhir.r4.read cms.fhir.bundle.push
2. Response (200 OK)
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "cms.fhir.r4.read cms.fhir.bundle.push",
"issued_at": "2026-04-09T12:00:00Z"
}