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 3 ottobre 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. Una persona può anche configurare LayerT da sola in un browser, con il proprio account di lavoro.

Ogni nuovo browser resta poi in attesa che un Owner o un IT Admin lo approvi, comunque LayerT sia stato installato. Finché non viene approvato non riceve regole e non può usare gli account condivisi.

ParteChe cos’èNote
Service workerIl processo in background dell’estensioneCustodisce la chiave di firma propria del browser e il suo token di breve durata, 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 scriptScript che Chrome esegue nel mondo isolato di ogni paginaSeparati dal JavaScript della pagina. Leggono valori solo dai campi indicati dalle vostre regole, controllano i file consegnati ai punti indicati da una regola sui file e compilano i login degli account condivisi
Prompt nella paginaLa scheda di blocco, gli avvisi, il menu dell’account e il chip della sessioneDisegnati 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’accountUna pagina dell’estensione mostrata in un frame all’interno del promptL’elenco degli account condivisi vive nell’origine dell’estensione, non nella pagina
Popup della barra degli strumentiIl launcher, le approvazioni e l’aggiunta rapidaUna pagina dell’estensione; mai parte di un sito web
Il segnale di fiducia che una pagina non può falsificare. Mentre un prompt di LayerT è presente in una scheda, LayerT accende un puntino ambra sulla propria icona nella barra degli strumenti. Un sito web può copiare l’aspetto di un prompt, ma non può disegnare nella barra degli strumenti del browser. Inoltre i prompt di LayerT non chiedono mai una password, e un test verifica che nessun prompt contenga un campo password.

Nel cloud di LayerT

