Architettura
Componenti e flussi di dati
Ogni parte in movimento, dove gira, e ogni connessione tra le parti, con il protocollo e la credenziale usati da ciascun lato.
Descrive LayerT così come realizzato al 19 settembre 2026. Tutto ciò che non è ancora realizzato è indicato come tale.
Nel browser
Il lato browser di LayerT è un’estensione Manifest V3. Il vostro MDM la installa e ne fissa l’icona nella barra degli strumenti usando i file di policy enterprise di Chrome per macOS e Windows (esistono anche i file per Linux). La stessa policy disattiva la modalità di navigazione in incognito, la modalità ospite e il password manager integrato di Chrome, e su Windows aggiunge LayerT alle altre estensioni installate forzatamente invece di sostituirle.
| Parte | Che cos’è | Note |
|---|---|---|
| Service worker | Il processo in background dell’estensione | Custodisce le credenziali del dispositivo, scarica e verifica la policy firmata, invia a lotti gli eventi di audit, gestisce le autorizzazioni agli account condivisi, esegue i timer di scadenza delle sessioni |
| Content script | Script che Chrome esegue nel mondo isolato di ogni pagina | Separati dal JavaScript della pagina. Leggono valori solo dai campi indicati dalle vostre regole e compilano i login degli account condivisi |
| Prompt nella pagina | La scheda di blocco, gli avvisi, il menu dell’account e il chip della sessione | Disegnati in shadow root chiuse, così gli script della pagina non possono leggerli né modificarne lo stile. I pulsanti rispondono solo a clic e pressioni di tasti reali. Usano i font di sistema, così LayerT non carica mai web font nelle pagine di altre aziende |
| Frame del menu dell’account | Una pagina dell’estensione mostrata in un frame all’interno del prompt | L’elenco degli account condivisi vive nell’origine dell’estensione, non nella pagina |
| Popup della barra degli strumenti | Il launcher, le approvazioni e l’aggiunta rapida | Una pagina dell’estensione; mai parte di un sito web |
Nel cloud di LayerT
| Parte | Che cos’è | Note |
|---|---|---|
| Console e API | Un’applicazione web | La console di amministrazione, l’API dell’estensione, il server SCIM 2.0 e il client OpenID Connect |
| Worker | Un servizio separato senza indirizzo pubblico | Esegue i job pianificati e invia le notifiche |
| Console operatore | Un sito separato per il personale di LayerT | Crea e gestisce le organizzazioni. Il personale può vedere all’interno di un’organizzazione solo con l’approvazione di quell’organizzazione (vedete Identità, tenancy e ruoli) |
| Postgres | Il sistema di riferimento | Versioni firmate della policy, eventi di audit, dati della directory, richieste e sessioni. I segreti degli account condivisi sono archiviati come testo cifrato in una tabella dedicata |
| Object storage | Google Cloud Storage | Solo registrazioni delle sessioni, cifrate sul dispositivo prima del caricamento. Il bucket non contiene mai testo in chiaro |
| Servizio di gestione delle chiavi | Google Cloud KMS | Firma ogni versione della policy con Ed25519 e cifra (wrap) la chiave che sigilla ogni segreto di account condiviso e ogni registrazione. Le chiavi possono essere usate tramite il servizio ma mai copiate al di fuori di esso. Realizzato, e attivato con il primo deploy in produzione; in fase di sviluppo al suo posto si usano chiavi locali |
| Job pianificati | Job ricorrenti sul worker | Chiudono richieste e sessioni scadute, applicano la conservazione, firmano di nuovo la policy prima che scada, ricostruiscono la policy dopo le modifiche alla directory, inviano notifiche e promemoria, controllano lo stato dei gateway |
europe-west8), con le chiavi e i backup del database conservati nella multi-regione UE di Google. Cloudflare gestirà il DNS e invierà le email di notifica. I fornitori sono elencati in Gestione dei dati. Altre opzioni di residenza dei dati non sono ancora disponibili.Al di fuori di LayerT
| Parte | Di proprietà di | Come LayerT la usa |
|---|---|---|
| Il vostro identity provider | Voi | Invia persone e gruppi a LayerT tramite SCIM 2.0 e gestisce il login di amministratori e persone tramite OpenID Connect. Realizzato per JumpCloud |
| Il vostro MDM | Voi | Distribuisce la policy di Chrome che installa LayerT, ne fissa l’icona e gli indica a quale organizzazione appartiene |
| I siti che usano le vostre persone | Fornitori | LayerT legge e compila i moduli su questi siti. Non modifica mai i server o il traffico di un fornitore |
Flussi di dati
Ogni flusso qui sotto passa tramite HTTPS.
| Flusso | Direzione | Cosa si sposta | Autenticato da |
|---|---|---|---|
| Sincronizzazione della directory | Identity provider → API | Persone, gruppi, stato attivo (SCIM 2.0) | Un token SCIM emesso da LayerT, archiviato solo come hash |
| Login alla console | Browser ↔ API ↔ identity provider | Flusso authorization code di OpenID Connect | ID token firmato, verificato rispetto alle chiavi pubblicate dal provider |
| Uso della console | Browser → API | Decisioni, regole, impostazioni | Una sessione lato server, verificata di nuovo a ogni richiesta |
| Registrazione del dispositivo | Estensione → API → identity provider | La persona effettua il login una volta; il browser riceve le credenziali del dispositivo | Il login dell’identity provider |
| Sincronizzazione della policy | API → estensione | La policy firmata della vostra organizzazione | Token del dispositivo; la policy stessa viene verificata con Ed25519 nel browser |
| Audit | Estensione → API | Eventi relativi a blocchi, corrispondenze, approvazioni e sessioni | Token del dispositivo, che deve corrispondere al dispositivo dell’evento |
| Richieste e autorizzazioni | Estensione ↔ API | Richieste di accesso, decisioni, autorizzazioni agli account condivisi | Token del dispositivo, legato alla persona e al browser registrato |
| Registrazione della sessione | Estensione → API → object storage | Frammenti cifrati delle registrazioni | Token del dispositivo; i frammenti sono già cifrati |
| Job pianificati | Cloud Scheduler → worker | Solo l’attivazione | Un identity token firmato da Google per il service account dello scheduler |
| Esiti dei login | Estensione → API | Se il login a un account condiviso è riuscito, e a quale passaggio si è fermato. Mai valori, etichette o testo della pagina | Token del dispositivo |
| Informazioni sul dispositivo | Estensione → API | Versione dell’estensione, se è stata installata tramite policy, browser, sistema operativo e versione della policy | Token del dispositivo |
| Notifiche | Worker → approvatori | Richieste in attesa di qualcuno, risposte e avvisi, via email, Slack e l’estensione. Nessun segreto e nessun valore completo | Email tramite SMTPS; l’API di Slack con la connessione Slack della vostra organizzazione; il token del dispositivo dell’estensione |
| Decisioni da Slack | Slack → API | L’Approva o il Rifiuta di un approvatore su una richiesta | La firma della richiesta di Slack, dopodiché i diritti dell’approvatore vengono verificati di nuovo al momento del clic |
Cosa invia l’estensione, e cosa no
- Invia eventi di audit quando una regola trova una corrispondenza, compresi il sito, il campo e il valore che ha fatto scattare la regola. È così che un auditor può vedere che un indirizzo personale è stato fermato.
- Invia richieste di accesso con la motivazione della persona, e frammenti cifrati delle registrazioni quando la registrazione è attiva per un account condiviso.
- Segnala se ogni login a un account condiviso è riuscito, e informazioni di base sul browser, così che l’IT possa vedere quali laptop sono protetti. Queste segnalazioni non contengono valori digitati né testo della pagina.
- Al di fuori di una sessione registrata di un account condiviso, non invia il contenuto delle pagine. Non invia mai la cronologia di navigazione, né nulla di ciò che viene digitato in campi non indicati dalle vostre regole.