Condividi tramite


Aumentare la resilienza dell'autenticazione e dell'autorizzazione nelle applicazioni client sviluppate

Informazioni su come creare resilienza nelle applicazioni client che usano Microsoft Identity Platform e Microsoft Entra ID per consentire l'accesso degli utenti ed eseguire azioni per conto di tali utenti.

Usare Microsoft Authentication Library (MSAL)

Microsoft Authentication Library (MSAL) fa parte di Microsoft Identity Platform. MSAL acquisisce, gestisce, memorizza nella cache e aggiorna i token; usa le procedure consigliate per la resilienza. MSAL consente agli sviluppatori di creare soluzioni sicure.

Ulteriori informazioni:

MSAL memorizza nella cache i token e usa un modello di acquisizione di token invisibile all'utente. MSAL serializza la cache dei token nei sistemi operativi che forniscono in modo nativo l'archiviazione sicura, ad esempio UWP (Universal Windows Platform), iOS e Android. Personalizzare il comportamento di serializzazione quando si usa:

  • Microsoft.Identity.Web
  • MSAL.NET
  • MSAL per Java
  • MSAL per Python

Ulteriori informazioni:

Quando si usa MSAL, la memorizzazione nella cache dei token, l'aggiornamento e l'acquisizione invisibile all'utente sono supportate. Usare modelli semplici per acquisire i token per l'autenticazione. È disponibile il supporto per molte lingue. Trovare l'esempio di codice in Esempi di codice di Microsoft Identity Platform.

try
{
    result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
}
catch(MsalUiRequiredException ex)
{
    result = await app.AcquireToken(scopes).WithClaims(ex.Claims).ExecuteAsync()
}

MSAL è in grado di aggiornare i token. Quando Microsoft Identity Platform rilascia un token di lunga durata, può inviare informazioni al client per aggiornare il token (refresh_in). L'app viene eseguita mentre il token precedente è valido, ma richiede più tempo per un'altra acquisizione di token.

Versioni di MSAL

È consigliabile che gli sviluppatori creino un processo per usare la versione msal più recente perché l'autenticazione fa parte della sicurezza delle app. Usare questa procedura per le librerie in fase di sviluppo e migliorare la resilienza delle app.

Trova la versione più recente e le note di rilascio:

Modelli resilienti per la gestione dei token

Se non si usa MSAL, usare modelli resilienti per la gestione dei token. La libreria MSAL implementa le procedure consigliate.

In genere, le applicazioni che usano l'autenticazione moderna chiamano un endpoint per recuperare i token che autenticano l'utente o autorizzare l'applicazione a chiamare le API protette. MSAL gestisce l'autenticazione e implementa modelli per migliorare la resilienza. Se non si usa MSAL, usare le indicazioni riportate in questa sezione per le procedure consigliate. In caso contrario, MSAL implementa automaticamente le procedure consigliate.

Il sistema di autenticazione di backup di Microsoft Entra ID offre resilienza alle applicazioni che usano protocolli e flussi supportati. Per altre informazioni sui requisiti dell'applicazione per trarre vantaggio dall'autenticazione di backup, vedere Requisiti dell'applicazione per il sistema di autenticazione di backup.

Token della cache

Assicurarsi che le app memorizzano nella cache i token in modo accurato da Microsoft Identity Platform. Dopo che l'app riceve i token, la risposta HTTP con token ha una expires_in proprietà che indica la durata della memorizzazione nella cache e quando riutilizzarla. Verificare che l'applicazione non tenti di decodificare un token di accesso all'API.

Diagramma di un'app che chiama a Microsoft Identity Platform, tramite una cache di token nel dispositivo che esegue l'applicazione.

I token memorizzati nella cache impediscono il traffico non necessario tra un'app e Microsoft Identity Platform. Questo scenario rende l'app meno vulnerabile agli errori di acquisizione dei token riducendo le chiamate di acquisizione dei token. I token memorizzati nella cache migliorano le prestazioni dell'applicazione, perché l'app blocca l'acquisizione di token meno frequentemente. Gli utenti rimangono connessi all'applicazione per la durata del token.

Serializzare e rendere persistenti i token

