Podmíněný přístup: Ochrana tokenů (Preview)

Ochrana tokenů (někdy označovaná jako vazba tokenu v oboru) se pokouší omezit útoky pomocí krádeže tokenů tím, že zajistí, že token bude použitelný jenom ze zamýšleného zařízení. Když útočník dokáže token odcizit nebo přehráním, může zosobnit svou oběť, dokud nevyprší platnost tokenu nebo se neodvolá. Krádež tokenu je považována za relativně vzácnou událost, ale poškození z něj může být významné.

Ochrana tokenů vytvoří kryptograficky zabezpečenou vazbu mezi tokenem a zařízením (tajným klíčem klienta), pro které je vystavena. Bez tajného klíče klienta je vázaný token zbytečný. Když uživatel zaregistruje zařízení s Windows 10 nebo novějším v Microsoft Entra ID, jeho primární identita je svázaná se zařízením. To znamená: Zásady můžou zajistit, aby aplikace při vyžádání přístupu k prostředku používaly pouze vázané tokeny přihlašovací relace (nebo obnovovací) tokeny, jinak označované jako primární obnovovací tokeny (PRT).

Důležité

Ochrana tokenů je aktuálně ve verzi Public Preview. Další informace o verzích Preview najdete v tématu Univerzální licenční podmínky pro online služby. V této verzi Preview vám dáváme možnost vytvořit zásadu podmíněného přístupu, která vyžaduje ochranu tokenů pro přihlašovací tokeny (obnovovací tokeny) pro konkrétní služby. Podporujeme ochranu tokenů pro přihlašovací tokeny v podmíněném přístupu pro desktopové aplikace, které přistupují k Exchangi Online a SharePointu Online na zařízeních s Windows.

Důležité

Od počáteční verze Public Preview byly provedeny následující změny ochrany tokenů:

  • Výstup protokolů přihlášení: Hodnota řetězce použitého v vynucenýchSessionControls a sessionControlsNotSatisfied se změnila ze vazby na SignInTokenProtection koncem června 2023. Dotazy na data protokolu přihlášení by se měly aktualizovat tak, aby odrážely tuto změnu.

Poznámka:

V tomto obsahu můžeme zaměnit přihlašovací tokeny a aktualizovat tokeny. Tato verze Preview v současné době nepodporuje přístupové tokeny ani webové soubory cookie.

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

Požadavky

Tato verze Preview podporuje následující konfigurace pro přístup k prostředkům s použitými zásadami podmíněného přístupu ochrany tokenů:

  • Zařízení s Windows 10 nebo novějšími, která jsou připojená k Microsoft Entra, hybridní připojení Microsoft Entra nebo Microsoft Entra zaregistrovaná.
  • synchronizační aplikace OneDrivu klient verze 22.217 nebo novější
  • Nativní klient Teams verze 1.6.00.1331 nebo novější
  • Power BI Desktop verze 2.117.841.0 (květen 2023) nebo novější
  • Visual Studio 2022 nebo novější při použití možnosti Přihlášení pomocí zprostředkovatele ověřování systému Windows
  • Časově neomezení klienti Office se nepodporují.

Známá omezení

  • Externí uživatelé (Microsoft Entra B2B) nejsou podporováni a neměli by být zahrnuti do zásad podmíněného přístupu.
  • Následující aplikace nepodporují přihlašování pomocí toků chráněných tokenů a uživatelé se blokují při přístupu k Exchangi a SharePointu:
    • Moduly PowerShellu pro přístup k oborům Exchange, SharePointu nebo Microsoft Graphu, které obsluhují Exchange nebo SharePoint
    • Rozšíření PowerQuery pro Excel
    • Rozšíření editoru Visual Studio Code, která přistupují k Exchangi nebo SharePointu
    • Nový klient Teams 2.1 Preview se po odhlášení z důvodu chyby zablokuje. Tato chyba by měla být opravena v budoucí aktualizaci služby.
  • Následující klientská zařízení s Windows se nepodporují:
    • Windows Server
    • Surface Hub
    • Systémy Microsoft Teams Rooms (MTR) založené na Windows

Požadavky na licencování

Použití této funkce vyžaduje licence Microsoft Entra ID P2. Pokud chcete najít správnou licenci pro vaše požadavky, projděte si porovnání obecně dostupných funkcí Microsoft Entra ID.

Poznámka:

Vynucování ochrany tokenů je součástí služby Microsoft Entra ID Protection a bude součástí licence P2 ve všeobecné dostupnosti.

Nasazení

Pro uživatele by nasazení zásad podmíněného přístupu k vynucení ochrany tokenů mělo být neviditelné při použití kompatibilních klientských platforem na registrovaných zařízeních a kompatibilních aplikacích.

Pokud chcete minimalizovat pravděpodobnost přerušení uživatelů kvůli nekompatibilitě aplikace nebo zařízení, důrazně doporučujeme:

  • Začněte pilotní skupinou uživatelů a postupně se rozšiřte.
  • Před přechodem na vynucování ochrany tokenů vytvořte zásadu podmíněného přístupu v režimu pouze sestavy.
  • Zachyťte interaktivní i neinteraktivní protokoly přihlašování.
  • Analyzujte tyto protokoly dostatečně dlouho, abyste pokryli normální použití aplikace.
  • Přidejte známé dobré uživatele do zásad vynucení.

