Delen via


Beveiliging van tokens in voorwaardelijke toegang van Microsoft Entra

Tokenbeveiliging is een sessiebeheer voor voorwaardelijke toegang dat probeert tokenherplayaanvallen te verminderen door ervoor te zorgen dat alleen apparaatgebonden aanmeldingstokens, zoals PRT's (Primary Refresh Tokens), worden geaccepteerd door Entra ID wanneer toepassingen toegang tot beveiligde resources aanvragen.

Wanneer een gebruiker een Windows 10- of hoger-apparaat registreert bij Microsoft Entra, wordt er een PRT uitgegeven en cryptografisch gebonden aan dat apparaat. Deze binding zorgt ervoor dat zelfs als een bedreigingsacteur een token steelt, het niet kan worden gebruikt vanaf een ander apparaat. Als Token Protection is afgedwongen, valideert Microsoft Entra dat alleen deze afhankelijke aanmeldingssessietokens worden gebruikt door ondersteunde toepassingen.

U kunt tokenbeveiligingsbeleid afdwingen voor Exchange Online-, SharePoint Online- en Teams-resources. Het wordt ondersteund door veel systeemeigen Microsoft 365-toepassingen. Raadpleeg de sectie Vereisten voor een uitgebreide lijst met ondersteunde toepassingen en resources.

Note

Gebruik dit beleid als onderdeel van een bredere strategie tegen tokendiefstal, zoals beschreven in Tokens beveiligen in Microsoft Entra.

Schermopname van een beleid voor voorwaardelijke toegang waarvoor tokenbeveiliging is vereist als sessiebeheer.

Requirements

Voor het gebruik van deze functie zijn Microsoft Entra ID P1-licenties vereist. Zie Algemeen beschikbare functies van Microsoft Entra ID vergelijken als u een licentie zoekt die bij uw vereisten past.

De volgende apparaten en toepassingen ondersteunen toegang tot resources waarbij beleid voor voorwaardelijke toegang voor tokenbeveiliging wordt toegepast:

Ondersteunde apparaten

  • Windows 10- of nieuwere apparaten die zijn toegevoegd aan Microsoft Entra, Microsoft Entra hybride gekoppeld of Microsoft Entra geregistreerd. Zie de sectie bekende beperkingen voor niet-ondersteunde apparaattypen.
  • Windows Server 2019 of nieuwer die hybride gekoppeld zijn met Microsoft Entra.

Note

Zie Uw persoonlijke apparaat registreren op uw werk- of schoolnetwerk voor gedetailleerde stappen voor het registreren van uw apparaat.

Ondersteunde toepassingen

  • OneDrive-synchronisatieclient versie 22.217 of hoger
  • Teams-natieve client versie 1.6.00.1331 of nieuwer
  • Power BI Desktop versie 2.117.841.0 (mei 2023) of hoger
  • Exchange PowerShell-moduleversie 3.7.0 of hoger
  • Microsoft Graph PowerShell versie 2.0.0 of hoger met de optie EnableLoginByWAM
  • Visual Studio 2022 of hoger bij het gebruik van de aanmeldingsoptie 'Windows Authentication Broker'
  • Windows-app versie 2.0.379.0 of hoger

De volgende resources bieden ondersteuning voor tokenbeveiliging:

  • Office 365Exchange Online
  • Office 365 SharePoint Online
  • Microsoft Teams-services
  • Azure Virtual Desktop
  • Windows 365

Bekende beperkingen

  • Permanente Office-clients worden niet ondersteund.
  • De volgende toepassingen bieden geen ondersteuning voor aanmelden met beveiligde tokenstromen en gebruikers worden geblokkeerd bij toegang tot Exchange en SharePoint:
    • PowerShell-modules die toegang hebben tot SharePoint
    • PowerQuery-extensie voor Excel
    • Extensies voor Visual Studio Code die toegang hebben tot Exchange of SharePoint
  • De volgende Windows-clientapparaten worden niet ondersteund:
    • Surface Hub
    • MTR-systemen (Windows-gebaseerde Microsoft Teams-ruimten)
  • Externe gebruikers die voldoen aan de vereisten voor apparaatregistratie voor tokenbeveiliging in hun thuistenant, worden ondersteund. Gebruikers die niet aan deze vereisten voldoen, zien echter een onduidelijk foutbericht zonder indicatie van de hoofdoorzaak.
  • Apparaten die zijn geregistreerd bij Microsoft Entra ID met behulp van de volgende methoden, worden niet ondersteund:

