Condividi tramite


Accesso condizionale: protezione dei token (anteprima)

La protezione con token (talvolta definita associazione di token nel settore) tenta di ridurre gli attacchi con furto di token garantendo che un token sia utilizzabile solo dal dispositivo previsto. Quando un utente malintenzionato riesce a rubare un token, tramite una violazione o una riproduzione, può rappresentare la vittima fino alla scadenza o alla revoca del token. Il furto di token è considerato un evento relativamente raro, ma il danno derivante può essere significativo.

La protezione con token crea un legame crittograficamente sicuro tra il token e il dispositivo (segreto client) per cui viene emesso. Senza il segreto client, il token associato è inutile. Quando un utente registra un dispositivo Windows 10 o versione successiva in Microsoft Entra ID, la relativa identità primaria viene associata al dispositivo. Ciò significa che i criteri possono garantire che solo i token di sessione di accesso associati (o i token di aggiornamento) vengano usati dalle applicazioni quando si richiede l'accesso a una risorsa.

Importante

La protezione dei token è attualmente in anteprima pubblica. Per altre informazioni sulle anteprime, vedere Condizioni di licenza universali per i servizi online. Con questa anteprima, è possibile creare criteri di accesso condizionale per richiedere la protezione con token per i token di accesso (token di aggiornamento) per servizi specifici. È supportata la protezione con token per i token nell'accesso condizionale per le applicazioni desktop che accedono a Exchange Online e SharePoint Online nei dispositivi Windows.

Importante

Dopo la versione di anteprima pubblica iniziale sono state apportate le modifiche seguenti a Protezione con token:

  • Output dei log di accesso: Il valore della stringa usata in "enforcedSessionControls" e "sessionControlsNotSatisfied" è stato modificato da "Binding" a "SignInTokenProtection" alla fine di giugno 2023. Le query sui dati del log di accesso devono essere aggiornate per riflettere questa modifica.

Nota

È possibile interscambiare token di accesso e token di aggiornamento in questo contenuto. Se si vuole garantire la protezione per i token di accesso di Microsoft 365 e i cookie di sessione dell'applicazione, provare a eseguire un controllo di rete conforme.

Screenshot che mostra un criterio di accesso condizionale che richiede la protezione dei token come controllo sessione

Requisiti

Questa anteprima supporta le configurazioni seguenti per l'accesso alle risorse con i criteri di accesso condizionale di Protezione con token applicati:

  • Dispositivi Windows 10 o versioni successive aggiunti a Microsoft Entra, aggiunti a Microsoft Entra ibrido o registrati da Microsoft Entra.
  • Client di sincronizzazione di OneDrive versione 22.217 o successiva
  • Client nativo di Teams versione 1.6.00.1331 o successiva
  • Power BI Desktop versione 2.117.841.0 (maggio 2023) o successiva
  • Visual Studio 2022 o versione successiva quando si usa l'opzione di accesso "Broker di autenticazione di Windows"
  • I client perpetui di Office non sono supportati

Limitazioni note

  • Gli utenti esterni (Microsoft Entra B2B) non sono supportati e non devono essere inclusi nei criteri di accesso condizionale.
  • Le applicazioni seguenti non supportano l'accesso tramite flussi di token protetti e gli utenti vengono bloccati durante l'accesso a Exchange e SharePoint:
    • Moduli di PowerShell che accedono agli ambiti di Exchange, SharePoint o Microsoft Graph gestiti da Exchange o SharePoint
    • Estensione PowerQuery per Excel
    • Estensioni di Visual Studio Code che accedono a Exchange o SharePoint
    • Il nuovo client di anteprima di Teams 2.1 viene bloccato dopo la disconnessione a causa di un bug. Questo bug verrà corretto in un aggiornamento futuro del servizio.
  • I dispositivi client Windows seguenti non sono supportati:
    • Server Windows
    • Surface Hub
    • Sistemi Microsoft Teams Rooms (MTR) basati su Windows

Requisiti di licenza

