Come gestire l'autenticazione multi-tenant per una SaaS B2B, con login white-label per ogni cliente
L'autenticazione multi-tenant di una SaaS B2B si gestisce modellando ogni cliente aziendale come un tenant isolato, con la propria base utenti, le proprie policy di sicurezza, la propria federazione SSO verso l'identity provider del cliente e il proprio branding sulle pagine di login. Le decisioni che contano sono sei, si prendono prima di scrivere codice, e la più costosa da cambiare in seguito è la prima: se un utente è un'entità unica della piattaforma che appartiene a più tenant, o se ogni tenant ha una base utenti separata.
Passo 1 — Il modello di identità: la decisione irreversibile
La domanda concreta è questa: se Mario lavora per il cliente A e viene invitato anche dal cliente B con lo stesso indirizzo email, sono una persona o due?
| Modello | Come funziona | Punti di forza | Costi nascosti |
|---|---|---|---|
| Base utenti per tenant | Ogni tenant ha i propri utenti; la stessa email in due tenant sono due account distinti | Isolamento massimo, cancellazione del cliente banale, nessuna correlazione fra clienti | Chi collabora con più clienti gestisce più credenziali e cambia contesto facendo logout |
| Identità unica, appartenenza multipla | L'utente è unico nella piattaforma e ha ruoli in più tenant | Esperienza fluida per consulenti, partner e utenti condivisi | La cancellazione di un cliente non può cancellare l'utente; serve un modello di appartenenza esplicito |
| Ibrido | Identità unica per gli utenti interni e per i partner, base separata per gli utenti finali di ciascun cliente | Copre lo scenario reale della maggior parte delle SaaS B2B | Richiede che la piattaforma distingua tipologie di utente nello stesso tenant |
La scelta va fatta con davanti il modello di vendita, non il modello dati: se vendi a grandi aziende che portano i propri dipendenti, la base separata per tenant è quasi sempre corretta; se il tuo prodotto è usato da agenzie e consulenti che lavorano per più clienti, la separazione rigida diventa una lamentela ricorrente al terzo mese.
Passo 2 — Come si risolve il tenant al login
Prima di autenticare devi sapere in quale contesto stai autenticando: serve a mostrare il branding giusto, a scegliere la policy giusta e a indirizzare verso l'identity provider giusto.
| Strategia | Esempio | Pro | Contro |
|---|---|---|---|
| Sottodominio | acme.tuaapp.com | Tenant noto prima del login, branding immediato, semplice da automatizzare | Richiede DNS wildcard e certificato wildcard |
| Dominio personalizzato | login.acme.com | Massimo effetto white-label, l'utente non lascia il dominio del cliente | Onboarding DNS e certificati per cliente, da automatizzare |
| Dominio dell'email (home realm discovery) | mario@acme.com → tenant Acme | Un solo punto di ingresso, ottimo con SSO federato | Domini condivisi (gmail.com) vanno gestiti a parte |
| Selettore esplicito | L'utente sceglie l'organizzazione dopo il login | Nativo per l'appartenenza multipla | Branding possibile solo dopo la scelta |
| Parametro applicativo | Il tenant è nel link di invito | Nessuna infrastruttura aggiuntiva | Fragile: link condivisi e bookmark portano nel tenant sbagliato |
Nella pratica le SaaS mature ne combinano due: sottodominio o dominio personalizzato per il branding, e home realm discovery sul dominio email per indirizzare gli utenti federati all'IdP corretto.
Passo 3 — SSO federato per singolo cliente
Il primo cliente enterprise che firma un contratto significativo chiede il SSO con il proprio Entra ID. Il secondo usa Google Workspace. Il terzo ha Okta e un requisito SAML 2.0. Se la federazione è configurata a livello globale invece che per tenant, ogni nuovo cliente diventa un progetto di sviluppo.
- La configurazione dell'identity provider (client ID, secret o certificato, metadata, mappatura dei claim) deve appartenere al tenant.
- La mappatura gruppi → ruoli è diversa per cliente: 'GRP-ADMIN' in Acme e 'amministratori@beta.com' in Beta devono poter puntare allo stesso ruolo applicativo.
- Serve la convivenza fra utenti federati e utenti con credenziali locali nello stesso tenant: quasi ogni cliente ha almeno un consulente esterno fuori dalla propria directory.
- Il deprovisioning segue la directory del cliente: quando l'IdP disattiva l'utente, l'accesso alla tua SaaS cessa senza un ticket verso il tuo supporto.
La procedura completa di federazione verso Entra ID e Google Workspace, con endpoint, claim ed errori tipici, è nella guida dedicata al SSO con SAML 2.0 e OIDC.
Passo 4 — White-label: cosa deve essere personalizzabile davvero
"White-label" usato come sinonimo di "puoi caricare il logo" è la causa più frequente di rinegoziazione con il cliente enterprise. L'elenco di ciò che l'utente finale vede, e che quindi deve poter essere del cliente, è più lungo di quanto sembri.
| Touchpoint | Perché conta | Livello minimo accettabile |
|---|---|---|
| Pagina di login | È la prima impressione del servizio | Logo, colori, font, layout |
| Dominio | Un redirect verso un dominio terzo genera diffidenza e ticket | Sottodominio o dominio del cliente |
| Email di verifica e benvenuto | Arrivano in casella e vengono inoltrate ai colleghi | Mittente, oggetto, template, lingua |
| Reset password | È il flusso più usato in assoluto dopo il login | Pagina e email personalizzate |
| Configurazione 2FA | Percepita come parte del prodotto del cliente | Pagina personalizzata sul dominio del tenant |
| Gestione sessioni attive | Richiesta dai team sicurezza dei clienti | Pagina personalizzata |
| Messaggi di errore | Un errore in inglese in un prodotto italiano rompe l'illusione | Localizzazione per tenant |
In LoginMaster nessun riferimento al fornitore compare nell'esperienza utente di produzione, e la personalizzazione si estende a template email, dominio e pagine di gestione identità, con template diversi per lingua e per tipologia di utente. Il dettaglio è su autenticazione white-label.
Passo 5 — Isolamento: logico o crittografico
Quasi tutte le piattaforme dichiarano l'isolamento fra tenant. La domanda che discrimina è: l'isolamento è garantito da un controllo applicativo — una clausola WHERE tenant_id = ? e un claim nel token — o da una proprietà crittografica?
La differenza si vede in un solo scenario, ma è quello che conta: un bug in una query, un claim non verificato, un parametro manipolabile. Con l'isolamento applicativo, quel bug è un data breach fra clienti. Con l'isolamento crittografico, la validazione fallisce strutturalmente perché il token non è firmato con le chiavi di quel tenant.
POST /v1/auth/verify HTTP/1.1
Host: api.loginmaster.it
X-Project-Key: pk_live_••••••••
Content-Type: application/json
{ "token": "lm2f.eyJhbGciOiJFZERTQS..." }
HTTP/1.1 200 OK
{
"valid": true,
"subject": "sub_9f2a7c",
"tenant": "https://acme.example.com",
"signatures": { "tenant": "verified", "cloud": "verified" }
}Ogni tenant ha la propria identità crittografica e ogni progetto la propria chiave: un token emesso per il tenant Acme, presentato nel contesto del tenant Beta, non fallisce un controllo — fallisce la verifica della firma. È la stessa proprietà che rende sostenibile ospitare clienti concorrenti fra loro sulla stessa piattaforma, che è la norma in una SaaS verticale.
Passo 6 — Onboarding di un nuovo cliente via API
Se creare un tenant richiede l'intervento di una persona, il costo marginale di un cliente non scende mai. L'onboarding deve essere una sequenza di chiamate API eseguibile dal tuo backoffice o da un flusso self-service.
- 1Crea il tenant e imposta le policy di base (durata sessione, requisiti password, tipi di secondo fattore ammessi, domini email autorizzati).
- 2Registra i progetti: applicazione web, app mobile, eventuale pannello di amministrazione del cliente, ciascuno con la propria policy 2FA.
- 3Applica il branding: logo, palette, template email, lingua predefinita.
- 4Configura la federazione, se il cliente porta il proprio identity provider.
- 5Effettua il provisioning degli utenti iniziali e sottoscrivi i webhook per sincronizzare lo stato applicativo.
POST /v1/projects/prj_12ab/subjects HTTP/1.1
Host: api.loginmaster.it
Authorization: Bearer ak_live_••••••••
Content-Type: application/json
{
"type": "user",
"externalId": "acme-4821",
"roles": ["member"]
}Il ciclo di vita completo, inclusi cambio ruolo e disattivazione, è in Provisioning e ciclo di vita degli utenti via REST API e SDK.
Costruire, self-hosting o piattaforma: il confronto
Le opzioni reali per una SaaS B2B sono quattro. Nessuna è sbagliata in assoluto: cambiano il momento in cui il costo si manifesta e chi lo paga.
| Opzione | Dove funziona bene | Dove si rompe |
|---|---|---|
| Costruire in casa | Prodotto giovane, tenant semplici, nessun requisito enterprise | Al primo cliente che chiede SSO SAML, audit log e white-label su dominio proprio |
| IdP open source self-hosted (es. Keycloak, un realm per cliente) | Controllo totale, nessun costo di licenza, competenze interne presenti | Presidio operativo, upgrade major, prestazioni e gestione con molte decine di realm |
| Piattaforme B2B specializzate | Time-to-market rapido su funzionalità di organizzazione e inviti | Costo per utente attivo, giurisdizione dei dati, limiti sul branding profondo |
| Piattaforme generaliste con estensione multi-tenant | Ecosistema ampio, molte integrazioni pronte | Il multi-tenant è uno strato aggiunto: isolamento logico, costi che crescono con gli utenti |
| Criterio | Domanda da porre in fase di selezione |
|---|---|
| Isolamento | L'isolamento fra tenant è applicativo o crittografico? Un token di un tenant può essere tecnicamente valido in un altro? |
| Pricing | Il costo dipende dagli utenti attivi mensili? Cosa succede al margine quando un cliente porta 20.000 utenti? |
| White-label | Posso usare il dominio del cliente, i suoi template email e nessun riferimento al vendor? |
| SSO per tenant | Ogni cliente può portare il proprio IdP senza intervento di sviluppo da parte mia? |
| Poteri dell'amministratore | Un vostro amministratore o un mio amministratore può resettare la password di un utente finale? |
| Dati e giurisdizione | Dove risiedono i dati personali e chi vi ha accesso tecnico? |
| Audit e SIEM | Gli eventi per tenant sono esportabili verso il SIEM del cliente? |
| Uscita | Come esporto utenti e configurazioni se decido di cambiare? |
Il punto sul pricing, che in B2B è architetturale
In una SaaS B2B il numero di utenti finali non lo decidi tu: lo decide il tuo cliente. Un modello di autenticazione a costo per utente attivo significa che un contratto vinto con un cliente da 30.000 dipendenti porta con sé un costo variabile che erode il margine di quel contratto esattamente quando dovrebbe migliorarlo. LoginMaster fattura per tenant e per progetto, con utenti sempre illimitati e inclusi: il costo dell'autenticazione resta prevedibile mentre i tuoi clienti crescono. Il modello è descritto su prezzi.
Serve una CIAM o una IAM?
Chi valuta piattaforme per una SaaS B2B multi-tenant incontra entrambe le sigle. IAM in senso stretto governa le identità workforce: dipendenti, SSO aziendale, ciclo di vita, accessi interni. CIAM governa le identità dei clienti: registrazione self-service, login white-label, volumi molto più alti e attenzione all'esperienza. Una SaaS B2B ha bisogno di entrambe, perché i suoi utenti sono dipendenti di aziende clienti: identità con requisiti CIAM di scala e branding, ma governate dalle policy workforce del cliente.
È il motivo per cui la stessa piattaforma deve coprire i due mondi nello stesso tenant, con policy e branding distinti per tipologia di utente: le pagine CIAM e IAM per SaaS B2B trattano i due lati.
Da dove viene questa guida
LoginMaster è la piattaforma IAM di CDBKR S.r.l., società italiana che fornisce l'infrastruttura di autenticazione a software house e MSP che rivendono il proprio prodotto a clienti aziendali. Il concetto di tenant, l'isolamento crittografico e il white-label descritti qui sono i vincoli architetturali su cui il prodotto è costruito, non funzionalità aggiunte in un secondo momento: Sicurezza ne descrive il dettaglio, i case study mostrano un'adozione reale e il programma partner il modello per chi rivende. Per discutere il proprio scenario: contatti.
Domande frequenti
Modellando ogni cliente aziendale come tenant isolato, con la propria base utenti, le proprie policy di sicurezza, la propria federazione SSO e il proprio branding. Le sei decisioni da prendere prima di scrivere codice sono: il modello di identità (utente unico con appartenenza multipla oppure base separata per tenant), la strategia di risoluzione del tenant al login, la federazione SSO configurabile per singolo cliente, l'estensione del white-label, il livello di isolamento fra tenant e l'automazione dell'onboarding via API.
Dipende dal modello scelto, e va deciso all'inizio. Con base utenti separata per tenant sono due account distinti con la stessa email: massimo isolamento, ma l'utente gestisce due credenziali. Con identità unica e appartenenza multipla è una sola persona con ruoli in due tenant: esperienza più fluida, ma la cancellazione dei dati di un cliente non può cancellare l'utente. Il modello ibrido — identità unica per partner e consulenti, base separata per gli utenti finali di ogni cliente — è quello che copre la maggior parte delle SaaS B2B reali.
Il branding deve essere una proprietà del tenant, non una configurazione globale. In LoginMaster ogni tenant personalizza pagine di login, recupero password, gestione del secondo fattore e sessioni, template ed email transazionali, mittente, lingua e dominio: nell'esperienza di produzione non compaiono riferimenti al fornitore. La combinazione consigliata è dominio personalizzato del cliente più template email con il suo mittente, perché il dominio e la casella di posta sono i due punti in cui l'utente finale nota un fornitore terzo.
Sì, ed è il requisito che arriva puntualmente con il primo contratto enterprise. La configurazione dell'identity provider deve appartenere al tenant: client ID, certificato o metadata, mappatura dei claim e traduzione dei gruppi in ruoli applicativi sono diversi per ogni cliente. Nello stesso tenant devono convivere utenti federati e utenti con credenziali locali, perché quasi ogni cliente ha consulenti esterni fuori dalla propria directory.
L'isolamento logico separa i dati con un identificativo di tenant nelle query e nei token: funziona finché ogni percorso di codice applica correttamente il filtro. L'isolamento crittografico dà a ogni tenant chiavi proprie, quindi un token emesso per il tenant A non è tecnicamente validabile nel contesto del tenant B. In LoginMaster i token portano due firme indipendenti, del tenant e del cloud: la differenza conta nell'unico scenario che importa davvero, cioè quando un bug applicativo aggira il filtro.
Molto più di quanto sembri, perché il numero di utenti finali lo decide il cliente, non tu. Con un costo per utente attivo mensile, un contratto vinto con un cliente da 30.000 dipendenti porta un costo variabile che erode il margine proprio del contratto migliore. LoginMaster fattura per tenant e per progetto, con utenti sempre illimitati e inclusi: è la ragione per cui software house e MSP che rivendono a più clienti trovano il costo dell'autenticazione prevedibile indipendentemente dalla crescita dei loro clienti.
Entrambe, perché gli utenti di una SaaS B2B sono dipendenti di aziende clienti: hanno requisiti CIAM di scala, registrazione e branding, ma sono governati dalle policy workforce del loro datore di lavoro. La piattaforma deve quindi coprire i due mondi nello stesso tenant, con policy e branding distinti per tipologia di utente, invece di costringere a gestire due sistemi separati e a riconciliarli.
È la norma in una SaaS verticale, ed è esattamente lo scenario in cui il livello di isolamento diventa una domanda contrattuale e non tecnica. Con isolamento crittografico per tenant e chiavi dedicate per progetto, una violazione che colpisse le credenziali di un tenant non ha superficie di impatto sugli altri, e la risposta al questionario di sicurezza del cliente è una proprietà dell'architettura documentabile, non una dichiarazione di intenti.
Vuoi vedere LoginMaster in azione?
Richiedi una demo personalizzata e scopri come gestire identità e accessi in modo sicuro e conforme.