Als u de betrokken apparaten wilt identificeren vanwege niet-ondersteunde registratietypen die eerder worden vermeld, inspecteert u het tokenProtectionStatusDetails kenmerk in de aanmeldingslogboeken. Tokenaanvragen die worden geblokkeerd vanwege een niet-ondersteund apparaatregistratietype, kunnen worden geïdentificeerd met de signInSessionStatusCode waarde 1003.

Als u onderbrekingen tijdens onboarding wilt voorkomen, wijzigt u het beleid voor voorwaardelijke toegang voor tokenbeveiliging door een apparaatfiltervoorwaarde toe te voegen die apparaten uitsluit in de eerder beschreven implementatiecategorie. Als u bijvoorbeeld het volgende wilt uitsluiten:

  • Cloud-pc's die lid zijn van Microsoft Entra, kunt u gebruiken systemLabels -eq "CloudPC" and trustType -eq "AzureAD".
  • Azure Virtual Desktops die met Microsoft Entra verbonden zijn, kunt u systemLabels -eq "AzureVirtualDesktop" and trustType -eq "AzureAD" gebruiken.
  • Machinegroepen die door Power Automate gehost worden en met Microsoft Entra zijn gekoppeld, kunt u gebruiken systemLabels -eq "MicrosoftPowerAutomate" and trustType -eq "AzureAD".
  • Windows Autopilot-apparaten die zijn geïmplementeerd met de zelfuitrolmodus, dan kunt u de eigenschap enrollmentProfileName gebruiken. Als u bijvoorbeeld een inschrijvingsprofiel in Intune hebt gemaakt voor uw autopilot-apparaten in de modus voor zelfimplementatie als 'Autopilot-profiel voor zelfimplementatie', kunt u enrollmentProfileName -eq 'Autopilot-profiel voor zelfimplementatie' gebruiken.
  • U kunt Windows-virtuele machines in Azure die zijn toegevoegd aan Microsoft Entra, gebruiken met profileType -eq "SecureVM" and trustType -eq "AzureAD".

Deployment

Voor gebruikers moet de implementatie van beleid voor voorwaardelijke toegang om tokenbeveiliging af te dwingen onzichtbaar zijn bij het gebruik van compatibele clientplatforms op geregistreerde apparaten en compatibele toepassingen.

Volg deze aanbevelingen om de kans op gebruikersonderbreking vanwege incompatibiliteit van apps of apparaten te minimaliseren:

  • Begin met een testgroep gebruikers en breid na verloop van tijd uit.
  • Maak een voorwaardelijke toegangsbeleid in alleen rapportagemodus voordat u tokenbeveiliging afdwingt.
  • Leg zowel interactieve als niet-interactieve aanmeldingslogboeken vast.
  • Analyseer deze logboeken lang genoeg om normaal gebruik van toepassingen te behandelen.
  • Bekende, betrouwbare gebruikers toevoegen aan een afdwingingsbeleid.

Dit proces helpt bij het beoordelen van de compatibiliteit van de client en app van uw gebruikers voor het afdwingen van tokenbeveiliging.

Beleid voor voorwaardelijke toegang maken

Gebruikers die gespecialiseerde rollen uitvoeren, zoals die worden beschreven in beveiligingsniveaus voor bevoegde toegang , zijn mogelijke doelen voor deze functionaliteit. We raden u aan om te beginnen met een kleine deelgroep.