Assicurarsi che le app serializzino la cache dei token in modo sicuro per rendere persistenti i token tra le istanze dell'app. Riutilizzare i token durante il loro ciclo di vita. I token di aggiornamento e i token di accesso vengono emessi per molte ore. Durante questo periodo, gli utenti potrebbero avviare l'applicazione più volte. All'avvio di un'app, confermare che stia cercando un accesso valido o un token di aggiornamento. In questo modo si aumenta la resilienza e le prestazioni dell'app.

Ulteriori informazioni:

Verificare che l'archiviazione dei token persistenti disponga del controllo di accesso e della crittografia, in relazione al proprietario utente o all'identità del processo. In vari sistemi operativi sono disponibili funzionalità di archiviazione delle credenziali.

Acquisire i token in modo silenzioso

L'autenticazione di un utente o il recupero dell'autorizzazione per chiamare un'API comporta più passaggi in Microsoft Identity Platform. Ad esempio, gli utenti che accedono per la prima volta immettono le credenziali ed eseguono un'autenticazione a più fattori. Ogni passaggio influisce sulla risorsa che fornisce il servizio. La migliore esperienza utente con le meno dipendenze è l'acquisizione di token invisibile all'utente.

Diagramma dei servizi di Microsoft Identity Platform che consentono di completare l'autenticazione utente o l'autorizzazione.

L'acquisizione di token invisibile all'utente inizia con un token valido dalla cache dei token dell'app. Se non è disponibile alcun token valido, l'app tenta di acquisire un token usando un token di aggiornamento disponibile e l'endpoint del token. Se nessuna delle opzioni è disponibile, l'app acquisisce un token usando il prompt=none parametro . Questa azione usa l'endpoint di autorizzazione, ma non viene visualizzata alcuna interfaccia utente per l'utente. Se possibile, Microsoft Identity Platform fornisce un token all'app senza interazione dell'utente. Se nessun metodo restituisce un token, l'utente esegue manualmente l'autenticazione.

Annotazioni

In generale, assicurarsi che le app non usino richieste come "login" e "consent". Questi prompt forzano l'interazione dell'utente, quando non è necessaria alcuna interazione.

Gestione del codice di risposta

Usare le sezioni seguenti per informazioni sui codici di risposta.

Codice di risposta HTTP 429

Esistono risposte di errore che influiscono sulla resilienza. Se l'applicazione riceve un codice di risposta HTTP 429, Troppe richieste, Microsoft Identity Platform limita le richieste. Se un'app effettua troppe richieste, viene limitata per impedire all'app di ricevere i token. Non consentire a un'app di tentare l'acquisizione del token prima che il tempo indicato nel campo di risposta Retry-After sia completo. Spesso, una risposta 429 indica che l'applicazione non memorizza nella cache e riutilizza correttamente i token. Verificare come i token vengono memorizzati nella cache e riutilizzati nell'applicazione.

Codice di risposta HTTP 5x

Se un'applicazione riceve un codice di risposta HTTP 5x, l'app non deve immettere un ciclo di ripetizione rapido. Utilizzare la stessa procedura per una risposta 429. Se non viene visualizzata alcuna intestazione Retry-After, implementare un nuovo tentativo di back-off esponenziale con il primo tentativo, almeno 5 secondi dopo la risposta.

Quando si verifica il timeout di una richiesta, i tentativi immediati sono sconsigliati. Implementare un nuovo tentativo di back-off esponenziale, con il primo tentativo, almeno 5 secondi dopo la risposta.

Molte applicazioni e API necessitano di informazioni utente per autorizzare. I metodi disponibili presentano vantaggi e svantaggi.

Token

I token di identità (ID) e i token di accesso hanno attestazioni standard che forniscono informazioni. Se le informazioni necessarie si trovano nel token, la tecnica più efficiente è attestazioni token, perché impedisce un'altra chiamata di rete. Meno chiamate di rete equivalgono a una migliore resilienza.

Ulteriori informazioni:

Annotazioni

Alcune applicazioni chiamano l'endpoint UserInfo per recuperare le attestazioni relative all'utente autenticato. Le informazioni nel token ID sono un superset di informazioni dall'endpoint UserInfo. Abilitare le app per usare il token ID anziché chiamare l'endpoint UserInfo.

