Share via


Accesso condizionale: protezione dei token (anteprima)

La protezione dei token (talvolta definita associazione di token nel settore) tenta di ridurre gli attacchi usando il furto di token assicurando che un token sia utilizzabile solo dal dispositivo previsto. Quando un utente malintenzionato è in grado di rubare un token, dirottando o riproducendo, può rappresentare la vittima fino alla scadenza o alla revoca del token. Il furto di token è considerato un evento relativamente raro, ma il danno da esso può essere significativo.

La protezione dei token crea un legame crittograficamente sicuro tra il token e il dispositivo (segreto client) a 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, l'identità primaria viene associata al dispositivo. Ciò significa che i criteri possono garantire che solo i token di sessione di accesso associati (o aggiorna) 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 dei token per i token di accesso (token di aggiornamento) per servizi specifici. È supportata la protezione dei token per i token di accesso 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 Token Protection:

  • Output dei log di accesso: il valore della stringa usata in "enforcedSessionControls" e "sessionControlsNotSatisfied" è cambiato 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. Questa anteprima non supporta attualmente i token di accesso o i cookie Web.

Screenshot showing a Conditional Access policy requiring token protection as the session control

Requisiti

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

  • Dispositivi Windows 10 o versioni successive aggiunti a Microsoft Entra, aggiunti a Microsoft Entra ibrido o registrati da Microsoft Entra.
  • sincronizzazione OneDrive client 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 "autenticazione di Windows broker"
  • 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 a Visual Studio Code che accedono a Exchange o SharePoint
    • Il nuovo client di anteprima di Teams 2.1 viene bloccato dopo la disconnessa a causa di un bug. Questo bug dovrebbe essere corretto in un aggiornamento futuro del servizio.
  • I dispositivi client Windows seguenti non sono supportati:
    • Windows Server
    • 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 dei token deve essere invisibile quando si usano piattaforme client compatibili su dispositivi registrati e applicazioni compatibili.

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

  • Iniziare con un gruppo pilota di utenti ed espandersi nel tempo.
  • Creare criteri di accesso condizionale in modalità solo report prima di passare all'imposizione della protezione dei 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 dei token.

Creare criteri di accesso condizionale

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

Screenshot of a configured Conditional Access policy and its components.

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

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un Amministrazione istrator di accesso condizionale.
  2. Passare a Protezione>dell'accesso condizionale.
  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>App cloud>Includi>selezionare le app
    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 può causare errori imprevisti. Si tratta di un'eccezione alla regola generale che 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 del dispositivo:
      1. Impostare Configura su .
      2. Includi>Selezionare le piattaforme>per dispositivi Windows.
      3. Selezionare Fatto.
    2. In App client:
      1. Impostare Configura su .

        Avviso

        La mancata configurazione della condizione App client o l'opzione Browser selezionata può causare il blocco delle applicazioni che usano MSAL.js, ad esempio Teams Web.

      2. In Client di autenticazione moderna selezionare solo App per dispositivi mobili e client desktop. 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'interruttore Abilita criterio da Solo report a .

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 dei token in modalità solo report o in modalità abilitata.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un Amministrazione istrator di accesso condizionale.
  2. Passare a Identity Monitoring & health Sign-in logs (Log di accesso per l'integrità>e monitoraggio delle identità).>
  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 dei token.
  5. In Controlli sessione verificare se i requisiti dei criteri sono stati soddisfatti o meno.

Screenshot showing an example of a policy not being satisfied.

Log Analytics

È anche possibile usare 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 dei 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 Bloccato rispetto alle richieste consentitedall'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" è cambiato 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 showing example results of a Log Analytics query looking for token protection policies

L'esempio di query seguente esamina il log di accesso non interattivo per gli ultimi sette giorni, evidenziando Le richieste bloccate e consentite dall'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