Tento proces pomáhá vyhodnotit kompatibilitu klienta a aplikace uživatelů s vynucením ochrany tokenů.

Vytvořte zásady podmíněného přístupu

Pro tuto funkci jsou možné cíle uživatelů, kteří provádějí specializované role, jako jsou ty, které jsou popsané v úrovních zabezpečení privilegovaného přístupu. Doporučujeme začít pilotní nasazení s malou podmnožinou.

Screenshot of a configured Conditional Access policy and its components.

Následující postup vám pomůže vytvořit zásadu podmíněného přístupu, která bude vyžadovat ochranu tokenů pro Exchange Online a SharePoint Online na zařízeních s Windows.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň podmíněný přístup Správa istrator.
  2. Přejděte k podmíněnému přístupu k ochraně>.
  3. Vyberte Možnost Nová zásada.
  4. Pojmenujte zásadu. Doporučujeme, aby organizace vytvořily smysluplný standard pro názvy zásad.
  5. V části Přiřazení vyberte Uživatelé nebo identity úloh.
    1. V části Zahrnout vyberte uživatele nebo skupiny, které tuto zásadu testují.
    2. V části Vyloučit vyberte Uživatelé a skupiny a zvolte účty pro nouzový přístup nebo prolomení účtů ve vaší organizaci.
  6. V části Cílové prostředky>Cloud apps Include>Select apps>
    1. V části Vybrat vyberte následující aplikace podporované ve verzi Preview:

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

      Upozorňující

      Zásady podmíněného přístupu by měly být nakonfigurované jenom pro tyto aplikace. Výběrem skupiny aplikací Office 365 může dojít k nezamýšleným chybám. Toto je výjimka z obecného pravidla, že skupina aplikací Office 365 by měla být vybrána v zásadách podmíněného přístupu.

    2. Zvolte Vybrat.

  7. Za podmínek:
    1. V části Platformy zařízení:
      1. Nastavte možnost Konfigurovat na hodnotu Ano.
      2. Zahrnout>Windows pro výběr platforem> zařízení.
      3. Vyberte Hotovo.
    2. V části Klientské aplikace:
      1. Nastavte možnost Konfigurovat na hodnotu Ano.

        Upozorňující

        Nenafigurování podmínky Klientské aplikace nebo ponechání vybraného prohlížeče může způsobit zablokování aplikací, které používají MSAL.js, jako je například Aplikace Teams Web.

      2. V části Klienti moderního ověřování vyberte jenom mobilní aplikace a desktopové klienty. Ostatní položky nechte nezaškrtnuté.
      3. Vyberte Hotovo.
  8. V části Relace řízení>přístupu vyberte Vyžadovat ochranu tokenů pro přihlašovací relace a vyberte Vybrat.
  9. Potvrďte nastavení a nastavte Povolit zásadu pouze pro sestavy.
  10. Pokud chcete zásadu povolit, vyberte Vytvořit .

Jakmile správci potvrdí nastavení pomocí režimu jen pro sestavy, můžou přepnout zásadu Povolit pouze ze sestavy do polohy Zapnuto.

Zachycení protokolů a analýza

Monitorování vynucení podmíněného přístupu ochrany tokenů před a po vynucování

Protokoly přihlašování

Protokol přihlášení Microsoft Entra slouží k ověření výsledku zásady vynucení ochrany tokenů v režimu pouze sestavy nebo v povoleném režimu.

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň podmíněný přístup Správa istrator.
  2. Přejděte do protokolů přihlášení k monitorování identit>a stavu>.
  3. Vyberte konkrétní požadavek, abyste zjistili, jestli se zásada použije nebo ne.
  4. V závislosti na stavu přejděte do podokna Podmíněný přístup nebo Jenom sestava a vyberte název zásady vyžadující ochranu tokenu.
  5. V části Řízení relací zkontrolujte, jestli byly splněny nebo nebyly splněny požadavky zásad.

Screenshot showing an example of a policy not being satisfied.

Log Analytics

Log Analytics můžete také použít k dotazování protokolů přihlašování (interaktivních a neinteraktivních) na blokované požadavky kvůli selhání vynucování ochrany tokenů.

Tady je ukázkový dotaz Log Analytics, který hledá v protokolech neinteraktivních přihlášení za posledních 7 dnů a zvýrazňuje blokované a povolené požadavky podle aplikace. Tyto dotazy jsou pouze ukázky a můžou se změnit.

Poznámka:

Výstup protokolů přihlášení: Hodnota řetězce použitého v vynucenýchSessionControls a sessionControlsNotSatisfied se změnila ze vazby na SignInTokenProtection koncem června 2023. Dotazy na data protokolu přihlášení by se měly aktualizovat tak, aby odrážely tuto změnu. Příklady zahrnují obě hodnoty, aby zahrnovaly historická data.

//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 

Výsledek předchozího dotazu by se měl podobat následujícímu snímku obrazovky:

Screenshot showing example results of a Log Analytics query looking for token protection policies

Následující příklad dotazu se podívá na protokol neinteraktivních přihlášení za posledních 7 dnů a zvýrazní blokované versus povolené požadavky uživatele.

//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   

Další kroky