Skip to content

Security Model

Overview

The Video Platform follows a defense-in-depth security model.

Every participant must be authenticated, authorized, and validated before joining a consultation.


Security Layers

flowchart TB

    AUTH["Authentication"]

    AUTHZ["Authorization"]

    TOKEN["Join Token"]

    SESSION["Video Session"]

    AUTH --> AUTHZ

    AUTHZ --> TOKEN

    TOKEN --> SESSION
Hold "Alt" / "Option" to enable pan & zoom

Authentication

Users must first authenticate through Keycloak.

flowchart LR

    USER["User"]

    KEYCLOAK["Keycloak"]

    JWT["JWT Token"]

    USER --> KEYCLOAK

    KEYCLOAK --> JWT
Hold "Alt" / "Option" to enable pan & zoom

Authorization

The Video Session Service validates:

  • Appointment ownership
  • Tenant ownership
  • Appointment status
  • Consultation window

Access Rules

flowchart LR

    USER["User"]

    APPOINTMENT["Appointment"]

    SESSION["Video Session"]

    USER --> APPOINTMENT

    APPOINTMENT --> SESSION
Hold "Alt" / "Option" to enable pan & zoom

Only participants associated with the appointment may join.


Security Principles

  • Authentication required
  • Authorization required
  • Short-lived tokens
  • Appointment ownership validation
  • Tenant isolation
  • Auditability