ParteChe cos’èNote
Console e APIUn’applicazione webLa console di amministrazione, l’API dell’estensione, il server SCIM 2.0 e il client OpenID Connect
WorkerUn servizio separato senza indirizzo pubblicoEsegue i job pianificati e invia le notifiche
Console operatoreUn sito separato per il personale di LayerTCrea 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)
PostgresIl sistema di riferimentoVersioni 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 storageGoogle Cloud StorageSolo registrazioni delle sessioni, cifrate sul dispositivo prima del caricamento. Il bucket non contiene mai testo in chiaro
Servizio di gestione delle chiaviUn servizio cloud di gestione delle chiaviFirma 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. La chiave di firma della policy è protetta via software: il servizio offre quel tipo di chiave solo in software, non in un modulo di sicurezza hardware. Realizzato, e in uso nell’ambiente di test di LayerT. Per la produzione, che userà Google Cloud KMS, non c’è alcun deploy
Job pianificatiJob ricorrenti sul workerChiudono 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
Hosting. LayerT non è ancora in produzione. Oggi è in funzione in un ambiente di test che contiene solo dati fittizi. In produzione girerà su Google Cloud nell’UE, nella regione di Milano (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

ParteDi proprietà diCome LayerT la usa
Il vostro identity providerVoiInvia 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 MDMVoiDistribuisce la policy di Chrome che installa LayerT, ne fissa l’icona e gli indica a quale organizzazione appartiene
I vostri gateway Accesso anticipatoVoiPiccoli server che noleggiate voi. Un account condiviso con il routing attivato fa passare i propri siti tramite uno di essi, così il fornitore vede un solo indirizzo. LayerT controlla ogni gateway dall’esterno e gli dice quali connessioni ammettere. LayerT non gestisce gateway propri
I siti che usano le vostre personeFornitoriLayerT 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.

FlussoDirezioneCosa si spostaAutenticato da
Sincronizzazione della directoryIdentity provider → APIPersone, gruppi, stato attivo (SCIM 2.0)Un token SCIM emesso da LayerT, archiviato solo come hash
Login alla consoleBrowser ↔ API ↔ identity providerFlusso authorization code di OpenID ConnectID token firmato, verificato rispetto alle chiavi pubblicate dal provider
Uso della consoleBrowser → APIDecisioni, regole, impostazioniUna sessione lato server, verificata di nuovo a ogni richiesta
Registrazione del dispositivoEstensione → API → identity providerLa persona effettua il login una volta. Il browser invia la metà pubblica di una chiave che ha creato, dimostra di possedere la metà privata e riceve un token del dispositivo di breve durata. Poi resta in attesa dell’approvazione di un amministratoreIl login dell’identity provider, e una firma della chiave del browser
Rinnovo del tokenEstensione → APIUn nuovo token del dispositivo di breve durataUna prova firmata dalla chiave del browser, verificata rispetto alla chiave pubblica che LayerT ha archiviato alla registrazione del dispositivo
Sincronizzazione della policyAPI → estensioneLa policy firmata della vostra organizzazioneToken del dispositivo; la policy stessa viene verificata con Ed25519 nel browser
I gruppi della personaAPI → estensioneI gruppi della directory della persona di questo browser, e di nessun altro, come risposta firmata valida per 24 oreToken del dispositivo; la risposta viene verificata con Ed25519 nel browser
AuditEstensione → APIEventi relativi a blocchi, corrispondenze, approvazioni e sessioni, con il valore che ha fatto scattare una regolaToken del dispositivo, che deve corrispondere al dispositivo dell’evento
Proseguire con un motivoEstensione → APIIl motivo della persona per proseguire oltre un blocco, con la regola, la pagina e il valore. L’azione va avanti solo dopo che il server lo ha archiviatoToken del dispositivo; la persona viene ricavata dal token, mai dalla pagina
Richieste e autorizzazioniEstensione ↔ APIRichieste di accesso, decisioni, autorizzazioni agli account condivisiToken del dispositivo, legato alla persona e al browser registrato
Registrazione della sessioneEstensione → API → object storageFrammenti cifrati delle registrazioniToken del dispositivo; i frammenti sono già cifrati
Sessione del gateway Accesso anticipatoAPI → estensionePer un account con il routing attivato: quale gateway usare, una credenziale valida solo per questa sessione e l’indirizzo che il fornitore vedrà. Non vi viaggia alcuna passwordToken del dispositivo, legato alla sessione attiva della persona
Ammissione al gateway Accesso anticipatoGateway → APIIl gateway chiede se ammettere ogni nuova connessioneLa chiave propria del gateway. LayerT gli risponde solo sulle sessioni della sua organizzazione
Job pianificatiCloud Scheduler → workerSolo l’attivazioneUn identity token firmato da Google per il service account dello scheduler
Esiti dei loginEstensione → APISe il login a un account condiviso è riuscito, a quale passaggio si è fermato e l’indirizzo della pagina senza la sua query. Mai valori, etichette o testo della paginaToken del dispositivo
Informazioni sul dispositivoEstensione → APIVersione dell’estensione, il modo in cui il browser dichiara di essere stato installato, browser, sistema operativo e versione della policyToken del dispositivo
Controllo della versioneEstensione → APIQual è la versione più recente di LayerT. La risposta è la stessa per ogni organizzazioneNessuna. La richiesta non porta credenziali né alcuna informazione sulla persona
NotificheWorker → approvatoriRichieste in attesa di qualcuno, risposte e avvisi, via email, Slack e l’estensione. Nessun segreto e nessun valore completoEmail tramite SMTPS; l’API di Slack con la connessione Slack della vostra organizzazione; il token del dispositivo dell’estensione
Decisioni da SlackSlack → APIL’Approva o il Rifiuta di un approvatore su una richiestaLa 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

LayerT legge solo i campi indicati dalle vostre regole. Quando una regola trova una corrispondenza, LayerT registra ciò che corrispondeva e, per una regola sulla digitazione, il testo del campo, così che un auditor possa verificare la decisione. Una regola può mascherare o nascondere i propri valori.

  • Invia eventi di audit quando una regola trova una corrispondenza: la regola, l’indirizzo della pagina, il campo e il valore che ha fatto scattare la regola. Per una regola sui moduli il valore è il testo del campo, e per una regola sull’incolla il testo incollato. È così che un auditor può vedere che un indirizzo personale è stato fermato.
  • Per una regola sulla digitazione, il valore è l’intero testo del campo com’era quando la regola ha trovato la corrispondenza, non solo la parte che corrispondeva, fino a 10.000 caratteri.
  • Per una regola sui file, invia il nome, il tipo e la dimensione del file, il modo in cui il file è stato consegnato alla pagina e se LayerT ha potuto leggerlo. Il testo di un file viene letto nel browser per decidere e non viene mai inviato.
  • Il browser invia sempre il valore intero. L’impostazione con cui una regola maschera o nasconde i propri valori viene applicata sui server di LayerT, prima che qualsiasi cosa venga archiviata. I valori non vengono oscurati nel browser.
  • Una password o un codice compilati da LayerT non vengono mai letti da alcuna regola, quindi non c’è nulla da inviare. Una regola sulla digitazione non legge mai, in nessun caso, una casella della password o una casella del codice monouso. Una regola sui moduli o sull’incolla legge i campi che indica, e tra questi può esserci una casella della password in cui una persona ha digitato da sé.
  • Invia richieste di accesso con la motivazione della persona, e frammenti cifrati delle registrazioni quando la registrazione è attiva per un account condiviso.
  • Invia il motivo che una persona indica per proseguire oltre un blocco, dove una regola lo consente.
  • 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.
  • Gli eventi in attesa di invio restano nello storage dell’estensione finché non vengono consegnati, e possono contenere i valori che hanno fatto scattare una regola.
  • Non invia pagine. Al di fuori di una sessione registrata di un account condiviso, l’unico contenuto della pagina che invia è il testo di un campo in cui una regola ha trovato una corrispondenza, e non invia nulla di ciò che viene digitato in campi non indicati dalle vostre regole. Non invia mai la cronologia di navigazione, un elenco delle pagine visitate o i valori dei cookie. In una sessione registrata, ciò che le persone digitano è mascherato nel punto in cui lo digitano, nei campi dei moduli e negli editor di testo formattato, e la registrazione mostra comunque ciò che la pagina mostra a sua volta: i dettagli sono in Sessioni e registrazione.