Met de volgende stappen kunt u beleid voor voorwaardelijke toegang maken om tokenbeveiliging voor Exchange Online en SharePoint Online op Windows-apparaten te vereisen.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als minimaal een Administrator voor voorwaardelijke toegang.
  2. Blader naar Entra ID>Voorwaardelijke Toegang>Beleid.
  3. Selecteer Nieuw beleid.
  4. Geef uw beleid een naam. We raden organisaties aan een zinvolle standaard te maken voor de namen van hun beleidsregels.
  5. Onder Toewijzingen selecteert u Gebruikers- of workload-identiteiten.
    1. Selecteer onder Opnemen de gebruikers of groepen die dit beleid testen.
    2. Selecteer bij Uitsluiten de optie Gebruikers en groepen en kies de noodtoegangs- of 'break-glass'-accounts van uw organisatie.
  6. Onder Doelresources>Resources (voorheen cloud-apps)>Omvat>Selecteer resources
    1. Selecteer onder Selecteren de volgende toepassingen:

      1. Office 365Exchange Online
      2. Office 365 SharePoint Online
      3. Microsoft Teams-services
      4. Als u de Windows App in uw omgeving hebt geïmplementeerd, neemt u het volgende op:
        1. Azure Virtual Desktop
        2. Windows 365
        3. Aanmelding bij Windows Cloud

      Warning

      Uw beleid voor voorwaardelijke toegang mag alleen worden geconfigureerd voor deze toepassingen. Als u de Office 365-toepassingsgroep selecteert, kan dit leiden tot onbedoelde fouten. Deze wijziging is een uitzondering op de algemene regel die de Office 365-toepassingsgroep moet worden geselecteerd in een beleid voor voorwaardelijke toegang.

    2. Kies en selecteer.

  7. Onder voorwaarden:
    1. Onder Apparaatplatforms:
      1. Stel Configureren in op Ja.
      2. Bevatten>Apparaatplatforms selecteren>Windows.
      3. Kies Gereed.
    2. Onder Client-apps:
      1. Stel Configureren in op Ja.

        Warning

        Als u de voorwaarde Client-apps niet configureert of browser niet selecteert, kan dit ertoe leiden dat toepassingen die gebruikmaken van MSAL.js, zoals Teams Web, worden geblokkeerd.

      2. Selecteer onder Clients met moderne verificatie alleen mobiele apps en desktopclients. Laat andere items niet aangevinkt.

      3. Kies Gereed.

  8. Onder Toegangsbeheer>Sessie, selecteer Tokenbeveiliging vereisen voor aanmeldsessies en klik op Selecteren.
  9. Controleer uw instellingen en stel Beleid inschakelen in op Alleen rapporteren.
  10. Selecteer Maken om uw beleid in te schakelen.

Nadat u uw instellingen hebt bevestigd met de beleidsimpactmodus of de modus Alleen-rapporteren, verplaatst u de wisselknop Beleid inschakelen van alleen rapport naar Aan.

Tip

Aangezien beleid voor voorwaardelijke toegang waarvoor tokenbeveiliging is vereist, momenteel alleen beschikbaar is voor Windows-apparaten, is het noodzakelijk om uw omgeving te beveiligen tegen mogelijke bypass van beleid wanneer een aanvaller mogelijk afkomstig is van een ander platform.

Daarnaast moet u het volgende beleid configureren:

Logboeken vastleggen en analyseren

Bewaak het afdwingen van tokenbeveiliging voor en na afdwinging met behulp van functies zoals beleidsimpact, aanmeldingslogboeken en Log Analytics.

Aanmeldingslogboeken

Gebruik het aanmeldingslogboek van Microsoft Entra om het resultaat van een afdwingingsbeleid voor tokenbeveiliging te controleren in de rapportmodus of in de ingeschakelde modus.

Screenshot van een voorbeeld van een beleid dat niet wordt nageleefd.

  1. Meld u aan bij het Microsoft Entra-beheercentrum als minimaal een Administrator voor voorwaardelijke toegang.
  2. Blader naar Entra IDBewaking & gezondheidAanmeldingslogboeken.
  3. Selecteer een specifieke aanvraag om te bepalen of het beleid al dan niet wordt toegepast.
  4. Ga naar het deelvenster Voorwaardelijke toegang of deelvenster Enkele weergave, afhankelijk van de status ervan, en selecteer de naam van uw beleid dat tokenbeveiliging vereist.
  5. Controleer onder Sessiebesturingselementen of aan de beleidsvereisten is voldaan of niet.
  6. Als u meer informatie wilt over de bindingsstatus van de aanvraag, selecteert u het deelvenster Basisgegevens en bekijkt u de aanmeldingssessie van het veld Tokenbeveiliging. Mogelijke waarden zijn:
    1. Gebonden: de aanvraag maakt gebruik van afhankelijke protocollen. Sommige aanmeldingen kunnen meerdere aanvragen bevatten en alle aanvragen moeten zijn gebonden aan het beveiligingsbeleid voor tokens. Zelfs als een afzonderlijke aanvraag afhankelijk lijkt te zijn, zorgt deze niet voor naleving van het beleid als andere aanvragen niet afhankelijk zijn. Als u alle verzoeken voor een aanmelding wilt zien, kunt u verzoeken voor een specifieke gebruiker filteren of zoeken op de correlation-id.
    2. Niet-afhankelijk: de aanvraag maakt geen gebruik van afhankelijke protocollen. Mogelijk statusCodes wanneer het verzoek niet gebonden is, zijn:
      1. 1002: De aanvraag is ongebonden vanwege het gebrek aan Microsoft Entra ID-apparaatstatus.
      2. 1003: De aanvraag is niet gebonden omdat de apparaatstatus van Microsoft Entra ID niet voldoet aan de beleidsvereisten voor voorwaardelijke toegang tot beveiliging van tokens. Deze fout kan worden veroorzaakt door een niet-ondersteund apparaatregistratietype of het apparaat is niet geregistreerd met nieuwe aanmeldingsreferenties.
      3. 1005: De aanvraag is om andere, niet-gespecificeerde redenen ongebonden.
      4. 1006: Het verzoek is losgekoppeld omdat de versie van het besturingssysteem niet wordt ondersteund.
      5. 1008: De aanvraag is ongebonden omdat de client niet is geïntegreerd met de platform-broker, zoals Windows Account Manager (WAM).

