Solution Architecture
This page shows every component of the Crayonic solution on one map, and then the deployment options you can pick from — from "just badges and Microsoft Entra ID" up to full fleet management and secure audio transcription into your EHR. Each option is a superset of the previous one; you can start small and add planes later without replacing anything.
1. The components
flowchart TB
subgraph WALLETS["Wallets — what the user carries"]
BADGE["Crayonic Badge™<br/>FIDO2 · PIV smart card · NFC · BLE<br/>e-paper display · fingerprint · microphone"]
KV["Crayonic KeyVault™<br/>FIDO2 · PIV · Bluetooth key"]
MIW["Crayonic Mobile ID Wallet<br/>FIDO2-certified phone wallet:<br/>passkeys · certificates · badge companion"]
BIO["Crayonic BioCard<br/>biometric smart card"]
end
subgraph ENDPOINT["End-point tools — on the workstation"]
BRIDGE["Crayonic Bridge<br/>USB dongle: BLE ↔ USB,<br/>proximity login / auto-lock"]
AGENT["Crayonic Agent<br/>Windows service: device events,<br/>firmware updates, local CCM helper"]
CP["Crayonic Credential Provider<br/>Windows logon with badge/passkey"]
end
subgraph MGMT["Management & integration — your data centre or cloud"]
CCM["Crayonic Credential Manager (CCM)<br/>passkey & certificate lifecycle,<br/>self-service enrollment"]
CDM["Crayonic Device Manager (CDM)<br/>fleet inventory, firmware, policies,<br/>telemetry, bridges"]
CSA["Crayonic Secure Audio Service<br/>encrypted recordings, transcription,<br/>HL7 to EHR"]
RTLS["Crayonic RTLS (beta)<br/>indoor location of badges,<br/>panic-button response"]
COMMS["Crayonic Comms (beta)<br/>messages, calendar notifications,<br/>secure paging to the badge display"]
end
subgraph IOT["BLE coverage — mesh of Bridges, extended by IoT infrastructure"]
MESH["Crayonic Bridges (BLE mesh)<br/>+ Wi-Fi APs with BLE gateway"]
end
subgraph EXT["Your systems"]
ENTRA["Microsoft Entra ID<br/>(or AD / Google Workspace)"]
EHR["EHR / EMR"]
STT["Speech-to-text / LLM<br/>(e.g. Praxy Santé, local Whisper)"]
CAL["Mail / calendar · nurse call · alarms"]
end
BADGE & KV & MIW -. "FIDO2 / PIV over USB, NFC, BLE" .-> BRIDGE
BRIDGE --> CP
BADGE -. "BLE beacons / paging" .-> MESH
MESH --> RTLS
MESH <--> COMMS
COMMS <--> CAL
BADGE & KV -->|USB| AGENT
AGENT --> CDM
AGENT -. "local helper on :17620" .-> CCM
CCM --> ENTRA
CDM --> ENTRA
CP --> ENTRA
MIW -. "BLE" .-> BADGE
MIW --> CSA
CSA --> STT
CSA --> EHR
| Component | One-line role | Runs on |
|---|---|---|
| Crayonic Badge / KeyVault | The user's hardware credential: a certified FIDO2 security key and PIV smart card. The Badge adds a display, fingerprint sensor and microphone. | Worn / carried |
| Crayonic Mobile ID Wallet | A wallet in its own right: FIDO2-certified phone authenticator that carries passkeys and certificates and presents them to an endpoint over BLE through a Crayonic Bridge, exactly like a badge. Also the badge's companion app (badge management over BLE) and, in Option 4b, the encrypted-audio courier. | User's phone (Android) |
| Crayonic Bridge | USB dongle that makes a nearby badge look USB-connected — no pairing, no drivers. Its RSSI thresholds give hands-free login and auto-lock. | Each shared workstation |
| Crayonic Agent | Windows service reporting device/session events to CDM, applying firmware updates and policies, and acting as the local helper CCM needs to write FIDO2 credentials to a badge from the browser. | Managed Windows endpoints |
| Crayonic Credential Provider | Windows logon tile: sign in with the badge (FIDO2 to Entra or AD, or PIV). | Windows endpoints |
| CCM | Web admin + self-service for passkeys and certificates on badges; provisions FIDO2 methods into Entra ID through Microsoft Graph. | Docker (your DC or cloud), or as an appliance with CDM |
| CDM | Fleet management plane for badges, KeyVaults and bridges: inventory, firmware, policies, telemetry, audit; multi-tenant. | Docker (on-prem or cloud) |
| Crayonic Secure Audio Service | Stores end-to-end-encrypted badge recordings, lets the clinician decrypt in the browser with the badge, transcribes via your STT, and pushes results to the EHR over HL7. | Docker (your DC or cloud) |
| Crayonic RTLS (beta) | Real-time indoor location of badges from their BLE beacons — where is this person, and who is nearest — used above all to respond to a panic button pressed on the badge. | Docker (your DC or cloud) + BLE coverage |
| Crayonic Comms (beta) | Messages, calendar notifications and secure paging delivered to the badge's e-paper display over BLE, with acknowledgement back; integrates with mail/calendar, nurse-call and alarm systems. | Docker (your DC or cloud) + BLE coverage |
| BLE coverage | Both beta services listen to and reach badges through a BLE mesh formed by the Crayonic Bridges already on workstations. Where bridges are sparse (corridors, wards, open areas) coverage is extended with IoT infrastructure: Wi-Fi access points with a BLE gateway, either existing or deployed for the purpose. | Facility |
2. Deployment options
Option 1 — Entra ID only
The badge is a certified FIDO2 security key. Register it in Microsoft Entra ID as a passwordless method and it works everywhere Entra does — Windows sign-in, Microsoft 365, any Entra-federated app — with no Crayonic server.
flowchart LR
U["User + Crayonic Badge / KeyVault"]
WIN["Windows PC<br/>(Credential Provider optional)"]
ENTRA["Microsoft Entra ID"]
APPS["Microsoft 365 · federated apps"]
U -->|"USB / NFC / BLE"| WIN
WIN -->|"FIDO2 passwordless"| ENTRA
ENTRA --> APPS
| You deploy | Nothing server-side. Optionally the Credential Provider MSI for a richer Windows logon; optionally a Bridge per workstation for proximity login/lock. |
| Enrollment | User registers the key themselves in the Entra security-info portal (standard Microsoft flow). |
| You get | Phishing-resistant passwordless sign-in. |
| You don't get | Central visibility of which badge belongs to whom, remote revocation of a lost badge beyond Entra's own controls, firmware/policy management, PIV certificate lifecycle. |
| Good for | Pilots, small teams, organisations already standardised on Entra passwordless. |
Option 2 — Entra ID + CCM (credential lifecycle)
Add Crayonic Credential Manager when you need helpdesk-driven or self-service enrollment with approval, certificate (PIV) issuance, and an audit trail of which credential is on which badge. CCM writes FIDO2 methods into Entra on the user's behalf via Microsoft Graph; the Crayonic Agent on the endpoint is the local helper that lets the browser talk to the badge.
flowchart LR
subgraph EP["Endpoint"]
BADGE["Badge"]
AGENT["Crayonic Agent<br/>(local helper)"]
BROWSER["Browser: CCM self-service / admin"]
BADGE --- AGENT
AGENT --- BROWSER
end
subgraph DC["Your data centre / cloud"]
CCM["CCM<br/>SPA + backend + Postgres + Redis"]
end
ENTRA["Microsoft Entra ID<br/>(Graph API)"]
BROWSER --> CCM
CCM -->|"fido2Methods, users"| ENTRA
BADGE -.->|"FIDO2 sign-in"| ENTRA
| You deploy | CCM (Docker Compose: SPA, .NET backend, PostgreSQL, Redis, TLS proxy); Crayonic Agent MSI on endpoints where enrollment happens; an Entra app registration with Graph permissions. |
| Air-gapped / regulated variant | Entra-isolation mode: CCM holds no Graph credentials and has no network path to Graph; a separate Entra Bridge tool carries signed bundles from a connected admin workstation. Same product, a deployment mode switch. |
| You get | Everything in Option 1, plus approval workflows, helpdesk enrollment, PIV/certificate management, revocation and audit per credential. |
| Good for | Organisations with a helpdesk, compliance requirements on credential issuance, or PIV/smart-card logon. |
Option 3 — Entra ID + CCM + CDM (full fleet management)
Add Crayonic Device Manager when you operate a fleet: hundreds of badges, KeyVaults and bridges across sites. CDM gives inventory, firmware roll-outs, policy propagation (RSSI thresholds, lock behaviour), battery and session telemetry, and multi-tenant administration. The same Crayonic Agent that serves CCM reports to CDM.
flowchart LR
subgraph EP["Endpoints"]
BADGE["Badges · KeyVaults"]
BRIDGE["Bridges"]
AGENT["Crayonic Agent"]
BADGE --- BRIDGE
BRIDGE --- AGENT
BADGE --- AGENT
end
subgraph DC["Your data centre / cloud — or one appliance"]
CCM["CCM"]
CDM["CDM<br/>backend + console + Postgres + MQTT"]
end
ENTRA["Microsoft Entra ID"]
AGENT -->|"REST + MQTT: events, telemetry"| CDM
CDM -->|"firmware, policies, commands"| AGENT
AGENT -.->|"local helper"| CCM
CCM --> ENTRA
CDM -->|"admin sign-in"| ENTRA
| You deploy | Option 2 plus CDM (Docker Compose: backend, console, PostgreSQL, Mosquitto MQTT, workers). CCM + CDM are also available together as a single virtual appliance (OVA) for isolated networks, where the only permitted internet destination is Entra sign-in. |
| You get | Everything in Option 2, plus fleet inventory, remote firmware updates, policy management for badges and bridges, telemetry, per-organisation tenancy and audit. |
| Good for | Hospitals, factories, campuses — many shared workstations, many devices, several sites. |
Option 4 — Secure audio: badge recordings transcribed into the EHR
Any of the options above can add the Crayonic Secure Audio Service. The badge records (a clinical consultation, a dictated note), encrypts on-device with keys derived from the badge's own FIDO2 credential, and the recording reaches the service as ciphertext only. The clinician later opens it in the browser, using the badge as their security key to decrypt, triggers transcription through your chosen speech-to-text provider, and sends the result to the EHR as an HL7 message. The service never holds a key that can decrypt a recording.
flowchart LR
P["Plaintext audio<br/>badge only"] -->|"encrypt on badge"| C["Ciphertext<br/>transport + storage"]
C -->|"badge as security key, in browser"| D["Decrypted in the<br/>clinician's browser"]
D -->|"clinician action"| T["Transcript"]
T -->|"HL7"| E["EHR"]
classDef plain fill:#ffe0e0,stroke:#c00;
classDef cipher fill:#e0f0ff,stroke:#06c;
class P,D,T plain;
class C cipher;
There are two ways to get the recording from the badge to the service. They can coexist on the same service; choose per site.
Option 4a — with Crayonic Bridge and Agent (managed workstations)
The Bridge dongle streams recordings off the badge, the Crayonic Agent on the workstation uploads them and verifies the service's signed receipt before the badge copy is deleted. Fits sites that already run Option 3.
flowchart LR
BADGE["Badge<br/>records + encrypts"]
BRIDGE["Crayonic Bridge"]
AGENT["Crayonic Agent<br/>upload + receipt check"]
CSA["Crayonic Secure Audio Service"]
WEB["Clinician browser<br/>decrypt with badge"]
STT["Your STT / LLM"]
EHR["EHR (HL7)"]
BADGE -->|"BLE"| BRIDGE -->|"USB"| AGENT -->|"HTTPS, resumable"| CSA
CSA -->|"signed receipt"| AGENT
WEB <--> CSA
CSA --> STT
CSA --> EHR
Option 4b — with the Crayonic Mobile ID Wallet as courier (no Bridge, no Agent)
The user's own Android phone, already paired to their badge, notices when the badge advertises "audio waiting", pulls the encrypted recording over Bluetooth, uploads it, and hands the service's signed receipt back to the badge so it can free the space. The phone proves it belongs to the badge owner with the badge's existing FIDO2 credential — no admin enrollment step — and holds only an upload-only token: a lost phone cannot read, decrypt or delete anything. No workstation, dongle or agent is needed at the capture site.
flowchart LR
BADGE["Badge<br/>records + encrypts<br/>advertises 'audio waiting'"]
PHONE["Mobile ID Wallet<br/>upload-only courier"]
CSA["Crayonic Secure Audio Service"]
WEB["Clinician browser<br/>decrypt with badge"]
STT["Your STT / LLM"]
EHR["EHR (HL7)"]
BADGE -->|"BLE, dedicated link"| PHONE -->|"HTTPS, resumable"| CSA
CSA -->|"signed receipt"| PHONE -->|"receipt → badge deletes"| BADGE
WEB <--> CSA
CSA --> STT
CSA --> EHR
| Option 4a — Bridge + Agent | Option 4b — phone courier | |
|---|---|---|
| Capture-site footprint | Windows PC + Bridge dongle | None beyond the user's phone |
| Uploader identity | Device token issued by an administrator | The badge's own FIDO2 credential, paired once by the user |
| Who can decrypt | Only the clinician's browser with the badge | Same |
| Deletion on the badge | Agent verifies the service receipt | Badge itself verifies the receipt |
| Availability | Whenever the badge is at a managed workstation | Whenever the user's phone is nearby with Bluetooth on |
| Platform | Windows | Android today |
Speech-to-text and EHR are yours to choose. The service ships with a local Whisper engine and an adapter for Praxy Santé's medical transcription API; any STT with an HTTP API can be added through one adapter interface. Transcripts go to the EHR as HL7 v2 ORU^R01 messages over MLLP; the target system and sending/receiving identifiers are configured in the service.
Option 5 — Location and messaging: RTLS and Comms (beta)
Two further services turn the badge from a credential into a presence and communication device. Both are in beta testing and both ride on the same BLE coverage:
- Crayonic RTLS locates badges indoors from their BLE beacons. The headline use is the badge's panic button: one press, and security sees on a floor plan where the badge is and who is nearest. It also answers "where is Dr. X right now" and feeds occupancy and workflow analytics.
- Crayonic Comms delivers messages, calendar notifications and secure paging to the badge's e-paper display, with delivery/acknowledgement back to the sender. Typical sources: mail/calendar, nurse-call, lab-result and alarm systems.
flowchart LR
subgraph FACILITY["Facility"]
BADGE["Badges<br/>beacons · panic button ·<br/>display for paging"]
BR["Crayonic Bridges<br/>on workstations<br/>(BLE mesh)"]
AP["Wi-Fi APs with BLE gateway<br/>(IoT infrastructure, where<br/>bridges are sparse)"]
BADGE -. "BLE" .-> BR
BADGE -. "BLE" .-> AP
end
subgraph DC["Your data centre / cloud"]
RTLS["Crayonic RTLS<br/>positioning · floor plans · alerts"]
COMMS["Crayonic Comms<br/>messaging · paging · calendar"]
CDM["CDM<br/>(fleet, bridges, policies)"]
end
EXT["Security desk · nurse call ·<br/>mail/calendar · alarms"]
BR --> RTLS
AP --> RTLS
BR <--> COMMS
AP <--> COMMS
RTLS --> EXT
COMMS <--> EXT
CDM -.-> BR
| You deploy | RTLS and/or Comms services (Docker, alongside CDM). BLE coverage is the prerequisite: the Bridges already on workstations form a BLE mesh; where that is not dense enough for the areas you care about, add Wi-Fi access points with a BLE gateway (existing enterprise APs with BLE radios can often be used) or dedicated gateways. A site survey sizes this. |
| Depends on | CDM (Option 3) for bridge and badge inventory; badges with the panic button / display features. |
| You get | Panic-button response with location, staff/asset location, secure paging and notifications to the badge without a phone. |
| Status | Beta — deployed with selected customers; contact Crayonic for a pilot. |
3. Choosing
| Need | Option |
|---|---|
| Passwordless sign-in, minimal infrastructure | 1 |
| Helpdesk / self-service enrollment, PIV certificates, per-credential audit | 2 |
| Fleet of devices, firmware and policy management, multi-site | 3 |
| Clinical dictation / consultation recording into the EHR, managed workstations already in place | 3 + 4a |
| Same, but capture happens where there is no managed PC (wards, home visits, small practices) | any + 4b |
| Isolated / air-gapped network | 2 or 3 in Entra-isolation mode, CCM+CDM appliance |
| Panic button with location, staff/asset location | 3 + 5 (RTLS), plus BLE coverage |
| Secure paging, notifications to the badge without a phone | 3 + 5 (Comms), plus BLE coverage |
| Phone-based passkeys/certificates instead of, or alongside, a badge | Mobile ID Wallet in any option; presented to endpoints via a Bridge |
4. Where things run — summary
| Component | User device | Endpoint | Your DC / cloud | Microsoft cloud |
|---|---|---|---|---|
| Badge / KeyVault / BioCard | ● | |||
| Mobile ID Wallet | ● | |||
| Bridge, Agent, Credential Provider | ● | |||
| Wi-Fi APs with BLE gateway (RTLS/Comms coverage) | ● (facility) | |||
| CCM, CDM, Secure Audio Service | ● | |||
| RTLS, Comms (beta) | ● | |||
| Entra ID (sign-in, FIDO2 methods) | ● |
All Crayonic server components are delivered as Docker images (or one OVA appliance for CCM + CDM) and store their data in PostgreSQL plus, for audio, an S3-compatible object store. Nothing Crayonic-hosted is required for any option.
5. Further reading
- Security foundations: KeyVault Technical & Security Whitepaper, Secure Element, CCM security
- Use cases: Windows domain login, Authentication & signing, Digital signing with the Badge, Physical access
- Manuals: Administrator manual, End-user manual
- Downloads — firmware, installers, reference guides