L'uso di questa funzionalità richiede licenze Microsoft Entra ID P2. Per trovare la licenza corretta per le proprie esigenze, vedere il confronto delle funzionalità di Microsoft Entra ID disponibili a livello generale.

Nota

L'imposizione della protezione dei token fa parte di Microsoft Entra ID Protection e farà parte della licenza P2 a disponibilità generale.

Distribuzione

Per gli utenti, la distribuzione di un criterio di accesso condizionale per applicare la protezione con token deve essere invisibile quando si usano piattaforme client compatibili su dispositivi registrati e applicazioni compatibili.

Per ridurre al minimo la probabilità di interruzioni per l'utente a causa dell'incompatibilità dell'app o del dispositivo, è consigliabile:

  • Iniziare con un gruppo pilota di utenti e ampliarlo nel tempo.
  • Creare criteri di accesso condizionale in modalità solo report prima di passare all'imposizione della protezione con token.
  • Acquisire i log di accesso interattivi e non interattivi.
  • Analizzare questi log per un periodo di tempo sufficiente per coprire l'uso normale dell'applicazione.
  • Aggiungere utenti validi noti a un criterio di imposizione.

Questo processo consente di valutare la compatibilità dei client e delle app degli utenti per l'applicazione della protezione con token.

Creare criteri di accesso condizionale

Gli utenti che eseguono ruoli specializzati come quelli descritti in Livelli di sicurezza con accesso privilegiato sono destinazioni possibili per questa funzionalità. È consigliabile avviare la distribuzione pilota con un piccolo subset.

I passaggi seguenti consentono di creare criteri di accesso condizionale per richiedere la protezione con token per Exchange Online e SharePoint Online nei dispositivi Windows.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra almeno come amministratore dell'accesso condizionale.
  2. Passare a Protezione>Accesso condizionale>Criteri.
  3. Selezionare Nuovi criteri.
  4. Assegnare un nome ai criteri. È consigliabile che le organizzazioni creino uno standard descrittivo per i nomi dei criteri.
  5. In Assegnazioni, selezionare Utenti o identità del carico di lavoro.
    1. In Includi selezionare gli utenti o i gruppi che stanno testando questo criterio.
    2. In Escludi selezionare Utenti e gruppi e scegliere gli account di accesso di emergenza o gli account critici dell'organizzazione.
  6. In Risorse di destinazione>(in precedenza app cloud)>Includi>selezionare le risorse
    1. In Seleziona selezionare le applicazioni seguenti supportate dall'anteprima:

      1. Office 365 Exchange Online
      2. Office 365 SharePoint Online

      Avviso

      I criteri di accesso condizionale devono essere configurati solo per queste applicazioni. La selezione del gruppo di applicazioni di Office 365 potrebbe causare errori imprevisti. Si tratta di un'eccezione alla regola generale per cui il gruppo di applicazioni di Office 365 deve essere selezionato in un criterio di accesso condizionale.

    2. Scegli Seleziona.

  7. In Condizioni:
    1. In Piattaforme dispositivo:
      1. Impostare Configura su .
      2. Includi>Seleziona piattaforme per dispositivi>Windows.
      3. Selezionare Fatto.
    2. In App client:
      1. Impostare Configura su .

        Avviso

        Se non si configura la condizione App client o se si lascia Browser selezionato, è possibile che le applicazioni che usano MSAL.js, ad esempio Teams Web, vengano bloccate.

      2. Selezionare solo App per dispositivi mobili e client desktop in Client con autenticazione moderna. Lasciare deselezionati gli altri elementi.
      3. Selezionare Fatto.
  8. In Controlli di accesso>Sessione selezionare Richiedi protezione token per le sessioni di accesso e selezionare Seleziona.
  9. Confermare le impostazioni e impostare Attiva criterio su Solo report.
  10. Selezionare Crea per creare e abilitare il criterio.

Dopo che gli amministratori confermano le impostazioni usando la modalità solo report, possono spostare l‘opzione Abilita criterio da Solo report a Attiva.

Acquisire i log e analizzare

Monitoraggio dell'applicazione dell'accesso condizionale della protezione dei token prima e dopo l'imposizione.