Aumentare le dichiarazioni di token standard con dichiarazioni facoltative, ad esempio i gruppi. L'opzione Gruppo di applicazioni include i gruppi assegnati all'applicazione. Le opzioni Tutti o Gruppi di sicurezza includono gruppi di app nello stesso tenant, che possono aggiungere gruppi al token. Valutare l'effetto, perché può ridurre l'efficienza della richiesta di gruppi nel token causando il gonfiamento del token e richiedendo chiamate aggiuntive per ottenere i gruppi.

Ulteriori informazioni:

È consigliabile usare e includere ruoli dell'app, che i clienti gestiscono usando il portale o le API. Assegnare ruoli a utenti e gruppi per controllare l'accesso. Quando viene rilasciato un token, i ruoli assegnati si trovano nell'attestazione dei ruoli del token. Le informazioni derivate da un token impediscono più chiamate api.

Visualizza Aggiungi i ruoli dell'app alla tua applicazione e ricevili nel token

Aggiungi attestazioni basate sulle informazioni relative al tenant. Ad esempio, un'estensione ha un ID utente specifico dell'organizzazione.

L'aggiunta di informazioni dalla directory a un token è efficiente e aumenta la resilienza riducendo le dipendenze. Non risolve i problemi di resilienza a causa di un'impossibilità di acquisire un token. Aggiungere attestazioni facoltative per gli scenari principali dell'applicazione. Se l'app richiede informazioni per la funzionalità amministrativa, l'applicazione può ottenere tali informazioni, in base alle esigenze.

Microsoft Graph

Microsoft Graph ha un endpoint API unificato per accedere ai dati di Microsoft 365 relativi a modelli di produttività, identità e sicurezza. Le applicazioni che usano Microsoft Graph possono usare le informazioni di Microsoft 365 per l'autorizzazione.

Le app richiedono un token per accedere a Microsoft 365, che è più resiliente rispetto alle API precedenti per i componenti di Microsoft 365 come Microsoft Exchange o Microsoft SharePoint che richiedono più token.

Quando si usano le API Microsoft Graph, usare Microsoft Graph SDK che semplifica la creazione di applicazioni resilienti che accedono a Microsoft Graph.

Vedere Panoramica di Microsoft Graph SDK

Per l'autorizzazione, prendere in considerazione l'uso di attestazioni di token invece di alcune chiamate di Microsoft Graph. Richiedi gruppi, ruoli dell'applicazione e attestazioni facoltative nei token. Microsoft Graph per l'autorizzazione richiede più chiamate di rete che si basano su Microsoft Identity Platform e Microsoft Graph. Tuttavia, se l'applicazione si basa su Microsoft Graph come livello dati, Microsoft Graph per l'autorizzazione non è più rischioso.

Usare l'autenticazione broker nei dispositivi mobili

Nei dispositivi mobili, un broker di autenticazione come Microsoft Authenticator migliora la resilienza. Il broker di autenticazione usa un token di aggiornamento primario (PRT) con attestazioni relative all'utente e al dispositivo. Usare prt per i token di autenticazione per accedere ad altre applicazioni dal dispositivo. Quando un PRT (token di aggiornamento primario) richiede l'accesso all'applicazione, Microsoft Entra ID considera attendibili le dichiarazioni del dispositivo e dell'autenticazione a più fattori. In questo modo si aumenta la resilienza riducendo i passaggi per autenticare il dispositivo. Gli utenti non hanno più richieste di autenticazione a più fattori nello stesso dispositivo.

Vedere Che cos'è un token di aggiornamento primario?

Diagramma di un'app che chiama Microsoft Identity Platform, tramite una cache dei token e un archivio token e un broker di autenticazione nel dispositivo che esegue l'applicazione.

MSAL supporta l'autenticazione broker. Ulteriori informazioni:

Valutazione dell'accesso continuo

La valutazione dell'accesso continuo aumenta la sicurezza e la resilienza delle applicazioni con token di lunga durata. Con CAE, un token di accesso viene revocato in base a eventi critici e valutazione dei criteri, anziché a durate di token brevi. Per alcune API delle risorse, poiché i rischi e i criteri vengono valutati in tempo reale, CAE aumenta la durata dei token fino a 28 ore. MSAL aggiorna i token di lunga durata.

Ulteriori informazioni:

Se sviluppi API di risorse, vai a openid.net per Segnali condivisi - un framework sicuro di webhook.

Passaggi successivi