Schermopname van een voorbeeld van aanmelden met het kenmerk Token Protection - Aanmeldingssessie gemarkeerd.

Log Analytics

U kunt Log Analytics ook gebruiken om query's uit te voeren op de aanmeldingslogboeken (interactief en niet-interactief) voor geblokkeerde aanvragen vanwege een mislukte afdwinging van tokenbeveiliging.

Hier volgt een voorbeeld van een Log Analytics-query voor het doorzoeken van de niet-interactieve aanmeldingslogboeken voor de afgelopen zeven dagen, waarbij geblokkeerde versus toegestane aanvragen door de toepassing worden gemarkeerd. Deze query's zijn alleen voorbeelden en kunnen worden gewijzigd.

Note

Uitvoer van aanmeldingslogboeken: De waarde van de tekenreeks die wordt gebruikt in 'enforcedSessionControls' en 'sessionControlsNotSatisfied' is veranderd van 'Binding' in 'SignInTokenProtection' eind juni 2023. Query's voor aanmeldingslogboekgegevens moeten worden bijgewerkt om deze wijziging weer te geven. In de voorbeelden worden beide waarden behandeld om historische gegevens op te nemen.

//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" or ResourceDisplayName =="Azure Virtual Desktop" or ResourceDisplayName =="Windows 365" or ResourceDisplayName =="Windows Cloud Login"
| 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, 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 

Het resultaat van de vorige query moet er ongeveer uitzien als in de volgende schermopname:

Schermopname van voorbeeldresultaten van een Log Analytics-query op zoek naar tokenbeveiligingsbeleid

In het volgende queryvoorbeeld wordt gekeken naar het niet-interactieve aanmeldingslogboek voor de afgelopen zeven dagen, waarbij geblokkeerde en toegestane aanvragen door de gebruiker worden gemarkeerd.

//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" or ResourceDisplayName =="Azure Virtual Desktop" or ResourceDisplayName =="Windows 365" or ResourceDisplayName =="Windows Cloud Login"
| 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   

In het volgende queryvoorbeeld wordt gekeken naar het niet-interactieve aanmeldingslogboek voor de afgelopen zeven dagen, waarbij gebruikers worden gemarkeerd die apparaten gebruiken, waarbij de apparaatstatus van Microsoft Entra ID niet voldoet aan de beleidsvereisten voor tokenbeveiligings-CA.

AADNonInteractiveUserSignInLogs 
// Adjust the time range below 
| where TimeGenerated > ago(7d) 
| where TokenProtectionStatusDetails!= "" 
| extend parsedBindingDetails = parse_json(TokenProtectionStatusDetails) 
| extend bindingStatus = tostring(parsedBindingDetails["signInSessionStatus"]) 
| extend bindingStatusCode = tostring(parsedBindingDetails["signInSessionStatusCode"]) 
| where bindingStatusCode == 1003 
| summarize count() by UserPrincipalName 

Eindgebruikerservaring

Een gebruiker die zijn of haar ondersteunde apparaat heeft geregistreerd of geregistreerd, ondervindt geen verschillen in de aanmeldingservaring op een toepassing die wordt ondersteund voor tokenbeveiliging wanneer de vereiste tokenbeveiliging is ingeschakeld.

Een gebruiker die zijn apparaat niet heeft geregistreerd of ingeschreven en als het tokenbeveiligingsbeleid is ingeschakeld, ziet na verificatie de volgende schermopname.

Schermopname van het foutbericht over tokenbeveiliging wanneer uw apparaat niet is geregistreerd of ingeschreven.

Een gebruiker die geen ondersteunde toepassing gebruikt wanneer het tokenbeveiligingsbeleid is ingeschakeld, ziet de volgende schermopname na verificatie.

Schermopname van het foutbericht wanneer een tokenbeveiligingsbeleid de toegang blokkeert.

Wat is een Primary Refresh Token?