Log di accesso

Usare il log di accesso di Microsoft Entra per verificare il risultato di un criterio di imposizione della protezione con token in modalità solo report o in modalità abilitata.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra almeno come amministratore dell'accesso condizionale.
  2. Passare a Identità>Monitoraggio e integrità>Log di accesso.
  3. Selezionare una richiesta specifica per determinare se il criterio viene applicato o meno.
  4. Passare al riquadro Accesso condizionale o Solo report a seconda dello stato e selezionare il nome dei criteri che richiedono la protezione con token.
  5. In Controlli sessione verificare se i requisiti dei criteri sono stati soddisfatti o meno.

Screenshot che mostra un esempio di criteri non soddisfatti.

Log Analytics

È anche possibile usare i log di Log Analytics per eseguire query sui log di accesso (interattivo e non interattivo) per le richieste bloccate a causa di un errore di imposizione della protezione con token.

Di seguito è riportato un esempio di query di Log Analytics che cerca i log di accesso non interattivi per gli ultimi sette giorni, evidenziando lo stato Bloccato rispetto a Consentito per Applicazione. Queste query sono solo esempi e sono soggette a modifiche.

Nota

Output dei log di accesso: Il valore della stringa usata in "enforcedSessionControls" e "sessionControlsNotSatisfied" è stato modificato da "Binding" a "SignInTokenProtection" alla fine di giugno 2023. Le query sui dati del log di accesso devono essere aggiornate per riflettere questa modifica. Gli esempi illustrano entrambi i valori per includere i dati cronologici.

//Per Apps query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, Status,UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrinicpalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]' 
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies["sessionControlsNotSatisfied"] 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id,UserPrincipalName, AppDisplayName, Result 
| summarize Requests = count(), Users = dcount(UserPrincipalName), Block = countif(Result == "Block"), Allow = countif(Result == "Allow"), BlockedUsers = dcountif(UserPrincipalName, Result == "Block") by AppDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by Requests desc 

Il risultato della query precedente dovrebbe essere simile allo screenshot seguente:

Screenshot che mostra i risultati di esempio di una query di Log Analytics che cerca i criteri di protezione dei token

Nell'esempio di query seguente si esaminano i log di accesso non interattivi per gli ultimi sette giorni, evidenziando lo stato Bloccato rispetto a Consentito per Utente.

//Per users query 
// Select the log you want to query (SigninLogs or AADNonInteractiveUserSignInLogs ) 
//SigninLogs 
AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| project Id,ConditionalAccessPolicies, UserPrincipalName, AppDisplayName, ResourceDisplayName 
| where ConditionalAccessPolicies != "[]" 
| where ResourceDisplayName == "Office 365 Exchange Online" or ResourceDisplayName =="Office 365 SharePoint Online" 
//Add userPrincipalName if you want to filter  
// | where UserPrincipalName =="<user_principal_Name>" 
| mv-expand todynamic(ConditionalAccessPolicies) 
| where ConditionalAccessPolicies ["enforcedSessionControls"] contains '["Binding"]' or ConditionalAccessPolicies ["enforcedSessionControls"] contains '["SignInTokenProtection"]'
| where ConditionalAccessPolicies.result !="reportOnlyNotApplied" and ConditionalAccessPolicies.result !="notApplied" 
| extend SessionNotSatisfyResult = ConditionalAccessPolicies.sessionControlsNotSatisfied 
| extend Result = case (SessionNotSatisfyResult contains 'SignInTokenProtection' or SessionNotSatisfyResult contains 'SignInTokenProtection', 'Block','Allow')
| summarize by Id, UserPrincipalName, AppDisplayName, ResourceDisplayName,Result  
| summarize Requests = count(),Block = countif(Result == "Block"), Allow = countif(Result == "Allow") by UserPrincipalName, AppDisplayName,ResourceDisplayName 
| extend PctAllowed = round(100.0 * Allow/(Allow+Block), 2) 
| sort by UserPrincipalName asc   

Passaggi successivi