Skip to content

Authentication & OIDC

FIVUCSAS is hosted-first: the primary integration is redirective OAuth2 / OIDC with PKCE — the same pattern as Auth0 Universal Login, Okta, Microsoft Entra, Google, Apple, Keycloak, AWS Cognito, and e-Devlet. An embeddable widget remains for inline step-up MFA.

The login round-trip

The N-step MFA engine

A tenant flow is an ordered list of steps; VerifyMfaStepService drives them and tracks an mfa_sessions row (anti-replay via consumed_at, cross-client guard via client_id).

The ten composable factors

PASSWORD (BCrypt cost 12) · EMAIL_OTP · SMS_OTP (Twilio Verify) · TOTP (RFC 6238 + replay marker) · QR_CODE (cross-device) · FACE (FaceNet-512 + Puzzle) · VOICE (Resemblyzer 256-D) · FINGERPRINT/HARDWARE_KEY (WebAuthn / FIDO2) · NFC_DOCUMENT (ICAO 9303) — plus passkey (discoverable WebAuthn, no app needed) and approve-login (no-Firebase number matching).

Hardening

  • Tokens: short-lived RS256 access JWT + JWKS discovery; refresh-token rotation with reuse detection → a stolen token revokes its whole family.
  • OTP/TOTP: single-use OTP (NIST 5-strike), TOTP used-code replay markers (S13), auth-code single-use with a 10-minute TTL.
  • Lockout: 5 strikes → 423, 15-minute window; plus edge rate-limiting.

See the Diagram Gallery for the full OIDC, OTP, QR/approve-login, WebAuthn and refresh-rotation sequences.

FIVUCSAS — Marmara University CSE4297/CSE4298 graduation project. MIT-licensed.