Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quasi tutte le soluzioni multi-tenant richiedono un sistema di gestione identità. Questo articolo descrive i componenti comuni dell'identità, tra cui l'autenticazione e l'autorizzazione, e come è possibile applicare questi componenti in una soluzione multi-tenant.
Nota
Prima di iniziare a creare un sistema di identità per una soluzione multi-tenant, vedere Considerazioni sull'architettura per l'identità in una soluzione multi-tenant.
Autenticazione
L'autenticazione è il processo che stabilisce l'identità di un utente. Quando costruisci una soluzione multi-tenant, considera i vari approcci per i diversi aspetti del processo di autenticazione.
Federazione
Potrebbe essere necessario configurare la federazione con provider di identità esterni. È possibile usare la federazione per abilitare gli scenari seguenti:
Accesso tramite social network, che consente agli utenti di accedere con il proprio account Microsoft Google, Facebook, GitHub o personale
Directory specifiche del tenant, che consentono ai tenant di federare l'applicazione con i propri IdP in modo che non debbano gestire gli account in più luoghi.
Per altre informazioni, vedere Il modello di identità federata.
Se si sceglie di supportare IdP specifici per il tenant, assicurarsi di chiarire quali servizi e protocolli la tua applicazione supporta. Ad esempio, determinare se supportare il protocollo OpenID Connect e il protocollo Security Assertion Markup Language o se limitare la federazione alle istanze di Microsoft Entra ID.
Quando si implementa un IdP, considerare la scalabilità e i limiti che potrebbero applicarsi. Ad esempio, il provider di identità potrebbe essere in grado di eseguire la federazione solo con un numero limitato di altri provider di identità.
Valutare anche la possibilità di fornire la federazione come funzionalità applicabile solo ai clienti a un livello di prodotto superiore.
Autenticazione unica
Single Sign-On consente agli utenti di passare facilmente da un'applicazione all'altra senza dover ripetere l'autenticazione in ogni punto.
Quando gli utenti eseguono un'applicazione, l'applicazione li indirizza a un IdP. Se il provider di identità rileva una sessione esistente, rilascia un nuovo token senza richiedere agli utenti di partecipare al processo di accesso. Un modello di identità federata supporta l'accesso Single Sign-On consentendo agli utenti di usare una singola identità in più applicazioni.
In una soluzione multi-tenant è possibile abilitare un altro tipo di accesso Single Sign-On. Se gli utenti sono autorizzati ad accedere ai dati in più tenant, potrebbe essere necessario offrire un'esperienza trasparente quando gli utenti modificano il contesto da un tenant a un altro. Valutare se la soluzione deve supportare transizioni semplici tra tenant. In tal caso, valutare se il provider di identità deve riemettere i token con attestazioni specifiche del tenant. Ad esempio, quando un utente accede al portale di Azure, può passare da una directory all'altra di Microsoft Entra ID. Questa transizione attiva la riautenticazione e genera un nuovo token dall'istanza di Microsoft Entra ID appena selezionata.
Valutazione dei rischi correlati all'accesso
Le moderne piattaforme di gestione identità supportano una valutazione dei rischi durante il processo di accesso. Ad esempio, se un utente accede da una posizione o da un dispositivo insolito, il sistema di autenticazione potrebbe richiedere controlli di identità aggiuntivi, ad esempio l'autenticazione a più fattori (MFA), prima di consentire la continuazione della richiesta di accesso.
Considerare se i tenant potrebbero avere criteri di rischio diversi che devono essere applicati durante il processo di autenticazione. Ad esempio, se si dispone di alcuni tenant in un settore altamente regolamentato, potrebbero avere profili di rischio e requisiti diversi rispetto ai tenant che lavorano in ambienti meno regolamentati. In alternativa, è possibile consentire ai tenant con piani tariffari più elevati di specificare criteri di accesso più restrittivi rispetto ai tenant che acquistano un livello inferiore del servizio.
Se è necessario supportare criteri di rischio diversi per ogni tenant, il sistema di autenticazione deve conoscere il tenant a cui l'utente accede in modo che possa applicare i criteri corretti.
Se IdP include queste funzionalità, è consigliabile usare le funzionalità di valutazione dei rischi di accesso nativi IdP. Queste funzionalità possono essere complesse e soggette a errori da risolvere manualmente.
In alternativa, se si esegue la federazione agli IdP dei tenant, è possibile applicare i loro criteri di mitigazione degli accessi a rischio, il che consente loro di controllare le politiche di attuazione e i controlli. Ad esempio, richiedere due sfide di autenticazione a più fattori, una dall'IDP principale dell'utente e un'altra dal tuo, può rendere più difficile il processo di accesso. Assicurarsi di comprendere in che modo la federazione interagisce con gli IdP di ciascun tenant e le politiche che hanno in vigore.
Impersonificazione
La rappresentazione consente a un utente di assumere l'identità di un altro utente senza usare le credenziali dell'utente.
L'imitazione è generalmente pericolosa e può essere difficile da realizzare e controllare. Tuttavia, in alcuni scenari, è necessaria la personificazione. Ad esempio, se si opera in un ambiente SaaS (Software as a Service), il personale dell'help desk potrebbe dover presupporre l'identità di un utente in modo che possa accedere come utente e risolvere un problema.
Se si implementa l'impersonificazione, considerare come controllarne l'uso. Assicurarsi che i log includano sia l'utente che ha eseguito l'azione sia l'identificatore dell'utente rappresentato.
Alcune piattaforme di identità supportano la rappresentazione come funzionalità predefinita o usando un codice personalizzato. Ad esempio, è possibile aggiungere un'attestazione personalizzata in Microsoft Entra External ID per l'ID utente rappresentato oppure sostituire l'attestazione dell'identificatore del soggetto nei token rilasciati.
Autorizzazione
L'autorizzazione è il processo volto a determinare ciò che un utente è autorizzato a fare.
I dati di autorizzazione possono essere archiviati in diverse posizioni, comprese le posizioni seguenti:
Nel tuo IdP: ad esempio, se si utilizza Microsoft Entra ID come IdP, è possibile usare funzionalità come ruoli dell'app e gruppi per archiviare le informazioni di autorizzazione. L'applicazione può quindi impiegare le attestazioni di token associate per applicare le regole di autorizzazione.
Nell'applicazione: È possibile creare una logica di autorizzazione personalizzata e quindi archiviare informazioni sulle operazioni che ogni utente può eseguire in un database o in un sistema di archiviazione simile. È quindi possibile progettare controlli con granularità fine per autorizzazioni a livello di ruolo o a livello di risorsa.
Nella maggior parte delle soluzioni multi-tenant, il cliente o il tenant gestisce le assegnazioni di ruolo e autorizzazioni e non il fornitore del sistema multi-tenant.
Aggiungere informazioni sull'identità del locatario e sul ruolo ai token
Determinare quali parti della soluzione devono gestire le richieste di autorizzazione. Valutare se consentire a un utente di accedere ai dati da un tenant specifico.
Un approccio comune consiste nel fare in modo che il sistema di identità incorpori un'asserzione di identificatore di tenant in un token. Questo approccio permette all'applicazione di esaminare l'attestazione e verificare che gli utenti lavorino con il tenant a cui sono autorizzati ad accedere. Se si usa il modello di sicurezza basato sui ruoli, è possibile estendere il token per includere informazioni sul ruolo dell'utente all'interno del tenant.
Tuttavia, se un singolo utente è autorizzato ad accedere a più tenant, potrebbe essere necessario un modo per consentire agli utenti di segnalare il tenant con cui intende lavorare durante il processo di accesso. Dopo che l'utente seleziona il tenant attivo, il provider di identità può emettere un token che includa la rivendicazione dell'identificatore del locatario e il ruolo appropriato per quel locatario. È inoltre necessario considerare come gli utenti possono passare da un tenant all'altro, il che richiede l'emissione di un nuovo token.
Autorizzazione basata sull'applicazione
Un approccio alternativo consiste nel rendere il sistema identità indipendente dagli identificatori e dai ruoli del tenant. Gli utenti vengono identificati tramite le credenziali o una relazione di federazione e i token non includono un'attestazione di identificatore del tenant. Un elenco separato o un database gestisce i record di cui agli utenti viene concesso l'accesso a ogni tenant. Il livello applicazione verifica quindi se un utente specificato è autorizzato ad accedere ai dati per un tenant specifico in base a tale elenco.
Usare l'ID Microsoft Entra o l'ID esterno
Microsoft Entra ID e ID esterno sono piattaforme di identità gestite che è possibile usare all'interno della propria soluzione multi-tenant.
Molte soluzioni multi-tenant funzionano come SaaS. La scelta di usare Microsoft Entra ID o ID esterno dipende in parte dal modo in cui si definiscono i tenant o la base clienti.
Se i tenant o i clienti sono organizzazioni, potrebbero già usare Microsoft Entra ID per i servizi come Microsoft 365, Microsoft Teams o per i propri ambienti Azure. È possibile creare un'applicazione multi-tenant nella propria directory Microsoft Entra ID per rendere la soluzione disponibile per altre directory ID di Microsoft Entra. È anche possibile elencare la soluzione in Azure Marketplace e renderla facilmente accessibile alle organizzazioni che usano Microsoft Entra ID.
Se i tenant o i clienti non usano l'ID Entra Microsoft o se sono singoli utenti anziché organizzazioni, è consigliabile usare l'ID esterno. L'ID esterno fornisce funzionalità per controllare la modalità di iscrizione e accesso degli utenti. Ad esempio, è possibile limitare l'accesso alla soluzione solo agli utenti invitati oppure abilitare l'iscrizione self-service. È possibile usare il branding personalizzato. Per consentire al proprio personale di accedere, è possibile invitare utenti dal tenant di Microsoft Entra ID come ospiti nell'ID esterno tramite accesso ospite. L'ID esterno consente anche la federazione con altri IdP.
Alcune soluzioni multi-tenant sono destinate a entrambi gli scenari elencati in precedenza. Alcuni tenant potrebbero avere il proprio ID Microsoft Entra e altri tenant potrebbero non averlo. È possibile usare l'ID esterno per questo scenario e usare la federazione per consentire l'accesso utente dalla directory Microsoft Entra ID di un tenant.
Importante
Azure AD B2C supporta anche molti degli scenari descritti in questo articolo. Tuttavia, a partire dal 1° maggio 2025, non è più disponibile per l'acquisto per nuovi clienti, quindi non è consigliabile per le nuove soluzioni. Per altre informazioni, vedere Domande frequenti su Azure AD B2C.
Antipattern da evitare
Creazione o gestione del proprio sistema di identità
La creazione di una moderna piattaforma di gestione identità è una procedura complessa. Richiede il supporto per una serie di protocolli e standard e un'implementazione non corretta può introdurre vulnerabilità di sicurezza. Poiché gli standard e i protocolli cambiano, è necessario aggiornare continuamente il sistema di identità per attenuare gli attacchi e incorporare le funzionalità di sicurezza più recenti. È anche importante assicurarsi che un sistema di identità sia resiliente perché qualsiasi tempo di inattività può avere gravi conseguenze per il resto della soluzione. Nella maggior parte degli scenari, l'implementazione di un IdP non è direttamente vantaggiosa per l'azienda, ma è necessaria per implementare un servizio multitenant. È preferibile usare un sistema di identità specializzato che gli esperti creano, operano e proteggono.
Quando si esegue il proprio sistema di identità, è necessario salvare gli hash delle password o altre forme di credenziali, che diventano una destinazione allettante per gli utenti malintenzionati. Anche l'hashing e il salting delle password sono spesso insufficienti perché gli utenti malintenzionati hanno una potenza di calcolo sufficiente per compromettere queste credenziali.
Quando si esegue un sistema di identità, si è responsabili della generazione e della distribuzione di codici MFA o password monouso. È necessario un meccanismo per inviare questi codici tramite SMS o posta elettronica. Si è anche responsabili del rilevamento di attacchi mirati e di forza bruta, di limitazione dei tentativi di accesso e di gestione dei log di controllo.
Anziché creare o gestire il proprio sistema di identità, è consigliabile usare un servizio o un componente predefinito. Si considerino ad esempio piattaforme di identità gestite come Microsoft Entra ID o ID esterno. I fornitori di queste piattaforme sono responsabili del funzionamento dell'infrastruttura e in genere garantiscono il supporto per gli standard di identità e autenticazione correnti.
Trascurare di considerare i requisiti dei tuoi inquilini
I tenant hanno spesso preferenze avanzate su come gestire l'identità nelle soluzioni usate. Ad esempio, molti clienti aziendali richiedono la federazione con i propri provider di identità per abilitare l'accesso Single Sign-On ed evitare di gestire più set di credenziali. Altri tenant potrebbero richiedere l'autenticazione a più fattori o misure di sicurezza aggiuntive per il processo di accesso. Se non si considerano questi requisiti durante la progettazione, aggiungerli in un secondo momento può essere difficile.
Assicurarsi di comprendere i requisiti di identità dei tenant prima di finalizzare la progettazione del sistema di identità. Per altre informazioni sui requisiti specifici, vedere Considerazioni sull'architettura per l'identità in una soluzione multi-tenant.
Confondere utenti e inquilini
È importante valutare bene in che modo la soluzione definisce un utente e un tenant. In molti scenari la relazione può essere complessa. Ad esempio, un tenant potrebbe contenere più utenti, e un singolo utente potrebbe partecipare a più tenant.
Assicurati di avere un processo chiaro per tenere traccia del contesto degli inquilini all'interno della tua applicazione e delle richieste. In alcuni scenari, questo processo richiede di includere un identificatore del tenant in ogni token di accesso e convalidarlo in ogni richiesta. In altri casi, le informazioni di autorizzazione del tenant vengono archiviate separatamente dalle identità utente. Questo approccio richiede un sistema di autorizzazione più complesso per gestire quali utenti possono eseguire operazioni specifiche all'interno di ogni tenant.
Il rilevamento del contesto del tenant di un utente o di un token è applicabile a qualsiasi modello di tenancy perché un'identità utente ha sempre un contesto tenant all'interno di una soluzione multi-tenant. È consigliabile tenere traccia del contesto del tenant quando si distribuiscono istanze indipendenti per un singolo tenant, il che consente alla codebase di supportare in futuro altre forme di multitenancy.
Fusione dell'autorizzazione di ruoli e risorse
È importante scegliere un modello di autorizzazione adatto alla soluzione. La sicurezza basata sui ruoli è semplice da implementare, ma l'autorizzazione basata sulle risorse offre un controllo più granulare. Valutare i requisiti dei tenant e determinare se devono autorizzare alcuni utenti ad accedere solo a parti specifiche della soluzione.
Impossibile scrivere log di controllo
I log di controllo sono uno strumento importante per comprendere l'ambiente e come gli utenti implementano il sistema. Controllando ogni evento correlato all'identità, è spesso possibile determinare se il sistema di identità è sotto attacco, ed è possibile esaminare in che modo viene usato il sistema. Assicurarsi di scrivere e archiviare i log di controllo all'interno del sistema di identità. Considerare se i log di controllo delle identità della soluzione devono essere resi disponibili ai tenant per esaminarli.
Collaboratori
Microsoft gestisce questo articolo. I collaboratori seguenti hanno scritto questo articolo.
Autori principali:
- John Downs | Principal Software Engineer
- Daniel Scott-Raynsford | Partner Technology Strategist
- Arsen Vladimirskiy | Ingegnere Cliente Principale, FastTrack per Azure
Altri contributori:
- Jelle Druyts | Principal Customer Engineer, FastTrack per Azure
- Landon Pierce | Senior Customer Engineer
- Sander van den Hoven | Senior Partner Technology Strategist
- Nick Ward | Architetto senior di soluzioni cloud
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.